Re: [Plib-users] Closed source wuth PLIB?
Brought to you by:
sjbaker
From: David L. <Dav...@no...> - 2004-03-23 13:33:05
|
On 3/23/04 at 7:30 AM Adam Courchesne wrote: >I saw on the site that closed source applications that use PLIB are >permitted... but after reading the LGPL I can't see how this is the case. >Sections 6 of the LGPL states that the code has to be made avaliable to >the >user in one form or another... isn't that what open source means? >Please advise... >-Adam > Section 5 basically states that a closed source program that dynamically links with an LGPL library is free from any restriction: "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." so there's one way of using libraries with a closed source app. I'm not sure if plib builds any runtime libraries though - I'm sure I've read Steve ranting against c++ runtime libs before, but I'm probably talking rubbish now! Anyway, section 6 say's that if you statically link to an LGPL library, then you only have to distribute the object code of your app, not necessarily the source code. The intent appears to be to permit relinking with a modified version of the *library* if the user desires, for which object code is sufficient. " You must give prominent notice with each copy of the work that the Library is used in it and that the Library and its use are covered by this License. You must supply a copy of this License. If the work during execution displays copyright notices, you must include the copyright notice for the Library among them, as well as a reference directing the user to the copy of this License. Also, you must do one of these things: * a) Accompany the work with the complete corresponding machine-readable source code for the Library including whatever changes were used in the work (which must be distributed under Sections 1 and 2 above); and, if the work is an executable linked with the Library, with the complete machine-readable "work that uses the Library", as object code and/or source code, so that the user can modify the Library and then relink to produce a modified executable containing the modified Library. (It is understood that the user who changes the contents of definitions files in the Library will not necessarily be able to recompile the application to use the modified definitions.) * b) Use a suitable shared library mechanism for linking with the Library. A suitable mechanism is one that (1) uses at run time a copy of the library already present on the user's computer system, rather than copying library functions into the executable, and (2) will operate properly with a modified version of the library, if the user installs one, as long as the modified version is interface-compatible with the version that the work was made with." Pay particular attention to section a - you must accompany the library with source code FOR THE LIBRARY including any changes you made to the library to get it to link with your work, but the "work that uses the library" need only be accompanied by object code and/OR source code. There were a couple more provisos as well - you must permit reverse engineering so the user can debug etc, but essentially it seems you needn't redistribute your source. IANAL, I haven't read the whole license, I could be talking bollocks, take with a large pinch of salt, etc etc, Cheers - Dave |