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

From: Anders Broman <a.broman58@xxxxxxxxx>
Date: Mon, 4 Dec 2023 17:55:56 +0100
Not answering the statement
"Not the right thing to do" 

Den mån 4 dec. 2023 17:44João Valverde <j@xxxxxx> skrev:


On 04/12/23 16:30, Anders Broman wrote:
> https://www.google.com/search?q=company+internal+use+of+gpl+code&oq=company+internal+use+of+gpl+code&gs_lcrp=EgZjaHJvbWUyBggAEEUYOTIHCAEQIRigAdIBCTIxMDcwajFqN6gCALACAA&client=ms-android-samsung-ss&sourceid=chrome-mobile&ie=UTF-8&chrome_dse_attribution=1
> <https://www.google.com/search?q=company+internal+use+of+gpl+code&oq=company+internal+use+of+gpl+code&gs_lcrp=EgZjaHJvbWUyBggAEEUYOTIHCAEQIRigAdIBCTIxMDcwajFqN6gCALACAA&client=ms-android-samsung-ss&sourceid=chrome-mobile&ie=UTF-8&chrome_dse_attribution=1>
>
>
> For me it is no problem circumventing your code. I'm just questioning
> if it is the right thing for the project to do.

I said "legally" preventing. Obviously technically anyone can circumvent it.

> That's it from me.
> Regards
> Anders
>
> Den mån 4 dec. 2023 17:24João Valverde <j@xxxxxx> skrev:
>
>
>
>     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
>
>     ___________________________________________________________________________
>     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