Using code released under the LGPL
-
I was under the impression that GPL and LGPL meant you could use the code anyhow you liked. If you make "improvements" to it you have to post them back to the community (source code I guess). AFAIK you don't have to give the source code to your whole project to the community no? I also think it's fair that if you use free OSS in a commercial app without paying a license fee for using it then you should put something back into the community if you improve it no?
fakefur wrote: I was under the impression that GPL and LGPL meant you could use the code anyhow you liked. If you make "improvements" to it you have to post them back to the community (source code I guess). AFAIK you don't have to give the source code to your whole project to the community no? My understanding is that if you use a library and you modify the library then you have to give back the source to the library, not the whole application. However, if you integrate the code into the application then you have to release the code to the whole application. However, it is a very tricky situation and one that I'd rather not deal with. I much prefer BSD style licenses as they are much cleaner and easier to understand.
My: Blog | Photos WDevs.com - Open Source Code Hosting, Blogs, FTP, Mail and More
-
fakefur wrote: I was under the impression that GPL and LGPL meant you could use the code anyhow you liked. If you make "improvements" to it you have to post them back to the community (source code I guess). AFAIK you don't have to give the source code to your whole project to the community no? My understanding is that if you use a library and you modify the library then you have to give back the source to the library, not the whole application. However, if you integrate the code into the application then you have to release the code to the whole application. However, it is a very tricky situation and one that I'd rather not deal with. I much prefer BSD style licenses as they are much cleaner and easier to understand.
My: Blog | Photos WDevs.com - Open Source Code Hosting, Blogs, FTP, Mail and More
-
I was under the impression that GPL and LGPL meant you could use the code anyhow you liked. If you make "improvements" to it you have to post them back to the community (source code I guess). AFAIK you don't have to give the source code to your whole project to the community no? I also think it's fair that if you use free OSS in a commercial app without paying a license fee for using it then you should put something back into the community if you improve it no?
GPL states that if you use the code in your program, your program automatically becomes covered by the GPL license and the source must be openly published. LGPL says that you can use the code, but must provide only it to the customer if you change it (though there is some ambiguity about whether you have to always provide it to the customer on demand.) The main issue is the effect both licenses have on YOUR source code, not the code directly covered by GPL/LGPL. A secondary issue is whether GPL/LGPL contravene US copyright law. In the end, the legal question remains the same; is the GPL/LPGL attempt to create a new form of copyright legal? (US law states that if I make major changes to code, or any other writing, etc. I have a copyright over those changes. I surrender those copyrights only under very specific listed circumstances, such as work-for-hire or when I explicitly assign the copyright. A slightly separate issue is whether I really entered into a binding contract just by virtue of changing code allegedly covered by GPL.) Anyone who thinks he has a better idea of what's good for people than people do is a swine. - P.J. O'Rourke
-
fakefur wrote: I was under the impression that GPL and LGPL meant you could use the code anyhow you liked. If you make "improvements" to it you have to post them back to the community (source code I guess). AFAIK you don't have to give the source code to your whole project to the community no? My understanding is that if you use a library and you modify the library then you have to give back the source to the library, not the whole application. However, if you integrate the code into the application then you have to release the code to the whole application. However, it is a very tricky situation and one that I'd rather not deal with. I much prefer BSD style licenses as they are much cleaner and easier to understand.
My: Blog | Photos WDevs.com - Open Source Code Hosting, Blogs, FTP, Mail and More
What I understand from reading the LGPL is that provided I simply link to the library code (it's in a DLL) then I can use it without having to do anything other than acknowledge it. (This seems to be the consensus here too.) However, if I modify the source code and thus create a new DLL then THAT has to be made public and if I incorporate that source code into my exe then the source of the whole exe has to be made public. But the LGPL really is heavy going - a plain language version that might not be legally binding, but explains what it all means in terms us poor programmers can actually understand sure would be a good idea!
-
GPL states that if you use the code in your program, your program automatically becomes covered by the GPL license and the source must be openly published. LGPL says that you can use the code, but must provide only it to the customer if you change it (though there is some ambiguity about whether you have to always provide it to the customer on demand.) The main issue is the effect both licenses have on YOUR source code, not the code directly covered by GPL/LGPL. A secondary issue is whether GPL/LGPL contravene US copyright law. In the end, the legal question remains the same; is the GPL/LPGL attempt to create a new form of copyright legal? (US law states that if I make major changes to code, or any other writing, etc. I have a copyright over those changes. I surrender those copyrights only under very specific listed circumstances, such as work-for-hire or when I explicitly assign the copyright. A slightly separate issue is whether I really entered into a binding contract just by virtue of changing code allegedly covered by GPL.) Anyone who thinks he has a better idea of what's good for people than people do is a swine. - P.J. O'Rourke
-
My understanding is that you can use the library in your app. Though, if you modified the library, you have to make that known and make the source code available through some means, usually by a link on your web site. I personally won't use LGPL or GPL licensed code in commercial apps. The case law surrounding them has been deliberately not settled in court (even in seemingly open and shut cases, OSF has always settled out of court. It is my own opinion that they are doing this since they know the license is legally indefensible but if they price the settlement right, it's cheaper and they can keep the charade going.) Anyone who thinks he has a better idea of what's good for people than people do is a swine. - P.J. O'Rourke
Joe Woodbury wrote: I personally won't use LGPL or GPL licensed code in commercial apps. Same here. Or in any internal work I do. I do not mind getting old. It beats all the other options that I can think of.
-
But isn't the GPL like most other software licenses these days in the part that states (in effect): "This is our license and if you don't like it you don't have to use the software. If you do use the software you have to comply with our license." ??
That's why I choose to not use it. Despite the legal status of GPL, it's still copyrighted and the courts might order the company to remove it if the OSF demanded it be done. (A more likely scenario is that the courts would find that GPL code is in the public domain, but who wants to take that legal risk and incur the costs of finding that out? Well, so far, nobody.) Also, since many libraries covered by GPL use code that isn't (such as ZLib), it can become a very tangled web. (And what if Company A publishes code under GPL, Company B uses that code and publishes their own libraries that are then used by Company C. Can Company A claim Company C's software is now covered by the GPL as allowed in the license? Probably not, but, again, who wants to find out?) Anyone who thinks he has a better idea of what's good for people than people do is a swine. - P.J. O'Rourke
-
Can anyone give me a simple answer to, I hope, a simple question: Can I use a library released under the LGPL in a commerical product and if I do, does this affect the license I provide with the commerical product in any way? - OK two questions ;) I've read the LGPL but it's kind of hard to see the wood for the trees. I do realise the LGPL was designed to allow use in commercial products, but do I need to add anything (other than an acknowledgment and a link to the library's author's site) to my application if I use an LGPL'ed library. Thanks in advance for any advice.
Christopher Lloyd wrote: Can anyone give me a simple answer to, I hope, a simple question: Can I use a library released under the LGPL in a commerical product and if I do, does this affect the license I provide with the commerical product in any way? - OK two questions Why don't you just read the license?? :confused:
-
What I understand from reading the LGPL is that provided I simply link to the library code (it's in a DLL) then I can use it without having to do anything other than acknowledge it. (This seems to be the consensus here too.) However, if I modify the source code and thus create a new DLL then THAT has to be made public and if I incorporate that source code into my exe then the source of the whole exe has to be made public. But the LGPL really is heavy going - a plain language version that might not be legally binding, but explains what it all means in terms us poor programmers can actually understand sure would be a good idea!
The first thing that you should always remember is that GPL and LGPL control the distribution of code, not its use. You can always use LGPL or GPL code anyway you like, only when you start making copies of it available to others you must consider the license (LGPL section 0). If you distribute the LGPL DLL with your application, you must also distribute the source to that library and a copy of the LGPL. Just "acknowledging" it isn't enough. (LGPL section 4) Your distributed work that uses the library must be written and built in such a way that the LGPL portion can be modified (e.g. updated to a later version of the library) by the end-user. (LGPL section 6.b)
-
The first thing that you should always remember is that GPL and LGPL control the distribution of code, not its use. You can always use LGPL or GPL code anyway you like, only when you start making copies of it available to others you must consider the license (LGPL section 0). If you distribute the LGPL DLL with your application, you must also distribute the source to that library and a copy of the LGPL. Just "acknowledging" it isn't enough. (LGPL section 4) Your distributed work that uses the library must be written and built in such a way that the LGPL portion can be modified (e.g. updated to a later version of the library) by the end-user. (LGPL section 6.b)
markkuk wrote: If you distribute the LGPL DLL with your application, you must also distribute the source to that library and a copy of the LGPL. Just "acknowledging" it isn't enough. (LGPL section 4) Thanks for your input markkuk - I'm still a bit confused though :) Section 4 says: You may copy and distribute the Library (or a portion or derivative of it, under Section 2) in object code or executable form under the terms of Sections 1 and 2 above provided that you accompany it with the complete corresponding machine-readable source code. So this says that this section applies if you're distributing the library under the terms of section 1 or 2. Section 1 says: You may copy and distribute verbatim copies of the Library's complete source code as you receive it, in any medium, provided that you conspicuously and appropriately publish on each copy an appropriate copyright notice and disclaimer of warranty; keep intact all the notices that refer to this License and to the absence of any warranty; and distribute a copy of this License along with the Library. I don't intend to distribute copies of the source code, so that doesn't apply. Section 2 says: You may modify your copy or copies of the Library or any portion of it, thus forming a work based on the Library, and copy and distribute such modifications or work under the terms of Section 1 above, provided that you also meet all of these conditions: I don't intend to modify the library so that doesn't apply. So it seems that section 4 won't apply if I simply distribute the dll - is that your reading of this too, or am I missing something here? As far as I can see the only part that applies if I simply use the library is Section 6 and, as it's a DLL, section 6b.
-
markkuk wrote: If you distribute the LGPL DLL with your application, you must also distribute the source to that library and a copy of the LGPL. Just "acknowledging" it isn't enough. (LGPL section 4) Thanks for your input markkuk - I'm still a bit confused though :) Section 4 says: You may copy and distribute the Library (or a portion or derivative of it, under Section 2) in object code or executable form under the terms of Sections 1 and 2 above provided that you accompany it with the complete corresponding machine-readable source code. So this says that this section applies if you're distributing the library under the terms of section 1 or 2. Section 1 says: You may copy and distribute verbatim copies of the Library's complete source code as you receive it, in any medium, provided that you conspicuously and appropriately publish on each copy an appropriate copyright notice and disclaimer of warranty; keep intact all the notices that refer to this License and to the absence of any warranty; and distribute a copy of this License along with the Library. I don't intend to distribute copies of the source code, so that doesn't apply. Section 2 says: You may modify your copy or copies of the Library or any portion of it, thus forming a work based on the Library, and copy and distribute such modifications or work under the terms of Section 1 above, provided that you also meet all of these conditions: I don't intend to modify the library so that doesn't apply. So it seems that section 4 won't apply if I simply distribute the dll - is that your reading of this too, or am I missing something here? As far as I can see the only part that applies if I simply use the library is Section 6 and, as it's a DLL, section 6b.
Christopher Lloyd wrote: So this says that this section applies if you're distributing the library under the terms of section 1 or 2. You aren't allowed to distribute the library in any other way except under the terms of sections 1 and 2. Section 4 means you are allowed to distribute a pre-compiled binary DLL under the same terms as the source code as long you distribute the source as well. Christopher Lloyd wrote: I don't intend to distribute copies of the source code, so that doesn't apply. That would be a license violation. Christopher Lloyd wrote: As far as I can see the only part that applies if I simply use the library is Section 6 and, as it's a DLL, section 6b. No, the license does not apply to use of the library, see the end of section 0: "Activities other than copying, distribution and modification are not covered by this License; they are outside its scope. The act of running a program using the Library is not restricted"
-
Christopher Lloyd wrote: So this says that this section applies if you're distributing the library under the terms of section 1 or 2. You aren't allowed to distribute the library in any other way except under the terms of sections 1 and 2. Section 4 means you are allowed to distribute a pre-compiled binary DLL under the same terms as the source code as long you distribute the source as well. Christopher Lloyd wrote: I don't intend to distribute copies of the source code, so that doesn't apply. That would be a license violation. Christopher Lloyd wrote: As far as I can see the only part that applies if I simply use the library is Section 6 and, as it's a DLL, section 6b. No, the license does not apply to use of the library, see the end of section 0: "Activities other than copying, distribution and modification are not covered by this License; they are outside its scope. The act of running a program using the Library is not restricted"
markkuk wrote: Christopher Lloyd wrote: I don't intend to distribute copies of the source code, so that doesn't apply. That would be a license violation. Okay, I see your point. But I can "provide" the source code by pointing people to a "designated place" (section 4). In fact, the developers of this libraray only provide the source code if you e-mail and ask for it and I don't even have a copy myself, although doubtless I could get one. So, as far as I can see, if I distribute an entirely unmodified DLL with my app, I need to: 1. Include with my copyright notice one for the libarary. 2. Include a link to the developers site (the "designated place" where the source code can be acquired). 3. Make sure that people can use new versions of the library if one is released. (They can just copy in a new DLL). With these points covered I think I'll be complying with the license... what do you think? Thanks for your advice on this.