<div dir="ltr"><div class="gmail_default" style="font-family:monospace,monospace;font-size:small">Thanks all guys.<br></div><div class="gmail_default" style="font-family:monospace,monospace;font-size:small"><br></div><div class="gmail_default" style="font-family:monospace,monospace;font-size:small">Copy python code is really a bad idea. Now i have moved to re-use oslo.config iniparser[0][1], which works too. So we have no license issue, now. ;)</div><div class="gmail_default" style="font-family:monospace,monospace;font-size:small"><br></div><div class="gmail_default" style="font-family:monospace,monospace;font-size:small">[0] <a href="https://github.com/openstack/oslo.config/blob/master/oslo_config/iniparser.py">https://github.com/openstack/oslo.config/blob/master/oslo_config/iniparser.py</a></div><div class="gmail_default" style="font-family:monospace,monospace;font-size:small">[1] <a href="https://review.openstack.org/#/c/412101/5/ansible/action_plugins/merge_configs.py">https://review.openstack.org/#/c/412101/5/ansible/action_plugins/merge_configs.py</a></div><div class="gmail_default" style="font-family:monospace,monospace;font-size:small"><br></div><div class="gmail_extra"><br><div class="gmail_quote">On Tue, Jan 3, 2017 at 1:04 AM, Van Lindberg <span dir="ltr"><<a href="mailto:van.lindberg@rackspace.com" target="_blank">van.lindberg@rackspace.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">




<div dir="ltr">
<div id="gmail-m_-2642237950543763138divtagdefaultwrapper" style="font-size:12pt;color:rgb(0,0,0);background-color:rgb(255,255,255);font-family:calibri,arial,helvetica,sans-serif">
<p>Thierry is correct in his analysis.</p>
<p><br>
</p>
<p>If you really want to copy it - which I don't suggest - then copy it over into your repo, rename both the module and the class, and make your code use your derived work.</p>
<p><br>
</p>
<p>Put a header at the top that says something like "Based on Python's ConfigParser.py. Original ConfigParser.py distributed under the Python Software Foundation license. Additions and changes copyright [YOU] and distributed under the Apache Software License,
 v2."</p>
<p><br>
</p>
<p><span>Do not modify the stdlib in-place (as it sounds like you are doing) - but perhaps I just misunderstand.
</span><br>
</p>
<br>
<br>
<div style="color:rgb(0,0,0)">
<div>
<hr style="display:inline-block;width:98%">
<div id="gmail-m_-2642237950543763138x_divRplyFwdMsg" dir="ltr"><font style="font-size:11pt" color="#000000" face="Calibri, sans-serif"><b>From:</b> Thierry Carrez <<a href="mailto:thierry@openstack.org" target="_blank">thierry@openstack.org</a>><br>
<b>Sent:</b> Monday, January 2, 2017 4:45 AM<br>
<b>To:</b> <a href="mailto:legal-discuss@lists.openstack.org" target="_blank">legal-discuss@lists.openstack.<wbr>org</a><br>
<b>Subject:</b> Re: [legal-discuss] [kolla]is it OK to modify python code in OpenStack project?</font>
<div> </div>
</div>
</div><div><div class="gmail-h5">
<font size="2"><span style="font-size:10pt">
<div class="gmail-m_-2642237950543763138PlainText">Jeffrey Zhang wrote:<br>
> Recently, Kolla project has requirement to modify[1] the python's<br>
> ConfigParser.py code[0].<br>
> <br>
> Python is using PSF license[3], which is GPL compatible. But OpenStack<br>
> is using Apache License.<br>
> <br>
> Here is the diff view[2].<br>
> <br>
> I want to make sure: is it OK to re-license ConfigParser.py? If not, what<br>
> the solution?<br>
> <br>
> [0] <a href="https://github.com/python/cpython/blob/2.7/Lib/ConfigParser.py" id="gmail-m_-2642237950543763138LPlnk307541" target="_blank">
https://github.com/python/<wbr>cpython/blob/2.7/Lib/<wbr>ConfigParser.py</a><br>
> [1] <a href="https://review.openstack.org/412101" target="_blank">https://review.openstack.org/<wbr>412101</a><br>
> [2] <a href="https://gist.github.com/jeffrey4l/2258b276cbd038e73797cfa0952da371/revisions?diff=split" target="_blank">
https://gist.github.com/<wbr>jeffrey4l/<wbr>2258b276cbd038e73797cfa0952da3<wbr>71/revisions?diff=split</a><br>
> [3] <a href="https://docs.python.org/3/license.html" target="_blank">https://docs.python.org/3/<wbr>license.html</a><br>
<br>
I'm not a lawyer, but it sounds slightly tricky.<br>
<br>
The PSF license is Apache-compatible, which means that you can combine<br>
PSF-licensed and Apache-licensed code (if you retain the original<br>
licenses). But OpenStack code must be licensed under a license supported<br>
by the Contributor License Agreement (CLA) which allows redistribution<br>
by the OpenStack Foundation under ASLv2 (currently only ASLv2, the MIT<br>
and both forms of the BSD license meet this requirement).<br>
<br>
So I don't think we can really bundle PSF-licensed code within OpenStack<br>
code, and I think too much was copied from the original class so that<br>
anyone can pretend it is original work.<br>
<br>
Three solutions that should work around the problem without requiring<br>
lawyers to further investigate the issue:<br>
<br>
1/ Do a clean room implementation (by someone not familiar with the<br>
original code)<br>
<br>
2/ Rewrite your code so that it takes a pure ConfigParser class output<br>
and transforms it into what you need, rather than copying code over<br>
<br>
3/ Publish your modified ConfigParser into its own 3rd-party PyPI<br>
library (licensed under the PSF license)<br>
<br>
Of those, (2) is the one that introduces the less technical debt (no<br>
code copy).<br>
<br>
-- <br>
Thierry Carrez (ttx)<br>
<br>
______________________________<wbr>_________________<br>
legal-discuss mailing list<br>
<a href="mailto:legal-discuss@lists.openstack.org" target="_blank">legal-discuss@lists.openstack.<wbr>org</a><br>
<a href="http://lists.openstack.org/cgi-bin/mailman/listinfo/legal-discuss" target="_blank">http://lists.openstack.org/<wbr>cgi-bin/mailman/listinfo/<wbr>legal-discuss</a><br>
</div>
</span></font></div></div></div>
</div>
</div>

<br>______________________________<wbr>_________________<br>
legal-discuss mailing list<br>
<a href="mailto:legal-discuss@lists.openstack.org">legal-discuss@lists.openstack.<wbr>org</a><br>
<a href="http://lists.openstack.org/cgi-bin/mailman/listinfo/legal-discuss" rel="noreferrer" target="_blank">http://lists.openstack.org/<wbr>cgi-bin/mailman/listinfo/<wbr>legal-discuss</a><br>
<br></blockquote></div><br><br clear="all"><div><br></div>-- <br><div class="gmail_signature"><div dir="ltr"><div><div dir="ltr"><div><div dir="ltr"><div dir="ltr"><div dir="ltr"><div><span style="font-size:13px;border-collapse:collapse"><font face="monospace, monospace">Regards,</font></span></div><div><span style="font-size:13px;border-collapse:collapse"><font face="monospace, monospace">Jeffrey Zhang</font></span></div><div><span style="font-family:monospace,monospace;font-size:12.8px">Blog: </span><a href="http://xcodest.me/" style="font-family:monospace,monospace;font-size:12.8px" target="_blank">http://xcodest.me</a><font face="monospace, monospace"><br></font></div></div></div></div></div></div></div></div></div>
</div></div>