Advertisement

The LGPL and commercial programs

Started by July 18, 2003 06:15 PM
10 comments, last by null_vector 21 years, 1 month ago
Maybe not the besst place for this but probably the area with the most knowledgable people. Say Company X wants to use the LGPL library Y in product Z under windows. Employee A believes that if you link dynamically with Y that Z is legal. Employee B goes one further ans days that source must be available for the library anywhere its distributed(CD or website whould have it). Employee C says no way. You can''t do it and release Z commercially. Where, X = My company Y = Cal3D Z = Games Who''s right? If no one, then how is it done? Where does it need to be stated that Z uses Y?
find / -name "your base" -exec chown -R us:us {} ;
Employee B is close enough. You should probably state that the product uses a LGPL library in the installer or in an "About" type of dialog (and offer to display the license or tell them where it can be found along with your copy of the LGPL library''s source).

Advertisement
the LGPL is designed for libraries to allow commercial linking. In fact, with the LGPL, I don''t even think that you need to distribute the source along with it, but don''t quote me on that...
you don''t have to release the source, just the objects, so they can relink with say a modified version of the lib.

http://www.gnu.org/licenses/lgpl.html
The Great Milenko"Don't stick a pretzel up your ass, it might get stuck in there.""Computer Programming is findding the right wrench to hammer in the correct screw."
yes but with the recent (re)interpretations of the GPL/LGPL i just wanted to confirm what i thought.

I do believe you have to amke source available somewhere. If even just a link to the projects website if you''ve not modified it.

What about apeending this info to our license agreement?

(not that the average user ever really reads it anyways...)
find / -name "your base" -exec chown -R us:us {} ;
Yeah, from what I understand about both the GPL and LGPL is that source doesn''t HAVE to be distributed with the programs, but the source must be made available, and the program distribution must contain information on how to freely obtain it.

The Artist Formerly Known as CmndrM

http://chaos.webhop.org
Advertisement
The LGPL specifically says that you must have the source available from the same location as the binary if dynamically linked, this is not well known and seems as if most library authors do not go to the trouble to enforce this. The rationale is that if it''s dynamically linked (DLL), they can rebuild the LGPL portions, if you statically link you have to provide a way for them to rebuild which is where providing object files or source comes in. If you''re using an LGPL library a lot take the trouble to actually read the LGPL until you grasp it, it can save you some trouble.
quote: Original post by null_vector
yes but with the recent (re)interpretations of the GPL/LGPL i just wanted to confirm what i thought.


what (re)interpretations are you talking about?
quote: Original post by cozman
The LGPL specifically says that you must have the source available from the same location as the binary if dynamically linked, this is not well known and seems as if most library authors do not go to the trouble to enforce this. The rationale is that if it''s dynamically linked (DLL), they can rebuild the LGPL portions, if you statically link you have to provide a way for them to rebuild which is where providing object files or source comes in. If you''re using an LGPL library a lot take the trouble to actually read the LGPL until you grasp it, it can save you some trouble.


quote:
4. 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, which must be distributed under the terms of Sections 1 and 2 above on a medium customarily used for software interchange.

If distribution of object code is made by offering access to copy from a designated place, then offering equivalent access to copy the source code from the same place satisfies the requirement to distribute the source code, even though third parties are not compelled to copy the source along with the object code.


i have but i''m not a lawyer. Much of the license could be interpretted in many a number of ways. so translate this for me...

quote:
5. A program that contains no derivative of any portion of the Library, but is designed to work with the Library by being compiled or linked with it, is called a "work that uses the Library". Such a work, in isolation, is not a derivative work of the Library, and therefore falls outside the scope of this License.

However, linking a "work that uses the Library" with the Library creates an executable that is a derivative of the Library (because it contains portions of the Library), rather than a "work that uses the library". The executable is therefore covered by this License. Section 6 states terms for distribution of such executables.

When a "work that uses the Library" uses material from a header file that is part of the Library, the object code for the work may be a derivative work of the Library even though the source code is not. Whether this is true is especially significant if the work can be linked without the Library, or if the work is itself a library. The threshold for this to be true is not precisely defined by law.

If such an object file uses only numerical parameters, data structure layouts and accessors, and small macros and small inline functions (ten lines or less in length), then the use of the object file is unrestricted, regardless of whether it is legally a derivative work. (Executables containing this object code plus portions of the Library will still fall under Section 6.)

Otherwise, if the work is a derivative of the Library, you may distribute the object code for the work under the terms of Section 6. Any executables containing that work also fall under Section 6, whether or not they are linked directly with the Library itself.




I believe I am correct in saying that a link(or copy) of the LGPL license and a link the project website and linking dynamically to the library would fullfil my obligations to the license.


quote: Original post by AP
quote: Original post by null_vector
yes but with the recent (re)interpretations of the GPL/LGPL i just wanted to confirm what i thought.
p

what (re)interpretations are you talking about?

Bad choice of words on my part...
http://article.gmane.org/gmane.comp.jakarta.poi.devel/5900


find / -name "your base" -exec chown -R us:us {} ;
There was a thread on this recently in the gtk mailing list, I'm sure you can look it up in the list history (www.gtk.org) if you're interested.

Basically, make sure you read section 6.

You can make and distribute proprietary software including NO SOURCE, as long as you do not distribute any LPGL components. Trick is, the proprietary software can link dymanically to libraries that are LGPL, and you assume the libraries are already installed on the target system.

You can also distribute the LGPL libraries (including src) in addition, but seperately, to the proprietary software.

To answer the original question, both A and B are correct.

A: It's perfectly legal to make a proprietary software product using LGPL libraries (dynamically linked) and not distribute the source of the proprietary product.

B: IF the libraries are distributed WITH the proprietary product, the source for those libraries must be provided, but the source for the proprietary product need not be (since it is dynamically linked).

I'm continually stunned at how many people use LPGL and have absolutely no understanding of the terms and conditions associated. If you choose to A) use an LGPL product or B) produce and publish an LGPL library, read the entire LGPL and try to understand it. If it's for a commercial product, get a lawyer to read it and talk to them.

If you fail to comply with the LGPL, your library/software cannot be distributed, and (potentially) the FSF has the power to order you to recall all products produced and (so far) distributed. Scary stuff.

Nb on java stuff: Bleh. Java is a stupid language (imho) that does very crappy dynamic linking. Importing files constitutes, as I understand it, including object code, which means you have to provide object code for recompile. What a mess. VERY MUCH get a lawyer to look at things before using LGPL in java stuff.

[edited by - Shadow Mint on July 23, 2003 1:53:09 AM]

This topic is closed to new replies.

Advertisement