<div dir="ltr">Hi All,<div><br></div><div>I had the same question in "legal-discuss" ML and would like to summarize the outcome to benefit all.<div><br></div><div>It appears that we are in green in regards of the subject in question:</div><div><br></div><div>- from the driver itself we are launching "ansible-playbook" as a subprocess</div><div>- our custom Ansible callback plugin for logging is implemented w/o importing any Ansible code (API is pretty simple and straightforward)</div><div>- Ansible's module_utils is licensed under *BSD* (2 clause) [0] which allows us to use it in our custom modules licensed under Apache-2 (thanks to Clint Byrum for pointing that out).</div><div><br></div><div>If you are interested, you can find the code under this Gerrit topic [1]. Any comments or suggestions are as always very welcome.</div><div><br></div><div>[0] <a href="https://github.com/ansible/ansible/blob/devel/lib/ansible/module_utils/basic.py#L1-L27" target="_blank">https://github.com/ansible/ansible/blob/devel/lib/ansible/module_utils/basic.py#L1-L27</a></div><div>[1] <a href="https://review.openstack.org/#/q/topic:bug/1526308" target="_blank">https://review.openstack.org/#/q/topic:bug/1526308</a></div></div><div><br></div><div>Cheers,</div></div><div class="gmail_extra"><br clear="all"><div><div class="gmail_signature"><div dir="ltr"><div><div dir="ltr">Dr. Pavlo Shchelokovskyy<div>Senior Software Engineer</div><div>Mirantis Inc</div><div><a href="http://www.mirantis.com" target="_blank">www.mirantis.com</a></div></div></div></div></div></div>
<br><div class="gmail_quote">On Thu, May 19, 2016 at 8:28 PM, Clint Byrum <span dir="ltr"><<a href="mailto:clint@fewbar.com" target="_blank">clint@fewbar.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><span class="">Excerpts from Pavlo Shchelokovskyy's message of 2016-05-19 15:28:03 +0300:<br>
</span><span class="">> Hi all,<br>
><br>
> I have a question re FOSS licenses interplay. I am pretty sure that<br>
> OpenStack community (e.g. openstack-ansible) has already faced such<br>
> questions and I would really appreciate any advice.<br>
><br>
> We are developing a new ansible-based deployment driver for Ironic [0] and<br>
> would like to use some parts of ansible-lib Python API to avoid boilerplate<br>
> code in custom Ansible modules and callbacks we are writing, and in the<br>
> future probably use Ansible Python API to launch playbooks themselves.<br>
><br>
> The problem is Ansible and ansible-lib in particular are licensed under GPL<br>
> v3 [1] "or later" [2]. According to [3] Apache 2.0 license is only one way<br>
> compatible with GPL v3 (GPL v3-licensed code can include Apache<br>
> 2.0-licensed code, but not vice versa).<br>
><br>
> I am by far not a legal expert, so my questions are:<br>
><br>
> Does it mean that the moment I do "from ansible import ..." in my Python<br>
> code, which AFAIU means I am "linking" to it, I am required to use a<br>
> GPLv3-compliant license for my code too (in particular not Apache 2.0)?<br>
> What problems might that imply in respect with including such code in an<br>
> OpenStack project (e.g. submitting it to Ironic repo) and distributing the<br>
> project?<br>
<br>
</span>Yes that's what it means. You can write modules in any license you want<br>
because AnsibleModule is BSD 2-clause, but plugins must be GPLv3.<br>
<span class=""><br>
> If there are indeed problems with that, would it be safer to keep the code<br>
> in a separate project and also distribute it separately?<br>
> Even when distributed separately, will merely using (dynamically importing<br>
> at run-time) a GPLv3-licensed driver from ApacheV2-licensed Ironic<br>
> constitute any license violation?<br>
><br>
<br>
</span>I think your options are to make it function without the plugins, and<br>
distribute just them separately (so a bare bones version comes with<br>
Ironic, but it works better w/ the GPLv3 plugins), or just distribute<br>
the whole thing separately.<br>
<br>
Long term, you might approach Ansible about possibly making their plugin<br>
interface LGPL so that people can write non-GPL plugins. But, it may be<br>
part of a broader strategy to ensure that contribution happens in the<br>
open. As an OSS hippie, I applaud them for choosing a strong copyleft<br>
license. :)<br>
<div class="HOEnZb"><div class="h5"><br>
__________________________________________________________________________<br>
OpenStack Development Mailing List (not for usage questions)<br>
Unsubscribe: <a href="http://OpenStack-dev-request@lists.openstack.org?subject:unsubscribe" rel="noreferrer" target="_blank">OpenStack-dev-request@lists.openstack.org?subject:unsubscribe</a><br>
<a href="http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev" rel="noreferrer" target="_blank">http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev</a><br>
</div></div></blockquote></div><br></div>