Hi All, I had the same question in "legal-discuss" ML and would like to summarize the outcome to benefit all.
It appears that we are in green in regards of the subject in question: - from the driver itself we are launching "ansible-playbook" as a subprocess - our custom Ansible callback plugin for logging is implemented w/o importing any Ansible code (API is pretty simple and straightforward) - 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). If you are interested, you can find the code under this Gerrit topic [1]. Any comments or suggestions are as always very welcome. [0] https://github.com/ansible/ansible/blob/devel/lib/ansible/module_utils/basic.py#L1-L27 [1] https://review.openstack.org/#/q/topic:bug/1526308 Cheers, Dr. Pavlo Shchelokovskyy Senior Software Engineer Mirantis Inc www.mirantis.com On Thu, May 19, 2016 at 8:28 PM, Clint Byrum <[email protected]> wrote: > Excerpts from Pavlo Shchelokovskyy's message of 2016-05-19 15:28:03 +0300: > > Hi all, > > > > 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. > > > > 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. > > > > 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). > > > > I am by far not a legal expert, so my questions are: > > > > 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)? > > 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? > > Yes that's what it means. You can write modules in any license you want > because AnsibleModule is BSD 2-clause, but plugins must be GPLv3. > > > If there are indeed problems with that, would it be safer to keep the > code > > in a separate project and also distribute it separately? > > Even when distributed separately, will merely using (dynamically > importing > > at run-time) a GPLv3-licensed driver from ApacheV2-licensed Ironic > > constitute any license violation? > > > > I think your options are to make it function without the plugins, and > distribute just them separately (so a bare bones version comes with > Ironic, but it works better w/ the GPLv3 plugins), or just distribute > the whole thing separately. > > Long term, you might approach Ansible about possibly making their plugin > interface LGPL so that people can write non-GPL plugins. But, it may be > part of a broader strategy to ensure that contribution happens in the > open. As an OSS hippie, I applaud them for choosing a strong copyleft > license. :) > > __________________________________________________________________________ > OpenStack Development Mailing List (not for usage questions) > Unsubscribe: [email protected]?subject:unsubscribe > http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev >
__________________________________________________________________________ OpenStack Development Mailing List (not for usage questions) Unsubscribe: [email protected]?subject:unsubscribe http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev
