Wireshark-dev: Re: [Wireshark-dev] Changes to the plugin registration API

From: Guy Harris <gharris@xxxxxxxxx>
Date: Mon, 4 Dec 2023 00:31:06 -0800
On Dec 3, 2023, at 10:30 PM, Anders Broman <a.broman58@xxxxxxxxx> wrote:

> Does this mean that we are no longer allowing private closed source plug-ins not distributed outside of companies?

To quote the GPL v2 FAQ's question+answer "When is a program and its plug-ins considered a single combined program?":

	https://www.gnu.org/licenses/gpl-faq.html#GPLPlugins

"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."

which, combined with the question+answer "If I add a module to a GPL-covered program, do I have to use the GPL as the license for my module?":

	https://www.gnu.org/licenses/gpl-faq.html#GPLModuleLicense

"The GPL says that the whole combined program has to be released under the GPL. So your module has to be available for use under the GPL.

But you can give additional permission for the use of your code. You can, if you wish, release your module under a license which is more lax than the GPL but compatible with the GPL. The license list page gives a partial list of GPL-compatible licenses."

This at least suggests that, unless we explicitly have a statement allowing private closed source plug-ins not distributed outside of companies, the question as to whether we allow private closed source plug-ins not distributed outside of companies is one that may require a lawyer familiar with the GPL to look at the GPL and determine what, absent such a statement, is allowed.

Absent any special exception we grant, that would seem to imply that the combination of Wireshark and any dynamically-linked plugin for Wireshark is, at least in the view of the FSF, "a single combined program, which must be treated as an extension of both the main program and the plug-ins", which seems to imply that the combination, at least, is licensed

For what it's worth, the impression *I* had is that plugins are licensed under the GPL v2, so that, at minimum, anybody who gets a binary to such a plugin is entitled to the source code *and* is allowed to modify that source code and to redistribute the unmodified or modified source code under the terms of the GPL.