Task #4080
closedLicensing Options for Plugin Writers
0%
Description
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
Plugin writer usage of GPLv2 licensed code¶
Plugin writer's would both "use" and "subclass" plugin-API code (the GPLv2 code).
Use¶
Plugin writer's code would "use" code from the plugin API as-is with code statements like:
from pulpcore.plugin.models import Artifact
my_artifact = Artifact(data=data).save()
Subclassing¶
Plugin writer's code would "subclass" from the plugin API objects.
from pulpcore.plugin.models import Content
class MySubclassedNewContentObject(Content):
field1 = ...
field2 = ....
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.
Questions from plugin writer¶
Assuming 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?