Wireshark-dev: Re: [Wireshark-dev] What Wireshark base version to use for customization
From: Guy Harris <guy@xxxxxxxxxxxx>
Date: Wed, 10 Dec 2014 13:00:23 -0800
On Dec 10, 2014, at 11:02 AM, Graham Bloice <graham.bloice@xxxxxxxxxxxxx> wrote:

> A Wireshark plugin links with the main body of the program and thus is covered by the licence of the main program.

From the GPL FAQ:

	http://www.gnu.org/licenses/gpl-faq.html#GPLAndPlugins

"If I write a plug-in to use with a GPL-covered program, what requirements does that impose on the licenses I can use for distributing my plug-in?(#GPLAndPlugins)

  It depends on how the program invokes its plug-ins. If the program uses fork and exec to invoke plug-ins, then the plug-ins are separate programs, so the license for the main program makes no requirements for them.

  If the program dynamically links plug-ins, and they make function calls to each other and share data structures, we believe they form a single program, which must be treated as an extension of both the main program and the plug-ins. This means you must license the plug-in under the GPL or a GPL-compatible free software license and distribute it with source code in a GPL-compliant way.

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

"We" here being the Free Software Foundation.  The GPL itself doesn't explicitly discuss this; I'm not sure what the legal status of a claim in the FAQ is.

Wireshark would fall under the second clause, as its dissector plugins make calls to Wireshark (libwireshark, to be specific) and share data structures with it.

This means that the plugin must be licensed under the terms of the GPL.