Huge thanks to our Platinum Members Endace and LiveAction,
and our Silver Member Veeam, for supporting the Wireshark Foundation and project.

Wireshark-dev: Re: [Wireshark-dev] checklicenses.py

From: Guy Harris <guy@xxxxxxxxxxxx>
Date: Mon, 8 Aug 2016 14:59:35 -0700
On Aug 8, 2016, at 12:12 PM, João Valverde <joao.valverde@xxxxxxxxxxxxxxxxxx> wrote:

> On 08/08/2016 07:38 PM, Guy Harris wrote:
>> 
>>> On Aug 8, 2016, at 11:00 AM, João Valverde <joao.valverde@xxxxxxxxxxxxxxxxxx> wrote:
>>> 
>>> There's a difference between "choose license A or B" and "this code is license A and that addition is license B".
>> 
>> Then perhaps licensecheck.pl should distinguish between them:
> 
> [ snipped code sample]
> 
> Perhaps... I think that distinction only matters to the copyright holder, CACE Technologies, now Riverbed I believe.
> 
> For the distributor, the Wireshark project, the code is licensed under BSD, because it cannot be used with GPLv2+.

The license checking process has two parts:

	identifying the license(s) for the file;

	distinguishing between acceptable and unacceptable licenses.

The first part is what licensecheck.pl does; it doesn't and shouldn't care why the license types are interesting, it should just try to determine how the file is licensed.  "This file has a mixture of code licensed under license X and code licensed under license Y" and "the code in this file, in its entirety, could be licensed under either license X or license Y" are two different forms of license, so it makes sense to me that the script should report them differently.

The second part is what checklicenses.py does.  It's not reporting what license the Wireshark Foundation chooses to use for a given file, it's just determining whether the license is acceptable for Wireshark or not.

"This file has a mixture of BSD and GPLv2-only code" isn't acceptable, I guess, if we have to worry about linking with GPLv3 code outside of Wireshark; we'd have to replace all the GPLv2-only code with code licensed under a license compatible with the GPLv3 (or get the licensor to change the license to GPLv2-or-later).

"This file can, in its entirety, be licensed under the BSD license or the GPLv2 license, but not any later licenses" is acceptable, as we can choose to license it under the BSD license.

So the distinction between those two *does* matter to the Wireshark project - we can't choose the BSD license for a file with a mix of BSD and GPLv2-only code, but we can do so for dual BSD/GPLv2-only code.