aboutsummaryrefslogtreecommitdiffstats
path: root/docs/source
diff options
context:
space:
mode:
Diffstat (limited to 'docs/source')
-rw-r--r--docs/source/build/mediagoblin-licenses/PKG-INFO11
-rw-r--r--docs/source/build/mediagoblin-licenses/README15
-rw-r--r--docs/source/build/mediagoblin-licenses/build/lib.linux-x86_64-2.7/mediagoblin_licenses/README.rst15
-rw-r--r--docs/source/build/mediagoblin-licenses/build/lib.linux-x86_64-2.7/mediagoblin_licenses/__init__.py69
-rw-r--r--docs/source/build/mediagoblin-licenses/mediagoblin_licenses/README.rst15
-rw-r--r--docs/source/build/mediagoblin-licenses/mediagoblin_licenses/__init__.py69
-rw-r--r--docs/source/build/mediagoblin-licenses/pip-egg-info/mediagoblin_licenses.egg-info/PKG-INFO11
-rw-r--r--docs/source/build/mediagoblin-licenses/pip-egg-info/mediagoblin_licenses.egg-info/SOURCES.txt6
-rw-r--r--docs/source/build/mediagoblin-licenses/pip-egg-info/mediagoblin_licenses.egg-info/dependency_links.txt1
-rw-r--r--docs/source/build/mediagoblin-licenses/pip-egg-info/mediagoblin_licenses.egg-info/top_level.txt1
-rw-r--r--docs/source/build/mediagoblin-licenses/setup.py30
-rw-r--r--docs/source/build/pip-delete-this-directory.txt5
-rw-r--r--docs/source/plugindocs/trim_whitespace.rst1
-rw-r--r--docs/source/siteadmin/codebase.rst2
-rw-r--r--docs/source/siteadmin/media-types.rst40
-rw-r--r--docs/source/siteadmin/relnotes.rst68
16 files changed, 355 insertions, 4 deletions
diff --git a/docs/source/build/mediagoblin-licenses/PKG-INFO b/docs/source/build/mediagoblin-licenses/PKG-INFO
new file mode 100644
index 00000000..047efe83
--- /dev/null
+++ b/docs/source/build/mediagoblin-licenses/PKG-INFO
@@ -0,0 +1,11 @@
+Metadata-Version: 1.1
+Name: mediagoblin-licenses
+Version: 0.1.2
+Summary: Customize the licenses for your mediagoblin installation
+Home-page: https://gitorious.org/mediagoblin-licenses/mediagoblin-licenses
+Author: Sebastian Spaeth
+Author-email: Sebastian@SSpaeth.de
+License: License :: OSI Approved :: GNU Affero General Public License v3 or later (AGPLv3+)
+Download-URL: https://gitorious.org/mediagoblin-licenses/mediagoblin-licenses/archive-tarball/mediagoblin-licenses-v0.1.2
+Description: UNKNOWN
+Platform: UNKNOWN
diff --git a/docs/source/build/mediagoblin-licenses/README b/docs/source/build/mediagoblin-licenses/README
new file mode 100644
index 00000000..ce52a8c0
--- /dev/null
+++ b/docs/source/build/mediagoblin-licenses/README
@@ -0,0 +1,15 @@
+================
+ Custom Licenses
+================
+
+Enable by configuring all custom licenses in the form of:
+license_x=Abbreviation, Full Name, URL to license
+
+Make sure to only insert one line per license without line breaks.
+
+E.g. do this into mediagoblin_local.ini:
+[[mediagoblin_licenses]]
+license_1=Chicken Dance, Chicken Dance License v1.0, https://raw.github.com/supertunaman/cdl/f0ae734f4abce311070ac0c401dbc0230cbc4344/COPYING
+license_2=WTFPL, Do What the Fuck Public License v2.0, http://sam.zoy.org/wtfpl/
+
+This plugin is licensed under the GNU APGL v3+. \ No newline at end of file
diff --git a/docs/source/build/mediagoblin-licenses/build/lib.linux-x86_64-2.7/mediagoblin_licenses/README.rst b/docs/source/build/mediagoblin-licenses/build/lib.linux-x86_64-2.7/mediagoblin_licenses/README.rst
new file mode 100644
index 00000000..ce52a8c0
--- /dev/null
+++ b/docs/source/build/mediagoblin-licenses/build/lib.linux-x86_64-2.7/mediagoblin_licenses/README.rst
@@ -0,0 +1,15 @@
+================
+ Custom Licenses
+================
+
+Enable by configuring all custom licenses in the form of:
+license_x=Abbreviation, Full Name, URL to license
+
+Make sure to only insert one line per license without line breaks.
+
+E.g. do this into mediagoblin_local.ini:
+[[mediagoblin_licenses]]
+license_1=Chicken Dance, Chicken Dance License v1.0, https://raw.github.com/supertunaman/cdl/f0ae734f4abce311070ac0c401dbc0230cbc4344/COPYING
+license_2=WTFPL, Do What the Fuck Public License v2.0, http://sam.zoy.org/wtfpl/
+
+This plugin is licensed under the GNU APGL v3+. \ No newline at end of file
diff --git a/docs/source/build/mediagoblin-licenses/build/lib.linux-x86_64-2.7/mediagoblin_licenses/__init__.py b/docs/source/build/mediagoblin-licenses/build/lib.linux-x86_64-2.7/mediagoblin_licenses/__init__.py
new file mode 100644
index 00000000..37f5a390
--- /dev/null
+++ b/docs/source/build/mediagoblin-licenses/build/lib.linux-x86_64-2.7/mediagoblin_licenses/__init__.py
@@ -0,0 +1,69 @@
+# GNU MediaGoblin -- federated, autonomous media hosting
+# Copyright (C) 2011, 2012 MediaGoblin contributors. See AUTHORS.
+#
+# This program is free software: you can redistribute it and/or modify
+# it under the terms of the GNU Affero General Public License as published by
+# the Free Software Foundation, either version 3 of the License, or
+# (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU Affero General Public License for more details.
+#
+# You should have received a copy of the GNU Affero General Public License
+# along with this program. If not, see <http://www.gnu.org/licenses/>.
+from __future__ import unicode_literals
+
+import logging
+from mediagoblin.tools.pluginapi import get_config
+from mediagoblin.tools import licenses
+
+__VERSION__ = '0.1.2' # releases get numbers, post release a "+" appended
+_log = logging.getLogger(__name__)
+
+SORTED_PLUGIN_LICENSES = []
+"""This is the equivalent of MG.tools.licenses.SORTED_LICENSES
+that we want to replace"""
+
+
+class CustomLicenses(object):
+ _setup_plugin_called = 0
+
+ @classmethod
+ def setup_plugin(cls):
+ if cls._setup_plugin_called:
+ return # Only set up once
+ cls._setup_plugin_called += 1
+ _log.info('Configurable license plugin setting up!')
+ # Get configured licenses
+ config = get_config(cls.__module__)
+ if not config:
+ _log.warn('There are no licenses configured at all.')
+ return # Nothing configured, nothing to do...
+
+ for k,v in config.iteritems():
+ if not k.lower().startswith('license_'):
+ continue
+ (abbrev, name, url) = config.as_list(k)
+ _log.info("Adding license: {0}".format(abbrev))
+ SORTED_PLUGIN_LICENSES.append(licenses.License(abbrev, name, url))
+
+ # Set the regular license list to our custom ones:
+ licenses.SORTED_LICENSES = SORTED_PLUGIN_LICENSES
+ # create dict {url: License,...} to enable fast license lookup by url.
+
+ # The data structure in
+ # mediagoblin.tools.licenses.SUPPORTED_LICENSES and SORTED_LICENSES
+ # is really not optimal. What we want there is a "OrderedDict" that
+ # can give us order AND quick lookup by key at the same time. But as
+ # that is python >=2.7 and we have to deal with python 2.6, we'll
+ # live with the data duplication in 2 structures for now. It's not
+ # like we are going to have hundreds of licenses, fortunately.
+ licenses.SUPPORTED_LICENSES = dict(((l.uri, l) for l in \
+ SORTED_PLUGIN_LICENSES))
+
+
+hooks = {
+ 'setup': CustomLicenses.setup_plugin
+ }
diff --git a/docs/source/build/mediagoblin-licenses/mediagoblin_licenses/README.rst b/docs/source/build/mediagoblin-licenses/mediagoblin_licenses/README.rst
new file mode 100644
index 00000000..ce52a8c0
--- /dev/null
+++ b/docs/source/build/mediagoblin-licenses/mediagoblin_licenses/README.rst
@@ -0,0 +1,15 @@
+================
+ Custom Licenses
+================
+
+Enable by configuring all custom licenses in the form of:
+license_x=Abbreviation, Full Name, URL to license
+
+Make sure to only insert one line per license without line breaks.
+
+E.g. do this into mediagoblin_local.ini:
+[[mediagoblin_licenses]]
+license_1=Chicken Dance, Chicken Dance License v1.0, https://raw.github.com/supertunaman/cdl/f0ae734f4abce311070ac0c401dbc0230cbc4344/COPYING
+license_2=WTFPL, Do What the Fuck Public License v2.0, http://sam.zoy.org/wtfpl/
+
+This plugin is licensed under the GNU APGL v3+. \ No newline at end of file
diff --git a/docs/source/build/mediagoblin-licenses/mediagoblin_licenses/__init__.py b/docs/source/build/mediagoblin-licenses/mediagoblin_licenses/__init__.py
new file mode 100644
index 00000000..37f5a390
--- /dev/null
+++ b/docs/source/build/mediagoblin-licenses/mediagoblin_licenses/__init__.py
@@ -0,0 +1,69 @@
+# GNU MediaGoblin -- federated, autonomous media hosting
+# Copyright (C) 2011, 2012 MediaGoblin contributors. See AUTHORS.
+#
+# This program is free software: you can redistribute it and/or modify
+# it under the terms of the GNU Affero General Public License as published by
+# the Free Software Foundation, either version 3 of the License, or
+# (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU Affero General Public License for more details.
+#
+# You should have received a copy of the GNU Affero General Public License
+# along with this program. If not, see <http://www.gnu.org/licenses/>.
+from __future__ import unicode_literals
+
+import logging
+from mediagoblin.tools.pluginapi import get_config
+from mediagoblin.tools import licenses
+
+__VERSION__ = '0.1.2' # releases get numbers, post release a "+" appended
+_log = logging.getLogger(__name__)
+
+SORTED_PLUGIN_LICENSES = []
+"""This is the equivalent of MG.tools.licenses.SORTED_LICENSES
+that we want to replace"""
+
+
+class CustomLicenses(object):
+ _setup_plugin_called = 0
+
+ @classmethod
+ def setup_plugin(cls):
+ if cls._setup_plugin_called:
+ return # Only set up once
+ cls._setup_plugin_called += 1
+ _log.info('Configurable license plugin setting up!')
+ # Get configured licenses
+ config = get_config(cls.__module__)
+ if not config:
+ _log.warn('There are no licenses configured at all.')
+ return # Nothing configured, nothing to do...
+
+ for k,v in config.iteritems():
+ if not k.lower().startswith('license_'):
+ continue
+ (abbrev, name, url) = config.as_list(k)
+ _log.info("Adding license: {0}".format(abbrev))
+ SORTED_PLUGIN_LICENSES.append(licenses.License(abbrev, name, url))
+
+ # Set the regular license list to our custom ones:
+ licenses.SORTED_LICENSES = SORTED_PLUGIN_LICENSES
+ # create dict {url: License,...} to enable fast license lookup by url.
+
+ # The data structure in
+ # mediagoblin.tools.licenses.SUPPORTED_LICENSES and SORTED_LICENSES
+ # is really not optimal. What we want there is a "OrderedDict" that
+ # can give us order AND quick lookup by key at the same time. But as
+ # that is python >=2.7 and we have to deal with python 2.6, we'll
+ # live with the data duplication in 2 structures for now. It's not
+ # like we are going to have hundreds of licenses, fortunately.
+ licenses.SUPPORTED_LICENSES = dict(((l.uri, l) for l in \
+ SORTED_PLUGIN_LICENSES))
+
+
+hooks = {
+ 'setup': CustomLicenses.setup_plugin
+ }
diff --git a/docs/source/build/mediagoblin-licenses/pip-egg-info/mediagoblin_licenses.egg-info/PKG-INFO b/docs/source/build/mediagoblin-licenses/pip-egg-info/mediagoblin_licenses.egg-info/PKG-INFO
new file mode 100644
index 00000000..047efe83
--- /dev/null
+++ b/docs/source/build/mediagoblin-licenses/pip-egg-info/mediagoblin_licenses.egg-info/PKG-INFO
@@ -0,0 +1,11 @@
+Metadata-Version: 1.1
+Name: mediagoblin-licenses
+Version: 0.1.2
+Summary: Customize the licenses for your mediagoblin installation
+Home-page: https://gitorious.org/mediagoblin-licenses/mediagoblin-licenses
+Author: Sebastian Spaeth
+Author-email: Sebastian@SSpaeth.de
+License: License :: OSI Approved :: GNU Affero General Public License v3 or later (AGPLv3+)
+Download-URL: https://gitorious.org/mediagoblin-licenses/mediagoblin-licenses/archive-tarball/mediagoblin-licenses-v0.1.2
+Description: UNKNOWN
+Platform: UNKNOWN
diff --git a/docs/source/build/mediagoblin-licenses/pip-egg-info/mediagoblin_licenses.egg-info/SOURCES.txt b/docs/source/build/mediagoblin-licenses/pip-egg-info/mediagoblin_licenses.egg-info/SOURCES.txt
new file mode 100644
index 00000000..0e504e97
--- /dev/null
+++ b/docs/source/build/mediagoblin-licenses/pip-egg-info/mediagoblin_licenses.egg-info/SOURCES.txt
@@ -0,0 +1,6 @@
+README
+mediagoblin_licenses/__init__.py
+pip-egg-info/mediagoblin_licenses.egg-info/PKG-INFO
+pip-egg-info/mediagoblin_licenses.egg-info/SOURCES.txt
+pip-egg-info/mediagoblin_licenses.egg-info/dependency_links.txt
+pip-egg-info/mediagoblin_licenses.egg-info/top_level.txt \ No newline at end of file
diff --git a/docs/source/build/mediagoblin-licenses/pip-egg-info/mediagoblin_licenses.egg-info/dependency_links.txt b/docs/source/build/mediagoblin-licenses/pip-egg-info/mediagoblin_licenses.egg-info/dependency_links.txt
new file mode 100644
index 00000000..8b137891
--- /dev/null
+++ b/docs/source/build/mediagoblin-licenses/pip-egg-info/mediagoblin_licenses.egg-info/dependency_links.txt
@@ -0,0 +1 @@
+
diff --git a/docs/source/build/mediagoblin-licenses/pip-egg-info/mediagoblin_licenses.egg-info/top_level.txt b/docs/source/build/mediagoblin-licenses/pip-egg-info/mediagoblin_licenses.egg-info/top_level.txt
new file mode 100644
index 00000000..142877ed
--- /dev/null
+++ b/docs/source/build/mediagoblin-licenses/pip-egg-info/mediagoblin_licenses.egg-info/top_level.txt
@@ -0,0 +1 @@
+mediagoblin_licenses
diff --git a/docs/source/build/mediagoblin-licenses/setup.py b/docs/source/build/mediagoblin-licenses/setup.py
new file mode 100644
index 00000000..952ba3ce
--- /dev/null
+++ b/docs/source/build/mediagoblin-licenses/setup.py
@@ -0,0 +1,30 @@
+#!/usr/bin/env python
+from distutils.core import setup
+import re
+
+from sys import version
+assert version >= '2.6', 'This package requires python 2.6 at least. Sorry.'
+
+def get_version():
+ """Parse __init__.py for version info, we cannot import it"""
+ version_re = re.compile(r'\s*__VERSION__\s*=\s*("|\')([\w\.\+]+)(\1)')
+ with open('mediagoblin_licenses/__init__.py', 'rt') as file:
+ for line in file:
+ if version_re.match(line):
+ return version_re.match(line).group(2)
+__VERSION__ = get_version()
+
+
+setup(name='mediagoblin-licenses',
+ version=__VERSION__,
+ description='Customize the licenses for your mediagoblin installation',
+ author='Sebastian Spaeth',
+ author_email='Sebastian@SSpaeth.de',
+ url='https://gitorious.org/mediagoblin-licenses/mediagoblin-licenses',
+ download_url='https://gitorious.org/mediagoblin-licenses/mediagoblin-licenses/archive-tarball/mediagoblin-licenses-v' + __VERSION__,
+ # http://bugs.python.org/issue13943. Must not be unicode...
+ packages=['mediagoblin_licenses'],
+ package_data = {'mediagoblin_licenses': ['README.rst', 'COPYING']},
+ license=(b'License :: OSI Approved :: GNU Affero General Public License '
+ b'v3 or later (AGPLv3+)')
+ )
diff --git a/docs/source/build/pip-delete-this-directory.txt b/docs/source/build/pip-delete-this-directory.txt
new file mode 100644
index 00000000..c8883ea9
--- /dev/null
+++ b/docs/source/build/pip-delete-this-directory.txt
@@ -0,0 +1,5 @@
+This file is placed here by pip to indicate the source was put
+here by pip.
+
+Once this package is successfully installed this source code will be
+deleted (unless you remove this file).
diff --git a/docs/source/plugindocs/trim_whitespace.rst b/docs/source/plugindocs/trim_whitespace.rst
new file mode 100644
index 00000000..eb38e0e5
--- /dev/null
+++ b/docs/source/plugindocs/trim_whitespace.rst
@@ -0,0 +1 @@
+.. include:: ../../../mediagoblin/plugins/trim_whitespace/README.rst
diff --git a/docs/source/siteadmin/codebase.rst b/docs/source/siteadmin/codebase.rst
index 22f4e18b..73e938e7 100644
--- a/docs/source/siteadmin/codebase.rst
+++ b/docs/source/siteadmin/codebase.rst
@@ -65,7 +65,7 @@ Software Stack
`Paste Script <http://pythonpaste.org/script/>`_: we'll use this for
configuring and launching the application
- * `WebOb <http://pythonpaste.org/webob/>`_: nice abstraction layer
+ * `werkzeug <http://werkzeug.pocoo.org/>`_: nice abstraction layer
from HTTP requests, responses and WSGI bits
* `Beaker <http://beaker.groovie.org/>`_: for handling sessions and
diff --git a/docs/source/siteadmin/media-types.rst b/docs/source/siteadmin/media-types.rst
index 3b46c1b6..8fbce5e4 100644
--- a/docs/source/siteadmin/media-types.rst
+++ b/docs/source/siteadmin/media-types.rst
@@ -77,6 +77,13 @@ good/bad/ugly). On Debianoid systems::
gstreamer0.10-ffmpeg
+Add ``mediagoblin.media_types.video`` to the ``media_types`` list in your
+``mediagoblin_local.ini`` and restart MediaGoblin.
+
+Run::
+
+ ./bin/gmg dbupdate
+
Now you should be able to submit videos, and mediagoblin should
transcode them.
@@ -117,8 +124,13 @@ Then install ``scikits.audiolab`` for the spectrograms::
./bin/pip install scikits.audiolab
Add ``mediagoblin.media_types.audio`` to the ``media_types`` list in your
-``mediagoblin_local.ini`` and restart MediaGoblin. You should now be able to
-upload and listen to audio files!
+``mediagoblin_local.ini`` and restart MediaGoblin.
+
+Run::
+
+ ./bin/gmg dbupdate
+
+You should now be able to upload and listen to audio files!
Ascii art
@@ -140,4 +152,28 @@ the list would look like this::
media_types = mediagoblin.media_types.image, mediagoblin.media_types.ascii
+Run::
+
+ ./bin/gmg dbupdate
+
Now any .txt file you uploaded will be processed as ascii art!
+
+
+STL / 3d model support
+======================
+
+To enable the "STL" 3d model support plugin, first make sure you have
+a recentish `Blender <http://blender.org>`_ installed and available on
+your execution path. This feature has been tested with Blender 2.63.
+It may work on some earlier versions, but that is not guaranteed (and
+is surely not to work prior to Blender 2.5X).
+
+Add ``mediagoblin.media_types.stl`` to the ``media_types`` list in your
+``mediagoblin_local.ini`` and restart MediaGoblin.
+
+Run::
+
+ ./bin/gmg dbupdate
+
+You should now be able to upload .obj and .stl files and MediaGoblin
+will be able to present them to your wide audience of admirers!
diff --git a/docs/source/siteadmin/relnotes.rst b/docs/source/siteadmin/relnotes.rst
index 3e09078e..9b45f642 100644
--- a/docs/source/siteadmin/relnotes.rst
+++ b/docs/source/siteadmin/relnotes.rst
@@ -19,16 +19,33 @@ This chapter has important information for releases in it.
If you're upgrading from a previous release, please read it
carefully, or at least skim over it.
+WIP
+=====
+
+**New features**
+
+**Other changed**
+
+* Dependency list has been reduced not requireing the "webob" package anymore.
+
0.3.2
=====
This will be the last release that is capable of converting from an earlier
MongoDB-based MediaGoblin instance to the newer SQL-based system.
+**Do this to upgrade**
+
+1. Make sure to run ``bin/gmg dbupdate`` after upgrading.
+
**New features**
-* TO BE FILLED IN BEFORE RELEASE :-)
+* **3d model support!**
+
+ You can now upload STL and OBJ files and display them in
+ MediaGoblin. Requires a recent-ish Blender; for details see:
+ :ref:`deploying-chapter`
* **trim_whitespace**
@@ -37,6 +54,55 @@ MongoDB-based MediaGoblin instance to the newer SQL-based system.
See :ref:`core-plugin-section` for plugin documentation
+* **A new API!**
+
+ It isn't well documented yet but we do have an API. There is an
+ `android application in progress <https://gitorious.org/mediagoblin/mediagoblin-android>`_
+ which makes use of it, and there are some demo applications between
+ `automgtic <https://github.com/jwandborg/automgtic>`_, an
+ automatic media uploader for your desktop
+ and `OMGMG <https://github.com/jwandborg/omgmg>`_, an example of
+ a web application hooking up to the API.
+
+ This is a plugin, so you have to enable it in your mediagoblin
+ config file by adding a section under [plugins] like::
+
+ [plugins]
+ [[mediagoblin.plugins.api]]
+
+ Note that the API works but is not nailed down... the way it is
+ called may change in future releases.
+
+* **OAuth login support**
+
+ For applications that use OAuth to connect to the API.
+
+ This is a plugin, so you have to enable it in your mediagoblin
+ config file by adding a section under [plugins] like::
+
+ [plugins]
+ [[mediagoblin.plugins.oauth]]
+
+* **Collections**
+
+ We now have user-curated collections support. These are arbitrary
+ galleries that are customizable by users. You can add media to
+ these by clicking on the paperclip icon when logged in and looking
+ at a media entry.
+
+* **OpenStreetMap licensing display improvements**
+
+ More accurate display of OSM licensing, and less disruptive: you
+ click to "expand" the display of said licensing.
+
+ Geolocation is also now on by default.
+
+* **Miscelaneous visual improvements**
+
+ We've made a number of small visual improvements including newer and
+ nicer looking thumbnails and improved checkbox placement.
+
+
0.3.1
=====