On 04/12/23 22:57, Gerald Combs wrote:
On 12/4/23 12:43 PM, João Valverde wrote:
On 04/12/23 18:45, Gerald Combs wrote:
The FAQ entry below makes it clear that developing an internal
version of Wireshark is permitted, and that "within an organization"
counts as "internal." As far as I know the GPL doesn't place any
restrictions on making an internal combined work with GPL and
non-GPL software, so writing a non-GPL, internal-only plugin is
permitted as long as you take care to keep it internal. I'd
personally prefer that plugins were GPL-compatible, but I also know
that we live in a real world where that sometimes isn't possible.
There's two things here. Internal use of modified Wireshark source
code is allowed, agreed, regardless of any software license. This
includes writing and linking binary plugins. All the Wireshark
copyright holders already gave permission for that when they licensed
their code using the GPL.
I'm less happy about statements that could be construed to imply that
GPL compatibility is a matter of convenience in the real world, even
obliquely. At best it is an oversimplification to the point of
incorrection that sends the wrong message.
I expect everyone who modifies or integrates with Wireshark to abide
by its license. I've enforced the GPL on the project's behalf before
and I'll do it again if needed, although I'd prefer to help people
avoid violating the license in the first place.
https://www.gnu.org/licenses/gpl-faq.html#GPLAndPlugins
https://www.gnu.org/licenses/gpl-faq.html#LinkingWithGPL
Gerald: "As far as I know the GPL doesn't place any restrictions on
making an internal combined work with GPL and non-GPL software"
Is this really correct? Is it possible to comply with the GPLv2 and
modify Wireshark to use a third-party proprietary library, even if it
is only used internally? Can corporation A legally modify Wireshark
source code to use a proprietary library licensed by corporation B to
corporation A, even if they never release this modified version
outside of A's organization? I would be surprised if that were the case.
You're the one insisting that the GPLv2 prohibits this, so where does
it say that? The only clause I can find in the GPLv2 that directly
addresses modification is 2a:
"You must cause the modified files to carry prominent notices stating
that you changed the files and the date of any change."
That's it. I don't see anything that prohibits me from combining GPL
code with proprietary code on my personal machine or my company
laptop. *However*, the very next clause (2b) says
"You must cause any work that you distribute or publish, that in whole
or in part contains or is derived from the Program or any part
thereof, to be licensed as a whole at no charge to all third parties
under the terms of this License."
...so if you do combine Wireshark with some piece of GPL-incompatible
code, you certainly can't distribute it under the terms of the GPL,
and in Wireshark's case it means you can't distribute your combined
work at all since Wireshark is only available under the GPL.
I said I would be surprised so you may be right about this. I will need
to do more research to draw a definitive conclusion.
This isn't in contradiction with the fact that writing plugins and
not distributing the source code is allowed by the GPL. It does not
make much sense to ask if the plugin is compatible or incompatible
with the GPL (unless the plugin uses other software already using
other licenses). This question of GPL compatibility only poses itself
when a license must be granted to a third party to use this
(proprietary/secret/whatever) binary plugin as a combined work with
Wireshark.
I'm not sure what you're getting at here. If we can determine that a
plugin isn't GPL or GPL-compatible, we could expose that in the UI,
which might help companies avoid distributing something that they
shouldn't.
What I'm getting at is 1) writing a plugin for private use is allowed
under the same freedom the GPL grants anyone to change the software to
suit their needs and 2) changing the software to suit your needs doesn't
automatically force you to choose any license (for your copyrighted
code) or force you to release your copyrighted code using that license.
That is a choice you have. But when you do opt to license your code
and/or release it then it is my understanding that the license you
choose must be compatible with the obligations and restrictions imposed
by the GPL (i.e GPL-compatible).
My former employer built an internal version of Wireshark which
contained both modified Wireshark code and (as I recall) internal
plugins. The installer and main screen were quite clear that it was
internal only and should not be provided to anyone outside the
company. Plugin license detection would probably have been useful in
that case.
Seems totally fine and uncontroversial to me.
Presumably this internal Wireshark version was not also using third
party software under a GPL-incompatible license in a way that falls
under the combined work definition of the GPL. I would say this
hypothetical is more controversial than your example but I did not claim
to know the answer for certain.