<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=us-ascii">
</head>
<body style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space; color: rgb(0, 0, 0); font-size: 14px; font-family: Calibri, sans-serif;">
<div><br>
</div>
<div><br>
</div>
<span id="OLK_SRC_BODY_SECTION">
<div style="font-family:Calibri; font-size:11pt; text-align:left; color:black; BORDER-BOTTOM: medium none; BORDER-LEFT: medium none; PADDING-BOTTOM: 0in; PADDING-LEFT: 0in; PADDING-RIGHT: 0in; BORDER-TOP: #b5c4df 1pt solid; BORDER-RIGHT: medium none; PADDING-TOP: 3pt">
<span style="font-weight:bold">From: </span>Pavlo Shchelokovskyy <<a href="mailto:pshchelokovskyy@mirantis.com">pshchelokovskyy@mirantis.com</a>><br>
<span style="font-weight:bold">Date: </span>Thursday, May 19, 2016 at 5:58 AM<br>
<span style="font-weight:bold">To: </span>"<a href="mailto:legal-discuss@lists.openstack.org">legal-discuss@lists.openstack.org</a>" <<a href="mailto:legal-discuss@lists.openstack.org">legal-discuss@lists.openstack.org</a>><br>
<span style="font-weight:bold">Subject: </span>[legal-discuss] Fwd: [tc][ansible][ironic] Reusing Ansible code in OpenStack projects<br>
</div>
<div><br>
</div>
<blockquote id="MAC_OUTLOOK_ATTRIBUTION_BLOCKQUOTE" style="BORDER-LEFT: #b5c4df 5 solid; PADDING:0 0 0 5; MARGIN:0 0 0 5;">
<div>
<div>
<div dir="ltr">
<div class="gmail_quote">
<div>
<div>
<div dir="ltr">
<div>
<div>
<div dir="ltr">
<div>
<div dir="ltr">Hi all,<br>
</div>
</div>
</div>
</div>
</div>
<div class="gmail_quote">
<div dir="ltr">
<div><br>
</div>
<div>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.</div>
<div><br>
</div>
<div>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.</div>
<div><br>
</div>
<div>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).</div>
<div><br>
</div>
<div>I am by far not a legal expert, so my questions are:</div>
<div><br>
</div>
<div>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)?</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</blockquote>
</span>
<div><br>
</div>
<div>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.</div>
<div><br>
</div>
<span id="OLK_SRC_BODY_SECTION">
<blockquote id="MAC_OUTLOOK_ATTRIBUTION_BLOCKQUOTE" style="BORDER-LEFT: #b5c4df 5 solid; PADDING:0 0 0 5; MARGIN:0 0 0 5;">
<div>
<div>
<div dir="ltr">
<div class="gmail_quote">
<div>
<div>
<div dir="ltr">
<div class="gmail_quote">
<div dir="ltr">
<div>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?</div>
<div>If there are indeed problems with that, would it be safer to keep the code in a separate project and also distribute it separately?</div>
<div>Even when distributed separately, will merely using (dynamically importing at run-time) a GPLv3-licensed driver from ApacheV2-licensed Ironic constitute any license violation?</div>
<div><br>
</div>
<div>Note that technically we could avoid re-using Ansible code for Ansible modules and callbacks, just that it would be much-much less convenient.</div>
<div><br>
</div>
<div>[0] <a href="https://review.openstack.org/#/q/topic:bug/1526308" target="_blank">https://review.openstack.org/#/q/topic:bug/1526308</a><br>
</div>
<div>[1] <a href="https://github.com/ansible/ansible/blob/devel/COPYING" target="_blank">
https://github.com/ansible/ansible/blob/devel/COPYING</a></div>
<div>[2] <a href="https://github.com/ansible/ansible/blob/devel/lib/ansible/__init__.py#L8" target="_blank">https://github.com/ansible/ansible/blob/devel/lib/ansible/__init__.py#L8</a></div>
<div>[3] <a href="http://www.apache.org/licenses/GPL-compatibility.html" target="_blank">
http://www.apache.org/licenses/GPL-compatibility.html</a></div>
<div><br>
</div>
<div>Best regards,</div>
<div><br clear="all">
<div>
<div>
<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>
</div>
</div>
</div>
<br>
</div>
</div>
</div>
</div>
<br>
</div>
</div>
</div>
</blockquote>
</span>
</body>
</html>