[fpc-pascal] Licensing issue: Subclassing

Vladimir Zhirov vvzh.lists at gmail.com
Tue Jul 27 14:32:12 CEST 2010


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?

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

-- 
Best regards,
Vladimir Zhirov



More information about the fpc-pascal mailing list