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 _______________________________________________ fpc-pascal maillist - fpc-pascal@lists.freepascal.org http://lists.freepascal.org/mailman/listinfo/fpc-pascal