David Lane - 2002-08-21

Hello all,

My company has built a sizable web application (30+k lines of code) development library/framework on top of PHPLib.  It derives classes from the session and auth classes, db abstraction layer, and the template class (although this is being superceded by XML/XSL).  It also uses an additional 20 classes that we have developed ourselves.  

Having read the LGPL and the GPL FAQ (http://www.gnu.org/licenses/gpl-faq.html#OOPLang), it's not clear whether deriving classes from PHPLib classes constitutes "linking" or a "derived work" - this is made more complicated given the original context of the LGPL, the C language...  

Perhaps the developers of PHPLib would be willing to comment on what they see as the spirit of the LGPL in the context of interpreted object oriented code...  Under the GPL, the FAQ explicitly states that derived classes are "derived work" and therefore fall under the GPL as well, although the LGPL does not seem to clarify this point. 

My intent is the following:
1.  I want to release, under the LGPL (most likely, though this is still being discussed), the majority of our codebase, including all of the classes in any way derived from PHPLib.  This will include, in addition, a sample application interface using most of the basic capabilities of objects in the codebase.
2.  I want to also retain the same code base under our own license (i.e. allowing us to sell the library to companies who want to onsell it themselves or guard their IP in the form of code built on top of the library), except for PHPLib and the directly derived classes on which the framework is built, the source code for which will always be made available to whomever asks.
3.  I want to retain the small portion of higher level *client specific* code which calls the above classes for my company's use and that of the client for whom it was written and to whom we would distribute it - they will receive the source code (how can they not, with interpreted code :o), and the ability to do with it what they like (although, if released, it would have to be released under the LGPL or a similar license).   None of this code is derived from the PHPLib classes.  It does, however, call some of those objects through the derived interfaces mentioned above.

Does the above proposal strike you all as fair-play, and within the spirit of the LGPL?  If so, please let me know, if not, I would appreciate if you could help me understand your point of view... 

Kind regards,

Dave Lane (dlane@egressive.com)