[legal-discuss] How should I use pylint (GPL)?

Angus Lees gus at inodes.org
Fri Dec 12 00:57:23 UTC 2014


[I'm not subscribed to legal-discuss so I'd appreciate being CCed - or I'll
just read it via the archives]

Context: https://review.openstack.org/#/c/120320/

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.

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.
Mark McClain raised the (quite reasonable) concern that this change was
importing a GPL'd python library and perhaps couldn't be allowed.

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.

So my key question is:  How far does the pylint-importing code need to be
before becoming acceptable?

I figure my options are roughly:
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.
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.
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.
 ...
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.

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 ;)

Thanks!
 - Gus
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.openstack.org/pipermail/legal-discuss/attachments/20141212/4fb887a6/attachment.html>


More information about the legal-discuss mailing list