[vpp-dev] Scapy license in VPP
Few quick comments and links.
Turns out GPLv2-or-later is not by itself compatible with Apache [2],
we need to use GPLv3 (which is compatible with both).
The questions on dynamic linking are still open [3] [4] [5].
We probably need to distinguish several Programs
available from VPP repository.
VPP PAPI (library) is a separate distribution
from VPP test framework.
When a user starts VPP test framework,
linking with VPP PAPI in runtime,
therefore creating a derived work.
GPLv3 would apply to that Program,
but it does not mean we need to mention GPLv3
in VPP PAPI license headers.
This only works because VPP PAPI does not share
any code nor data structures specific to VPP test framework.
Modules which link with Scapy do share data structures,
so the "derived work" nature is apparent already in repo.
Vratko.
[2] https://www.gnu.org/licenses/license-list.html#apache2
[3] https://tech.popdata.org/the-gpl-license-and-linking-still-unclear-after-30-years/
[4] https://lwn.net/Articles/548216/
Sent: Friday, 2021-January-29 18:10
To: Paul Vinciguerra <pvinci@...>
Cc: tsc@...; Kinsella, Ray <ray.kinsella@...>; vpp-dev@...
Subject: Re: [vpp-dev] Scapy license in VPP
> Why do you say that vpp_papi need to be dual licensed?
I think e-mail reply would be long,
and I will need to address comments anyway,
so I respond via a Gerrit change [1].
Vratko.
[1] https://gerrit.fd.io/r/c/vpp/+/31025
From: Paul Vinciguerra <pvinci@...>
Sent: Friday, 2021-January-29 15:29
To: Vratko Polak -X (vrpolak - PANTHEON TECH SRO at Cisco) <vrpolak@...>
Cc: tsc@...; Kinsella, Ray <ray.kinsella@...>;
vpp-dev@...
Subject: Re: [vpp-dev] Scapy license in VPP
Why do you say that vpp_papi need to be dual licensed?
On Thu, Jan 28, 2021 at 12:43 PM Vratko Polak -X (vrpolak - PANTHEON TECHNOLOGIES at Cisco) via lists.fd.io <vrpolak=cisco.com@...> wrote:
First draft created [0] for the change that will switch
licenses for Python files used together with Scapy.
For some files, I was not sure whether they are used together with Scapy.
One big detail is that vpp_papi needs to have dual license,
as test framework integrates with it (and with scapy).
If I understand the licensing logic correctly,
CSIT tests can still choose to use vpp_papi under Apache license option.
But we may need to discuss that with lawyers.
Ray, you may need to upgrade your contributor-finding shell pipeline
to cover all files I added the new license into.
Vratko.
> we use scapy to create a separate pcap file
We also use Scapy data structures
to parse packets received from VPP
to verify they contain the correct values.
Example: [6].
> we need to use GPLv3 (which is compatible with both).
Only for programs such as VPP test framework
which link with both GPL (Scapy) and Apache (VPP PAPI).
But that includes also programs that depend
on Apache-licensed library only by mistake [7].
Vratko.
[6] https://github.com/FDio/vpp/blob/e988726cbfb1b1f618c4034aa16e41364f9c48a2/test/test_ip4.py#L160-L182
Sent: Thursday, 2021-February-04 17:05
To: Vratko Polak -X (vrpolak - PANTHEON TECH SRO at Cisco) <vrpolak@...>
Cc: tsc@...; Kinsella, Ray <ray.kinsella@...>; vpp-dev@...
Subject: Re: [vpp-dev] Scapy license in VPP
This is good information.
Can we take a step back and approach this from a different perspective? Why do we actually need scapy?
The general process is that we use scapy to create a separate pcap file that is fed to the vpp packet generator.
If we instead create named pcap files that we pre-package with the tests, we would 1) resolve this issue 2) speed up the actual execution of the tests.
The only usage of scapy outside of the unit tests proper that comes to mind is within test/utils.py
Paul
On Thu, Feb 4, 2021 at 9:54 AM Vratko Polak -X (vrpolak - PANTHEON TECH SRO at Cisco) <vrpolak@...> wrote:
Few quick comments and links.
Turns out GPLv2-or-later is not by itself compatible with Apache [2],
we need to use GPLv3 (which is compatible with both).
The questions on dynamic linking are still open [3] [4] [5].
We probably need to distinguish several Programs
available from VPP repository.
VPP PAPI (library) is a separate distribution
from VPP test framework.
When a user starts VPP test framework,
linking with VPP PAPI in runtime,
therefore creating a derived work.
GPLv3 would apply to that Program,
but it does not mean we need to mention GPLv3
in VPP PAPI license headers.
This only works because VPP PAPI does not share
any code nor data structures specific to VPP test framework.
Modules which link with Scapy do share data structures,
so the "derived work" nature is apparent already in repo.
Vratko.
[2] https://www.gnu.org/licenses/license-list.html#apache2
[3] https://tech.popdata.org/the-gpl-license-and-linking-still-unclear-after-30-years/
[4] https://lwn.net/Articles/548216/
From: vpp-dev@... <vpp-dev@...> On Behalf Of Vratko Polak -X (vrpolak - PANTHEON TECHNOLOGIES at Cisco) via lists.fd.io
Sent: Friday, 2021-January-29 18:10
To: Paul Vinciguerra <pvinci@...>
Cc: tsc@...; Kinsella, Ray <ray.kinsella@...>; vpp-dev@...
Subject: Re: [vpp-dev] Scapy license in VPP
> Why do you say that vpp_papi need to be dual licensed?
I think e-mail reply would be long,
and I will need to address comments anyway,
so I respond via a Gerrit change [1].
Vratko.
[1] https://gerrit.fd.io/r/c/vpp/+/31025
From: Paul Vinciguerra <pvinci@...>
Sent: Friday, 2021-January-29 15:29
To: Vratko Polak -X (vrpolak - PANTHEON TECH SRO at Cisco) <vrpolak@...>
Cc: tsc@...; Kinsella, Ray <ray.kinsella@...>; vpp-dev@...
Subject: Re: [vpp-dev] Scapy license in VPP
Why do you say that vpp_papi need to be dual licensed?
On Thu, Jan 28, 2021 at 12:43 PM Vratko Polak -X (vrpolak - PANTHEON TECHNOLOGIES at Cisco) via lists.fd.io <vrpolak=cisco.com@...> wrote:
First draft created [0] for the change that will switch
licenses for Python files used together with Scapy.
For some files, I was not sure whether they are used together with Scapy.
One big detail is that vpp_papi needs to have dual license,
as test framework integrates with it (and with scapy).
If I understand the licensing logic correctly,
CSIT tests can still choose to use vpp_papi under Apache license option.
But we may need to discuss that with lawyers.
Ray, you may need to upgrade your contributor-finding shell pipeline
to cover all files I added the new license into.
Vratko.