Thank you Victor, and to further return to the specific technical issues that are at the heart of this debate, the real question is
does accessing/interfacing with the MODx API constitute a derivative work and impose the GPL license on such code?
The answer is no. The intention of the "public" MODx API is to provide functions for separate add-on programs to use; it’s a framework for building custom web applications, and in this role constitutes "mere aggregation" of the framework and the separate add-on application (see
http://www.gnu.org/licenses/gpl-faq.html#MereAggregation). IMHO, the fact that this application requires MODx, which is GPL, does not make it GPL any more than running a non-GPL application in Linux does, and I’ll use this quote to justify it:
from http://www.gnu.org/licenses/gpl-faq.html#MereAggregation:
If the program dynamically links plug-ins, but the communication between them is limited to invoking the `main’ function of the plug-in with some options and waiting for it to return, that is a borderline case.
However, there is a clear distinction between developing a separate add-on component and extending the core application (modifying GPL code directly, extending core classes, copying and pasting core logic from GPL code, etc.). For MODx purposes, I want to clearly define MODx add-ons as separate programs/content that access and use the core services of the framework for logic, persistence, etc., and are not bound by the core’s GPL license; differentiated from MODx core extensions, which will have to be GPL since they constitute what I consider to be derivative code or modules.
So, in summary, the official stance of the MODx founders at this time is:
I hope this makes everyone feel a little more at ease about our position for GPL compliance.
[NOTE: be careful not not to confuse the GPL terminology of plugins and modules with MODx plugins and modules as they do not mean the same in each context. All MODx managed content elements, templates, template variables, chunks, snippets, plugins, modules are MODx Add-Ons. Core extensions are slightly harder to define at the moment, but the object-oriented core changes coming soon will help clarify this.]