Hmmm, I think this is incorrect. The GPL folks themselves have this to say:
It depends on how the main program invokes its plug-ins. If the main program uses fork and exec to invoke plug-ins, and they establish intimate communication by sharing complex data structures, or shipping complex data structures back and forth, that can make them one single combined program. A main program that uses simple fork and exec to invoke plug-ins and does not establish intimate communication between them results in the plug-ins being a separate program.
If the main program dynamically links plug-ins, and they make function calls to each other and share data structures, we believe they form a single combined program, which must be treated as an extension of both the main program and the plug-ins. If the main 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.
Using shared memory to communicate with complex data structures is pretty much equivalent to dynamic linking.
Notice this is different from the GPL v2 which wordpress uses more discussion on that topic, and drupal which has a discussion here
So in this case if you want to create commercially licensed ‘plugins’ you would need to do so externally and go through an ‘api’ or something similar. I believe this to be one of the primary motivators for the explosion of microservices.
Furthermore, I think all published code, or redistributed in any other fashion, under the umbrella of the reaction commerce directory (*including the
imports directory) would immediately and irrevocably be subject to the GPL v3
I always post this show when people ask about licensing issues https://www.softwarefreedom.org/podcast/2011/aug/16/Episode-0x16-Legal-Basics-for-Developers/