[openstack-dev] [tc][kolla] Ansible module with GPLv3

Clint Byrum clint at fewbar.com
Sun Nov 13 01:44:42 UTC 2016

Excerpts from Jeremy Stanley's message of 2016-11-05 14:08:29 +0000:
> On 2016-11-04 16:38:45 -0700 (-0700), Clint Byrum wrote:
> [...]
> > Modules are not plugins.
> [...]
> > This only refers to dynamic inventory, which is hardly even a plugin
> > interface.
> > 
> > Strategy plugins run in ansible itself and must import pieces of Ansible,
> > and thus must be GPLv3:
> [...]
> On further reading I mostly concur. Unfamiliarity with Ansible led
> me to believe they used the terms plug-in and module
> interchangeably, and I missed that the "strategy" qualifier was key
> to Michał's original problem statement. Strategy plugins do seem to
> generally import lots of GPLv3 licensed Python modules from Ansible
> and call into them, which under conventional wisdom makes the result
> a derivative work of Ansible that therefore needs to be distributed
> under a license compatible with GPLv3 (Apache2 would qualify
> according to the FSF).


"This licensing incompatibility applies only when some Apache project
software becomes a derivative work of some GPLv3 software, because then
the Apache software would have to be distributed under GPLv3. This would
be incompatible with ASF's requirement that all Apache software must be
distributed under the Apache License 2.0.

We avoid GPLv3 software because merely linking to it is considered by
the GPLv3 authors to create a derivative work. We want to honor their
license. Unless GPLv3 licensors relax this interpretation of their own
license regarding linking, our licensing philosophies are fundamentally
incompatible. This is an identical issue for both GPLv2 and GPLv3.

Despite our best efforts, the FSF has never considered the Apache
License to be compatible with GPL version 2, citing the patent
termination and indemnification provisions as restrictions not present
in the older GPL license. The Apache Software Foundation believes that
you should always try to obey the constraints expressed by the copyright
holder when redistributing their work."

So, no, I don't believe that they're compatible and I don't believe this
could even be rewritten to be ASL 2.0.

Ansible plugins need to be GPLv3. Period. I think it just has to be an
exception and stored in a separate repo.

More information about the OpenStack-dev mailing list