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

From: João Valverde <j@xxxxxx>
Date: Mon, 4 Dec 2023 16:23:59 +0000


On 04/12/23 15:55, Martin Mathieson via Wireshark-dev wrote:
I have been doing internal Wireshark releases for years wherever I've been working (as far as I know, they have never been sent outside of the company).  I have *never* used the plugin mechanism. I package up the entire program, even if only one file has been changed.  My current company has acquired and merged with several other companies and development groups - as far as I can tell, they all have a local Wireshark person who does the same.  If people are working closely with me, we sometimes even just keep dissectors as part of the test code for the project that uses them, and team members build it themselves.

Am I allowed to do this?

In a strict legal sense I don't think you can use a GPL-incompatible license for your changes, but it doesn't really matter as long as you don't distribute it. Otherwise what does it matter which license it uses or if it doesn't have a license at all? There is no one to license it to. You are the only one using it and the GPL grants you the right to modify the software. You can grant yourself only a GPL-license for your modifications and no one else if it gives you peace of mind. :-)

AFAIK there is also nothing legally preventing someone from rebuilding Wireshark with a modified source code to ignore the plugin license check and forget the whole issue, in the same conditions as above, as long as they don't distribute the proprietary plugin. The GPL violation only happens if you distribute your plugin using an incompatible license.

Martin



On Mon, Dec 4, 2023 at 2:54 PM João Valverde <j@xxxxxx> wrote:



    On 04/12/23 14:52, João Valverde wrote:
    >
    >
    > On 04/12/23 14:32, Anders Broman wrote:
    >> Hi,
    >> Company plug-ins may have restrictive license as the purpose is to
    >> only use them internally no public usage "secret" code for
    >> proprietary protocols under patents or IPL. Do we really want to
    >> forbid that? In that case why should companies provide code to
    >> Wireshark rather than just fork and build internally.
    >
    > I understand the argument and why that is a point of contention,
    but
    > that does not change the terms of the GPL which must be abided
    by even
    > if this commit was never merged in the first place.
    >
    > I don't think it is a question of whether we want to forbid it,
    it is
    > whether we can allow it. I believe the answer to that is a clear
    no if
    > we want to respect the terms of the GPLv2 (and I'm fine with
    that). I
    > am not a license lawyer so this is just my understanding of the
    > legalities involved.
    >
    ...nor any other kind of lawyer. :-)

    > There are many reasons why companies may choose to contribute or
    not.
    > Other companies may choose not to contribute to projects not
    using the
    > GPL. And individual developers may or may not want to
    contribute. Etc.
    > We can also debate that but it might veer off-topic.
    >
    >> Best regards
    >
    >> A ders
    >>
    >> Den mån 4 dec. 2023 15:22João Valverde <j@xxxxxx> skrev:
    >>
    >>
    >>
    >>     On 04/12/23 13:42, Anders Broman wrote:
    >>     > Hi,
    >>     > Maybe you are missing the point that someone may wish to
    develop
    >>     an in
    >>     > house plug-in not meant for distribution which in my
    >>     understanding is
    >>     > permissible under GPL.
    >>
    >>     My understanding is that this is permitted under the GPL if
    using a
    >>     GPL-compatible license for your software. It's the main
    difference
    >>     between the GPL and so-called "permissive" licenses.
    >>
    >>     >
    >>     > As I understand it that is no longer possible? To me
    that's an
    >>     > unnecessary restriction which we do not need to put on
    our users
    >>     and I
    >>     > see no point/gain in doing so.
    >>
    >>     If you don't want to use the GPL you can choose a
    GPL-compatible
    >>     license
    >>     (BSD for example, there are many) and register your plugin with
    >>     WS_PLUGIN_IS_GPLv2_COMPATIBLE. The SPDX ID is optional but
    helpful.
    >>
    >>     You may also use GPLv2 and just not distribute your binary
    (in the
    >>     case
    >>     of businesses and corporations outside of the collective
    entity that
    >>     legally comprises it).
    >>
    >>     So it's not really restricting your freedom to use
    Wireshark, it's
    >>     just
    >>     respecting the terms of the GPL under which developers
    contribute
    >>     to the
    >>     project.
    >>
    >>     This is my understanding of the terms under which I choose to
    >>     contribute
    >>     to Wireshark. If anyone has a better understanding or
    reason why
    >> this
    >>     interpretation of the GPL, that matches the FSF FAQ, is wrong,
    >>     please do
    >>     share. I'm very open to a good-faith discussion.
    >>
    >>
    >>     > Best regards
    >>     > Anders
    >>     >
    >>     > Den mån 4 dec. 2023 14:05João Valverde <j@xxxxxx> skrev:
    >>     >
    >>     >     Confused was not an offense, "GPL license" is
    patently not the
    >>     >     same as
    >>     >     "GPL-compatible license" so it is a legitimate reason
    to be
    >>     confused.
    >>     >     Please avoid unnecessary and unfair characterizations
    of my
    >>     words.
    >>     >
    >>     >     And I will not revert it on that basis. I will revert
    it if my
    >>     >     understanding of the our license requirements is wrong or
    >>     flawed.
    >>     >     It is
    >>     >     not OK for you to exempt some use-case from the license
    >>     terms under
    >>     >     which every developer contributes to this project.
    >>     >
    >>     >     Gerald can revert it if he wishes and I will respect
    it. As
    >>     >     project lead
    >>     >     he can make that call.
    >>     >
    >>     >     On 04/12/23 12:35, Roland Knall wrote:
    >>     >     > I do not think there is a need for calling someone
    confused.
    >>     >     >
    >>     >     > The whole discussion is not in any way useful for
    our users.
    >>     >     There is
    >>     >     > the explicit corporate usecase, where in-house
    versions do
    >>     exist
    >>     >     with
    >>     >     > their own protocols and plugins. Often times those
    >>     versions do not
    >>     >     > even deal with licenses for those modifications at
    all, and
    >>     >     going from
    >>     >     > the point that they change the CMakeListsCustom.txt
    >> files, one
    >>     >     could
    >>     >     > argue, that this is not a source code modification
    in the
    >>     sense
    >>     >     meant
    >>     >     > by the gpl license.
    >>     >     >
    >>     >     > Joao, I agree with having a clear path for license
    >>     application,
    >>     >     and I
    >>     >     > also agree that we should be prudent on what parts
    a user
    >> can
    >>     >     use and
    >>     >     > which he can't. I would even be ok if we have a
    warning
    >> in the
    >>     >     > build-process, explicitly stating that the code being
    >>     linked is not
    >>     >     > fully compliant and therefore not allowed to be
    >>     distributed. But I
    >>     >     > strongly disagree cutting off the leg we are
    standing on
    >>     just on
    >>     >     pure
    >>     >     > principle. The corporate users are a HUGE part of our
    >>     userbase.
    >>     >     And if
    >>     >     > we go down this route, we need to have a proper
    discussion
    >>     about
    >>     >     this.
    >>     >     > Just adding license enforcement without having the
    >>     discussion is
    >>     >     NOT
    >>     >     > the way to move forward here.
    >>     >     >
    >>     >     > Please add another patch, which keeps the ABI
    versioning in
    >>     >     (which I
    >>     >     > really appreciate and think is a good thing to do), but
    >>     reverts the
    >>     >     > enforcement of the licenses. Then we can start to
    properly
    >>     >     discuss how
    >>     >     > to move forward with this topic. It will - most
    likely -
    >>     require a
    >>     >     > vote by the technical steering comittee.
    >>     >     >
    >>     >     > kind regards
    >>     >     > Roland
    >>     >     >
    >>     >     > Am Mo., 4. Dez. 2023 um 13:23 Uhr schrieb João Valverde
    >>     <j@xxxxxx>:
    >>     >     >
    >>     >     >
    >>     >     >
    >>     >     >     On 04/12/23 12:19, João Valverde wrote:
    >>     >     >     >
    >>     >     >     >
    >>     >     >     > On 04/12/23 12:12, Bálint Réczey wrote:
    >>     >     >     >> João Valverde <j@xxxxxx> ezt írta (időpont:
    2023.
    >>     dec. 4., H,
    >>     >     >     12:59):
    >>     >     >     >>>
    >>     >     >     >>>
    >>     >     >     >>> On 03/12/23 23:25, João Valverde wrote:
    >>     >     >     >>>> Hi,
    >>     >     >     >>>>
    >>     >     >     >>>> There are some changes in progress to the
    plugin
    >>     >     registration
    >>     >     >     API that
    >>     >     >     >>>> break compatibility and require manual
    intervention
    >>     >     from plugin
    >>     >     >     >>>> authors maintaining plugins out-of-tree. These
    >>     changes
    >>     >     are rather
    >>     >     >     >>>> minor and concern only plugin
    registration, not
    >>     other APIs
    >>     >     >     accessible
    >>     >     >     >>>> to plugins.
    >>     >     >     >>>>
    >>     >     >     >>>> See MR 13524:
    >>     >     >     >>>>
    >>     > https://gitlab.com/wireshark/wireshark/-/merge_requests/13524
    >>     >     >     >>>>
    >>     >     >     >>>> Changes required are rewriting the
    registration
    >>     code (very
    >>     >     >     easy to do
    >>     >     >     >>>> [1]) and declare (using a C enum) that the
    >> plugin is
    >>     >     released
    >>     >     >     either
    >>     >     >     >>>> under GPLv2 or later, or a GPLv2 compatible
    >>     license. The
    >>     >     >     other changes
    >>     >     >     >>>> to the ABI version number are
    >>     >     >     >>> The choice of the word "released" here was
    >>     unfortunate,
    >>     >     >     because it may
    >>     >     >     >>> imply distribution. Please consider "licensed"
    >>     instead.
    >>     >     >     >>>
    >>     >     >     >>> The license declaration field just affirms what
    >>     was already
    >>     >     >     implicit:
    >>     >     >     >>> Wireshark plugins must use licensing terms
    >> compatible
    >>     >     with the GPL
    >>     >     >     >>> version 2, so there is no policy change there.
    >>     >     >     >> GPL allows linking and using GPL-licensed
    software
    >> with
    >>     >     >     >> non-GPL-licensed software locally. This is an
    >> important
    >>     >     use case of
    >>     >     >     >> many Wireshark users who do not wish releasing
    >>     their plugins
    >>     >     >     and your
    >>     >     >     >> change broke that. Please revert it.
    >>     >     >     >>
    >>     >     >     >
    >>     >     >     >
    >> https://www.gnu.org/licenses/gpl-faq.html#IfLibraryIsGPL
    >>     >     >
    >>     >     >     Also it does not require a GPL license, it
    requires a
    >>     >     GPL-compatible
    >>     >     >     license, so you may just be confused.
    >>     >     >
    >>     >     >     >
    >>     >     >     >>>> currently not relevant to plugin authors
    (no policy
    >>     >     change is
    >>     >     >     >>>> implied), it just uses less boilerplate with
    >> macros.
    >>     >     >     >>>>
    >>     >     >     >>>> This should improve the plug-in experience
    for both
    >>     >     >     developers and
    >>     >     >     >>>> users and may improve compatibility in the
    future.
    >>     >     >     >>
    >>     >     >     >>>> Comments welcome.
    >>     >     >     >>>>
    >>     >     >     >>>> Regards,
    >>     >     >     >>>>
    >>     >     >     >>>> João
    >>     >     >     >>>>
    >>     >     >     >>>>
    >>     >     >
    >>     >
    >>
      [1]https://gitlab.com/wireshark/wireshark/-/commit/90b16b40921b737aadf9186685d866fd80e37ee6#4a1fe9011e8240918e5fc6230c0bcd2e4d3b9c34
    >>     >     >
    >>     >     >     >>>>
    >>     >     >     >>>>
    >>     >     >     >>>>
    >>     >     >
    >>     >
    >>
      ___________________________________________________________________________
    >>     >     >
    >>     >     >     >>>>
    >>     >     >     >>>>
    >>     >     >     >>>> Sent via: Wireshark-dev mailing list
    >>     >     >     <wireshark-dev@xxxxxxxxxxxxx>
    >>     >     >     >>>> Archives:
    >> https://www.wireshark.org/lists/wireshark-dev
    >>     >     >     >>>> Unsubscribe:
    >>     >     > https://www.wireshark.org/mailman/options/wireshark-dev
    >>     >     >     >>>>
    >>     >
     mailto:wireshark-dev-request@xxxxxxxxxxxxx?subject=unsubscribe
    >>     >     >     >>>
    >>     >     >
    >>     >
    >>
      ___________________________________________________________________________
    >>     >     >
    >>     >     >     >>>
    >>     >     >     >>> Sent via: Wireshark-dev mailing list
    >>     >     >     <wireshark-dev@xxxxxxxxxxxxx>
    >>     >     >     >>> Archives:
    >> https://www.wireshark.org/lists/wireshark-dev
    >>     >     >     >>> Unsubscribe:
    >>     >     > https://www.wireshark.org/mailman/options/wireshark-dev
    >>     >     >     >>>
    >>     >
     mailto:wireshark-dev-request@xxxxxxxxxxxxx?subject=unsubscribe
    >>     >     >     >>
    >>     >     >
    >>     >
    >>
      ___________________________________________________________________________
    >>     >     >
    >>     >     >     >>
    >>     >     >     >> Sent via: Wireshark-dev mailing list
    >>     >     >     <wireshark-dev@xxxxxxxxxxxxx>
    >>     >     >     >> Archives:
    >> https://www.wireshark.org/lists/wireshark-dev
    >>     >     >     >> Unsubscribe:
    >>     >     > https://www.wireshark.org/mailman/options/wireshark-dev
    >>     >     >     >>
    >>     >
     mailto:wireshark-dev-request@xxxxxxxxxxxxx?subject=unsubscribe
    >>     >     >     >
    >>     >     >     >
    >>     >     >
    >>     >
    >>
      ___________________________________________________________________________
    >>     >     >
    >>     >     >     >
    >>     >     >     > Sent via:    Wireshark-dev mailing list
    >>     >     >     <wireshark-dev@xxxxxxxxxxxxx>
    >>     >     >     > Archives:
    >> https://www.wireshark.org/lists/wireshark-dev
    >>     >     >     > Unsubscribe:
    >>     > https://www.wireshark.org/mailman/options/wireshark-dev
    >>     >     >     >
    >> mailto:wireshark-dev-request@xxxxxxxxxxxxx?subject=unsubscribe
    >>     >     >
    >>     >     >
    >>     >
    >>
      ___________________________________________________________________________
    >>     >     >     Sent via:    Wireshark-dev mailing list
    >>     >     <wireshark-dev@xxxxxxxxxxxxx>
    >>     >     >     Archives:
    https://www.wireshark.org/lists/wireshark-dev
    >>     >     >     Unsubscribe:
    >>     > https://www.wireshark.org/mailman/options/wireshark-dev
    >>     >     >
    >>     >     >
    >>   mailto:wireshark-dev-request@xxxxxxxxxxxxx?subject=unsubscribe
    >>     >     >
    >>     >     >
    >>     >     >
    >>     >
    >>
     ___________________________________________________________________________
    >>     >     > Sent via:    Wireshark-dev mailing list
    >>     >     <wireshark-dev@xxxxxxxxxxxxx>
    >>     >     > Archives: https://www.wireshark.org/lists/wireshark-dev
    >>     >     > Unsubscribe:
    >> https://www.wireshark.org/mailman/options/wireshark-dev
    >>     >     >
    >>     >
      mailto:wireshark-dev-request@xxxxxxxxxxxxx?subject=unsubscribe
    >>     >
    >>     >
    >>
     ___________________________________________________________________________
    >>     >     Sent via:    Wireshark-dev mailing list
    >>     <wireshark-dev@xxxxxxxxxxxxx>
    >>     >     Archives: https://www.wireshark.org/lists/wireshark-dev
    >>     >     Unsubscribe:
    >> https://www.wireshark.org/mailman/options/wireshark-dev
    >>     >
    >>     >
      mailto:wireshark-dev-request@xxxxxxxxxxxxx?subject=unsubscribe
    >>     >
    >>     >
    >>     >
    >>
    ___________________________________________________________________________
    >>     > Sent via:    Wireshark-dev mailing list
    >>     <wireshark-dev@xxxxxxxxxxxxx>
    >>     > Archives: https://www.wireshark.org/lists/wireshark-dev
    >>     > Unsubscribe:
    >> https://www.wireshark.org/mailman/options/wireshark-dev
    >>     >
    >>  mailto:wireshark-dev-request@xxxxxxxxxxxxx?subject=unsubscribe
    >>
    >>
    ___________________________________________________________________________
    >>     Sent via:    Wireshark-dev mailing list
    >> <wireshark-dev@xxxxxxxxxxxxx>
    >>     Archives: https://www.wireshark.org/lists/wireshark-dev
    >>     Unsubscribe:
    https://www.wireshark.org/mailman/options/wireshark-dev
    >>
    >>  mailto:wireshark-dev-request@xxxxxxxxxxxxx?subject=unsubscribe
    >>
    >>
    >>
    ___________________________________________________________________________

    >>
    >> Sent via:    Wireshark-dev mailing list
    <wireshark-dev@xxxxxxxxxxxxx>
    >> Archives: https://www.wireshark.org/lists/wireshark-dev
    >> Unsubscribe:
    https://www.wireshark.org/mailman/options/wireshark-dev
    >> mailto:wireshark-dev-request@xxxxxxxxxxxxx?subject=unsubscribe
    >

    ___________________________________________________________________________
    Sent via:    Wireshark-dev mailing list <wireshark-dev@xxxxxxxxxxxxx>
    Archives: https://www.wireshark.org/lists/wireshark-dev
    Unsubscribe: https://www.wireshark.org/mailman/options/wireshark-dev
               
     mailto:wireshark-dev-request@xxxxxxxxxxxxx?subject=unsubscribe


___________________________________________________________________________
Sent via:    Wireshark-dev mailing list <wireshark-dev@xxxxxxxxxxxxx>
Archives:    https://www.wireshark.org/lists/wireshark-dev
Unsubscribe: https://www.wireshark.org/mailman/options/wireshark-dev
              mailto:wireshark-dev-request@xxxxxxxxxxxxx?subject=unsubscribe