[fpc-pascal] Licensing issue: Subclassing

Mattias Gaertner nc-gaertnma at netcologne.de
Tue Jul 27 15:30:45 CEST 2010

On Tue, 27 Jul 2010 17:32:12 +0500
Vladimir Zhirov <vvzh.lists at gmail.com> wrote:

> Hi,
> There was a question raised in Russian FPC forum about whether LCL
> license (modified LGPL) should be applied to a subclass of LCL class:
>   TMyButton = class(TButton)
> This turned out to be a deeper problem, since it would also affect
> subclassing from RTL/FCL classes:
>   TMyObject = class(TObject)
> Reading gnu.org does not clarify the situation because:
> A) GPL FAQ states that "Subclassing is creating a derivative work."
> (http://www.gnu.org/licenses/gpl-faq.html#OOPLang)
> But:
> B) LGPL states that "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."
> (http://www.gnu.org/licenses/old-licenses/lgpl-2.0.html#SEC3, "5.")
> So this seems unclear whether application that subclasses from
> RTL/FCL/LCL is a derived work of RTL/FCL/LCL and must itself be
> licensed under Modified LGPL, making source code open.
> BTW, LGPL v3 explicitly allows subclassing:
> "Defining a subclass of a class defined by the Library is deemed a mode
> of using an interface provided by the Library."
> (http://www.gnu.org/licenses/old-licenses/lgpl-2.0.html#SEC3),
> but Modified LGPL is based on LGPL v2.
> I understand that the whole point of Modified LGPL is to allow creating
> closed-source products using FPC/Lazarus. But in the above aspect it
> seems not clear enough.
> Would someone of the core team please comment on this?

For me the above sounds pretty clear. LCL is modified LGPL, so
subclassing is B. You can subclass with your own license.

> Maybe subclassing deserves to be explained in some licensing 
> FAQ or even explicitly allowed in Modified LGPL itself?


More information about the fpc-pascal mailing list