LGPL question

Rob Stubbs rob_stubbs at email.com
Sat Nov 13 16:34:31 UTC 1999


> > I am contemplating developing a library under an open source license and
> am
> > studying the various licenses to see if any satifies my needs.  The LGPL
> > license seems to be closest to my satisfaction but I have one major
> problem
> > with it (if I understand it correctly).
> >
> > ... snip ...
> >
> > This seems to violate the intent of the license, but I cannot see that it
> > actually violates the license itself.  Or would this be considered a
> > derivative work?  Regarding section #5, is it true that an executable that
> > is compiled or statically with the library be covered by the LGPL, but
> that
> > an executable they is dynamically linked to the LGPL would not be?
>
> IANAL, and IMHO, this can be legally done. The code that uses the libraries
> makes the choice of whether it calls the LGPL function or the proprietary
> one.
> It is not derived from your work since no code of yours was used, only the
> API,
> and only a very tiny part of it at that.

Let me explain my motives more clearly.  The library that I am contemplating
developing as an open source project is an algorithm (or collection of
algorithms) to solve NP-hard problems.  (Loosely speaking, these are problems
for which no polynomial time solution algorithms are known and many believe that
no such algorithms exist.)  Doing so, I would be releasing a lot of proprietary
information myself.  I currently work for a company that produces such software,
but am contemplating quitting in order to start such a project (my company has
no interest in going open source).

If I decide to procede, many people will believe that I am crazy, especially
given the money that can be made in this area right now because of the
proliferation of supply-chain management software which utilizes such
algorithms.  In fact, this is closely related to the example that Eric Raymond
gives in one of his open source papers on a situation in which the code should
not be open source.  However, the scientist in me (I have a PhD in this stuff)
wants to because I believe that the open source community (which would most
likely consists mainly of academics in this case) could produce a better
collection of algorithms than those of any company that exists today.
Furthermore, I believe that researchers would then get more involved because
there would be a base to work off of rather that each person having to reinvent
the wheel.  (And most people would reinvent the wheel poorly because they would
really only be interested in experimenting with their new idea(s). )


> Take these hypothetical example: a
> program that can use either motif or lesstif. Or a program that can use
> either
> harmony or qt. Or a program that can use a floating point library or the
> built
> in proprietary routines of the CPU.
>

I'm not sure if these examples are really that applicable.  Large packages
designed to do a single task such as Apache web server for mySQL would probably
be better examples.

> You have two problems with what you want to do, again IMHO :-) First
> of all, you are trying to demand what someone else does with their own code.
> Second, and more important, if you agree that they can duplicate your entire
> set of algorithms independently, what's wrong with only duplicating one part
> of it?

They could not (at least it would be very difficult to) duplicate the set of
algorithms without studying the code.  So, my original question was if someone
modifies the original library by adding a callback function that would use a
proprietary routine instead of one that exists in the library, does this violate
the LGPL?  If the proprietary routine is useful by itself without the original
library, then I have no problem with this routine remaining in a proprietary
library and it probably doesn't violate the LGPL.  In fact, I would like to
encourage such use.  However, what about the case that the proprietary algorithm
by itself is useless.  This routine is not called directly by any user of the
original library, it is only useful as a low-level utility routine by a
higher-level function that is called directly by the end user of the library.
In this case, would the proprietary routine be considered a derivative of the
original library and thus be licensed under LGPL as well?

Technically, I don't see anything in the license that says that it should be,
but THIS is the case for which I would like for it to be.

Again, if it is legal to do this, is there a clause that could be added to the
LGPL or similar license that would make this a violation?  If so, what would be
the least restrictive way of wording this clause to accomplish this?

> --
> Arandir...
>

Rob Stubbs





More information about the License-discuss mailing list