Subject: subclassing and derivative works
From: Donnal Walter <donnalcwalter@yahoo.com>
Date: Thu, 4 Nov 2004 07:47:24 -0800 (PST)

I understand that the definition of "derivative work" is among the
most difficult legal questions facing the open source community, so
there may be no clear answer to my question. Nevertheless, I am the
copyright holder of a "development framework" (Dfw) designed to
make it easier to create custom applications with Python and
wxPython (both of which are OSI-certified, GPL-compatible and
permissive with regard to reciprocity). I am also the copyright
holder of an application (App) written using Dfw. In other words,
Dfw is the "kernal" of App.

My intent is to license *both* Dfw and App using GPL or OSL, which
require reciprocity. Dfw is written in such a way that many other
custom applications could use it as a foundation ('kernal'). And I
would be happy for others to use it in this way. But I would not
want such applications to be sold under a proprietary license. And
especially, I would not want someone to write a proprietary program
(PP) using Dfw to compete with App. (I understand that if App is
good enough, there would be no practical motivation for PP to
compete, but hypothetically ...)

Now, the nature of Dfw is such that all applications based on it
have to *import* classes from Dfw and *define subclasses* of these
basic classes. That is just how it works. I read somewhere that
"subclassing" is more likely to be considered derivative than
"linking", the vagueness of these terms notwithstanding. OTOH, PP
could be written as a module or package entirely separate from Dfw
without deriving from Dfw in the sense of "extending" it as an
improved framework. PP would use Dfw as its 'kernal' just like App
does without changing the kernal in any way.

My questions, then, are these:

1. Under these circumstances, does the "subclassing" requirement of
Dfw mean that PP is a derivative of Dfw in a stronger sense than
"merely linking"? (Or is subclassing in this situation the same as
linking: no stronger, no weaker?)

2. In other words, can reciprocity be enforced with regard to works
written "using" Dfw but not "extending" Dfw as a framework?

3. With regard question 2, would either GPL or OSL be substantially
stonger than the other?

4. If the answer to question 2 is "no", would I be better off using
LGPL or AFL (non-reciprocity) for Dfw in the hopes of attracting a
wider audience of programmers to help improve it?

Thanks,
Donnal Walter
Arkansas Children's Hospital