[tc][qa] possible license violation in os-faults project
Hi all, today I came about what I see as a possible violation of GPLv3 license in openstack/os-faults project. As all other openstack/* projects, openstack/os-faults and all of its code is licensed under Apache v2 license. But the code in os_faults/ansible/executor.py module explicitly imports multiple modules [0] from Ansible, which in turn are licensed under GPLv3 license (example of the first imported module [1]). IANAL, but as far as I understand Apache v2 and GPLv3 licenses are incompatible in this regard. I'd like to be proven wrong, but it seems this code in os-faults must be removed, and if needed rewritten to call out to "ansible" or "ansible-playbook" CLI scripts (and parsing their stdout) instead. [0] http://git.openstack.org/cgit/openstack/os-faults/tree/os_faults/ansible/exe... [1] https://github.com/ansible/ansible/blob/v2.4.1.0-1/lib/ansible/executor/task... Best regards, -- Dr. Pavlo Shchelokovskyy Senior Software Engineer Mirantis Inc www.mirantis.com
On 11/14/2017 04:50 AM, Pavlo Shchelokovskyy wrote:
Hi all,
today I came about what I see as a possible violation of GPLv3 license in openstack/os-faults project.
As all other openstack/* projects, openstack/os-faults and all of its code is licensed under Apache v2 license. But the code in os_faults/ansible/executor.py module explicitly imports multiple modules [0] from Ansible, which in turn are licensed under GPLv3 license (example of the first imported module [1]).
IANAL, but as far as I understand Apache v2 and GPLv3 licenses are incompatible in this regard.
I agree. The code in [0] should be licensed under the GPLv3 because it is importing from non-module parts of Ansible (ansible has a specific carve out for modules to allow them to not be GPL)
I'd like to be proven wrong, but it seems this code in os-faults must be removed, and if needed rewritten to call out to "ansible" or "ansible-playbook" CLI scripts (and parsing their stdout) instead.
It's also worth noting that Ansible upstream does not consider the python API that's being used here to be stable - so actually calling out to ansible-playbook as a subprocess is also likely to be more stable in the long run. The approach taken with the Callback Module will need to be reworked a bit. We have a few other projects hosted that are mostly apache but that have an ansible Callback module that is GPL. Of course, reworking executor.py to use subprocess instead of that Callback will need complete re-engineering of capturing the output anyway. It's possible that one of the existing callback plugins in the Ansible tree, like perhaps the json plugin, could be used to avoid the need for a custom plugin.
[0] http://git.openstack.org/cgit/openstack/os-faults/tree/os_faults/ansible/exe... [1] https://github.com/ansible/ansible/blob/v2.4.1.0-1/lib/ansible/executor/task...
Best regards, -- Dr. Pavlo Shchelokovskyy Senior Software Engineer Mirantis Inc www.mirantis.com <http://www.mirantis.com>
_______________________________________________ legal-discuss mailing list legal-discuss@lists.openstack.org http://lists.openstack.org/cgi-bin/mailman/listinfo/legal-discuss
Pavlo Shchelokovskyy wrote:
Hi all,
today I came about what I see as a possible violation of GPLv3 license in openstack/os-faults project. [...]
Note that os_faults is not an official OpenStack project, so it's not under the Technical Committee (or the OpenStack Foundation) responsibility / oversight. I would still very much recommend their authors to fix the potential licensing violation though. -- Thierry Carrez (ttx)
participants (3)
-
Monty Taylor
-
Pavlo Shchelokovskyy
-
Thierry Carrez