[legal-discuss] Fwd: [tc][ansible][ironic] Reusing Ansible code in OpenStack projects

Steven Dake (stdake) stdake at cisco.com
Thu May 19 17:15:33 UTC 2016



From: Pavlo Shchelokovskyy <pshchelokovskyy at mirantis.com<mailto:pshchelokovskyy at mirantis.com>>
Date: Thursday, May 19, 2016 at 5:58 AM
To: "legal-discuss at lists.openstack.org<mailto:legal-discuss at lists.openstack.org>" <legal-discuss at lists.openstack.org<mailto:legal-discuss at lists.openstack.org>>
Subject: [legal-discuss] Fwd: [tc][ansible][ironic] Reusing Ansible code in OpenStack projects

Hi all,

I have a question re FOSS licenses interplay. I am pretty sure that OpenStack community (e.g. openstack-ansible) has already faced such questions and I would really appreciate any advice.

We are developing a new ansible-based deployment driver for Ironic [0] and would like to use some parts of ansible-lib Python API to avoid boilerplate code in custom Ansible modules and callbacks we are writing, and in the future probably use Ansible Python API to launch playbooks themselves.

The problem is Ansible and ansible-lib in particular are licensed under GPL v3 [1] "or later" [2]. According to [3] Apache 2.0 license is only one way compatible with GPL v3 (GPL v3-licensed code can include Apache 2.0-licensed code, but not vice versa).

I am by far not a legal expert, so my questions are:

Does it mean that the moment I do "from ansible import ..." in my Python code, which AFAIU means I am "linking" to it, I am required to use a GPLv3-compliant license for my code too (in particular not Apache 2.0)?

IANAL but yes that is what it means.  I'd propose running ansible in a subprocess which treats it as a network service since it runs over a network (pipe) in a separate process address spce.  From my limited understanding this does not cause license contamination.

What problems might that imply in respect with including such code in an OpenStack project (e.g. submitting it to Ironic repo) and distributing the project?
If there are indeed problems with that, would it be safer to keep the code in a separate project and also distribute it separately?
Even when distributed separately, will merely using (dynamically importing at run-time) a GPLv3-licensed driver from ApacheV2-licensed Ironic constitute any license violation?

Note that technically we could avoid re-using Ansible code for Ansible modules and callbacks, just that it would be much-much less convenient.

[0] https://review.openstack.org/#/q/topic:bug/1526308
[1] https://github.com/ansible/ansible/blob/devel/COPYING
[2] https://github.com/ansible/ansible/blob/devel/lib/ansible/__init__.py#L8
[3] http://www.apache.org/licenses/GPL-compatibility.html

Best regards,

Dr. Pavlo Shchelokovskyy
Senior Software Engineer
Mirantis Inc
www.mirantis.com<http://www.mirantis.com>


-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.openstack.org/pipermail/legal-discuss/attachments/20160519/097b6ae7/attachment.html>


More information about the legal-discuss mailing list