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

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


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