<div>[I'm not subscribed to legal-discuss so I'd appreciate being CCed - or I'll just read it via the archives]</div><div><br></div>Context: <a href="https://review.openstack.org/#/c/120320/">https://review.openstack.org/#/c/120320/</a><div><br></div><div>pylint is a tool for static analysis of python.  It is implemented in python and is GPL (and relies heavily on the 'astroid' library which is also GPL).  pylint is/has been widely used by various OpenStack projects by exec'ing it as a simple black-box tool.  pylint is only used (in any form) during development and not in a production deployment.</div><div><br></div><div>In the above change, I have written a custom pylint check and I'd like to write more.  Writing a custom pylint check involves importing the pylint/astroid python libraries and calling lots of pylint/astroid python functions.</div><div>Mark McClain raised the (quite reasonable) concern that this change was importing a GPL'd python library and perhaps couldn't be allowed.</div><div><br></div><div>I want the freedom to be able to make these new checks completely neutron-specific (or ditto for any other project), so I'd like the code for the checks to be close to the neutron code it is checking and "owned" by the broader neutron development community just like other forms of automated testing.<br></div><div><br></div><div>So my key question is:  How far does the pylint-importing code need to be before becoming acceptable?</div><div><br></div><div>I figure my options are roughly:</div><div>A. Yes, the change above is fine as written, go for it.  Importing is most-likely not "deriving" in the GPL-sense and everyone needs to make their own legal assessments at the time they install/redistribute code anyway.</div><div>B. The above change is fine, go for it.  Continue to ensure that any production deployment doesn't require pylint to be installed so this issue never comes up during deployment.</div><div>C. In the same git repo is fine, but we license these files under GPL and ensure we don't import them from other neutron code.  Move the files to their own top-level subdir in the neutron git repo with a big README explanation/warning.</div><div> ...</div><div>Z. Move the pylint checks out to a separate git repo on stackforge-or-similar, "release" the checks via pypi, install it in the neutron 'pylint' tox environment, and use it from neutron only through an exec boundary.<br></div><div><br></div><div>In the #openstack-neutron IRC discussion regarding this, I fear there's quite a bit of confusion/misunderstanding about copyright and which acts trigger the GPL obligations (and on whom).  It would be great to get some authoritative advice here - and perhaps flesh out that FIXME in the legal issues FAQ ;)</div><div><br></div><div>Thanks!</div><div> - Gus</div>