Why AGPLv3 and CC0

From GNU MediaGoblin Wiki
Jump to navigation Jump to search


The AGPL v3preserves the freedoms guaranteed by the GPL v3 in the context of software as a service. Using this license ensures that users of the service have the ability to examine the source, deploy their own instance, and implement their own version. This is really important to us and a core mission component of this project. Thus we decided that the software parts should be under this license.


However, the project is made up of more than just software: There's CSS, images, and other output-related things. We wanted the templates/images/css side of the project all permissive and permissive in the same absolutely permissive way. We're waiving our copyrights to non-software things under the CC0 waiver.


That brings us to the templates where there's some code and some output. The template engine we're using is called Jinja2. It mixes HTML markup with Python code to render the output of the software. We decided the templates are part of the output of the software and not the software itself. We wanted the output of the software to be licensed in a hassle-free way so that when someone deploys their own GNU MediaGoblin instance with their own templates, they don't have to deal with the copyleft aspects of the AGPLv3 and we'd be fine with that because the changes they're making are identity-related. So at first we decided to waive our copyrights to the templates with a CC0 waiver and then add an exception to the AGPLv3 for the software such that the templates can make calls into the software and yet be a separately licensed work. However, Brett brought up the question of whether this allows some unscrupulous person to make changes to the software through the templates in such a way that they're not bound by the AGPLv3: i.e. a loophole. We thought about this loophole and between this and the extra legalese involved in the exception to the AGPLv3, we decided that it's just way simpler if the templates were also licensed under the AGPLv3.


Then we have the licensing for the documentation. Given that the documentation is tied to the software content-wise, we don't feel like we have to worry about ensuring freedom of the documentation or worry about attribution concerns. Thus we're waiving our copyrights to the documentation under CC0 as well.


Lastly, we have branding. This covers logos and other things that are distinctive to GNU MediaGoblin that we feel represents this project. Since we don't currently have any branding, this is an open issue, but we're thinking we'll go with a CC BY-SA license.

By licensing in this way, we make sure that users of the software receive the freedoms that the AGPLv3 ensures regardless of what fate befalls this project.

So to summarize:

  • software (Python, JavaScript, HTML templates): licensed
under AGPLv3
  • non-software things (CSS, images, video): copyrights waived
under CC0 because this is output of the software
  • documentation: copyrights waived under CC0 because it's not part
of the software
  • branding assets: we're kicking this can down the road, but
probably CC BY-SA

This is all codified in the ``COPYING`` file.