aboutsummaryrefslogtreecommitdiffstats
path: root/docs
diff options
context:
space:
mode:
Diffstat (limited to 'docs')
-rw-r--r--docs/designdecisions.rst70
-rw-r--r--docs/hackinghowto.rst25
2 files changed, 70 insertions, 25 deletions
diff --git a/docs/designdecisions.rst b/docs/designdecisions.rst
index b5992fc1..62a529ff 100644
--- a/docs/designdecisions.rst
+++ b/docs/designdecisions.rst
@@ -167,3 +167,73 @@ Will Kahn-Greene on "Why Sphinx":
There are other doc systems out there, but given that GNU
MediaGoblin is being written in Python, it makes sense to use
Sphinx for now.
+
+
+Why AGPLv3 and CC0?
+===================
+
+Chris, Brett, Will, Rob, Matt, et al curated into a story where
+everyone is the hero by Will on "Why AGPLv3 and CC0":
+
+ The `AGPL v3`_ preserves 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 licensing
+ these under a CC0 license.
+
+ That brings us to the templates where there's some code and some
+ output. 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 license
+ HTML templates (written in Jinja2) under a CC0 license and then
+ we'd 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
+ releasing the templates under a CC0 license with the exception to
+ the AGPLv3 for Python and JavaScript, 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 licensing the
+ documentation under a CC0 license 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) is licensed
+ under AGPLv3
+ * non-software things (CSS, images, video) are licensed under CC0
+ because this is output of the software
+ * documentation is licensed under a CC0 license
+ * we'll figure out licensing for branding assets later
+
+ This is all codified in the ``COPYING`` file.
+
+.. _AGPL v3: http://www.gnu.org/licenses/agpl.html
+.. _CC0 v1: http://creativecommons.org/publicdomain/zero/1.0/
diff --git a/docs/hackinghowto.rst b/docs/hackinghowto.rst
index db8ddca6..96a7e1a4 100644
--- a/docs/hackinghowto.rst
+++ b/docs/hackinghowto.rst
@@ -99,31 +99,6 @@ Run::
./bin/nosetests
-Creating a new file
-===================
-
-FIXME - this needs to be updated when it's set in stone.
-
-All new files need to have license/copyright information.
-
-The following kinds of files get the GNU AGPL header:
-
-* Python files
-* JavaScript files
-* templates
-* other files with code in them
-
-The following files get a CC BY header:
-
-* CSS files
-
-The following files don't get a header because that's hard, but are
-under the CC BY license:
-
-* image files
-* video files
-
-
Quickstart for Django programmers
=================================