Project

Profile

Help

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.

Back