Is inherited class a derivative work?

Michael Beck mbeck1 at
Mon Oct 22 01:05:52 UTC 2001

> -----Original Message-----
> From: David Johnson
> Sent: Thursday, October 18, 2001 23:52

> The bigger issue (in my opinion) is why the LGPL treats inheritance
> differently from composition. Why is a direct function call
> different than an indirect function call through a vtable?

Because one is "using the class" while the other is "based on the class".

> Here's a concrete example of the problem: under most widget
> toolkits, you can
> create a new widget through either composition or through
> inheritance. For
> example, a ComboBox can be composed of an EditBox and a ListBox. Or a
> ComboBox can inherit from both EditBox and ListBox. Both
> methods will result
> in exactly the some external interface.

But the internal representation is different. Intel and AMD chips have similar
external interface (i.e. they are software-compatible for most cases), but the
internal representation has to be different, otherwise AMD would get in trouble
with Intel.

> Both results will call exactly the
> same functions and methods in the library. So why should the
> LGPL treat one
> design methodology differently from another design methodology?

By using inheritance you are changing the "design blueprint" for creation of an
object, and because of that Copyright Law applies here.

> As a C++ programmer, this aspect of the LGPL is very
> troubling. In short, why
> even bother placing a class library under the LGPL, when the
> GPL will offer
> exactly the same permissions and restrictions?

IMHO - if I release a class under LGPL, I give you the right to use it in
commercial projects, and as long as you keep the class library separate from
your program, your code is not touched by the LGPL code, and you don't have to
release it. Under GPL you would have to do it. That's the advantage of LGPL in
my eyes.


license-discuss archive is at

More information about the License-discuss mailing list