Task #4080
Updated by bmbouter over 5 years ago
h2. The state of things Pulp3 has two Python software packages. One is the "core" which provides the HTTP API for users to use, and the other is a "plugin API" which is Python API that "plugin writers" will import into their plugin package and use. pulpcore - the core, depends on nothing. pulpcore-plugin - the Python plugin API. It provides lots of objects, e.g. Artifact or RepositoryVersion. It has a Python dependency on pulpcore-plugin. Both packages ^ are licensed as GPLv2 + Common Cure h2. Plugin Questions from plugin writer usage of GPLv2 licensed code Plugin writer's would both "use" and "subclass" plugin-API code (the GPLv2 code). May a plugin, e.g. the 'foo' plugin for Pulp use a non-GPL license, e.g. MIT? h3. Use Plugin To be clear the plugin writer's code would "use" code from the plugin API as-is with code have statements like: <pre> from pulpcore.plugin.models import Artifact my_artifact = Artifact(data=data).save() </pre> h3. Subclassing Plugin writer's code Also note that the package 'foo' would "subclass" from the plugin API objects. <pre> from pulpcore.plugin.models import Content class MySubclassedNewContentObject(Content): field1 = ... field2 = .... </pre> h2. Who is distributing the plugin code? The plugin writers distribute their plugin code directly to their users. The pulpcore and pulpcore-plugin packages need to be present for that code to work. h2. Questions from plugin writer Assuming have a plugin writer's code both "uses" and "subclasses" a GPLv2 asset from Pulp's plugin API, may a plugin, be licensed with a non-GPL license, e.g. MIT or Apachev2? Python dependency (in its setup.py) on pulpcore-plugin.