summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMarcello Stanisci <marcello.stanisci@inria.fr>2016-12-26 18:42:18 +0100
committerMarcello Stanisci <marcello.stanisci@inria.fr>2017-01-27 10:42:46 +0100
commit735fb8a89f51875196783b167e8ae622368808fc (patch)
tree39db1fdaa9fc253abcbdddc641ce6aee598f545b
parentf248c701bbb16af1a540d56895a772c6748b80a9 (diff)
downloaddocs-735fb8a89f51875196783b167e8ae622368808fc.tar.gz
docs-735fb8a89f51875196783b167e8ae622368808fc.tar.bz2
docs-735fb8a89f51875196783b167e8ae622368808fc.zip
Still on splitting
-rw-r--r--Makefile90
-rw-r--r--api/api-bank.rst (renamed from api-bank.rst)0
-rw-r--r--api/api-common.rst (renamed from api-common.rst)0
-rw-r--r--api/api-error.rst (renamed from api-error.rst)0
-rw-r--r--api/api-exchange.rst (renamed from api-exchange.rst)0
-rw-r--r--api/api-merchant.rst (renamed from api-merchant.rst)0
-rw-r--r--api/conf.py (renamed from conf.py)0
-rw-r--r--api/exts/__pycache__/tsref.cpython-35.pycbin0 -> 7457 bytes
-rw-r--r--api/exts/tsref.py (renamed from exts/tsref.py)0
-rw-r--r--api/global_licensing.rst (renamed from global_licensing.rst)0
-rw-r--r--api/index.rst89
-rw-r--r--api/integration-bank.rst (renamed from integration-bank.rst)0
-rw-r--r--api/integration-general.rst (renamed from integration-general.rst)0
-rw-r--r--api/integration-merchant.rst (renamed from integration-merchant.rst)0
-rw-r--r--api/wireformats.rst (renamed from wireformats.rst)0
-rw-r--r--docs/conf.py285
-rw-r--r--docs/configuration-basics.rst (renamed from configuration-basics.rst)0
-rw-r--r--docs/deployment.rst (renamed from deployment.rst)0
-rw-r--r--docs/dev-exchange.rst (renamed from dev-exchange.rst)0
-rw-r--r--docs/dev-merchant.rst (renamed from dev-merchant.rst)0
-rw-r--r--docs/dev-wallet-wx.rst (renamed from dev-wallet-wx.rst)0
-rw-r--r--docs/example-essay-store.rst (renamed from example-essay-store.rst)0
-rw-r--r--docs/exts/__pycache__/tsref.cpython-35.pycbin0 -> 7448 bytes
-rw-r--r--docs/exts/tsref.py233
-rw-r--r--docs/global_licensing.rst215
-rw-r--r--docs/glossary.rst (renamed from glossary.rst)0
-rw-r--r--docs/index.rst (renamed from index.rst)20
-rw-r--r--docs/operate-exchange.rst (renamed from operate-exchange.rst)0
-rw-r--r--docs/operate-merchant.rst (renamed from operate-merchant.rst)0
29 files changed, 867 insertions, 65 deletions
diff --git a/Makefile b/Makefile
index b646137..9155d68 100644
--- a/Makefile
+++ b/Makefile
@@ -16,7 +16,7 @@ endif
# Internal variables.
PAPEROPT_a4 = -D latex_paper_size=a4
PAPEROPT_letter = -D latex_paper_size=letter
-ALLSPHINXOPTS = -d $(BUILDDIR)/doctrees $(PAPEROPT_$(PAPER)) $(SPHINXOPTS) .
+ALLSPHINXOPTS = -d $(PWD)/doctrees $(PAPEROPT_$(PAPER)) $(SPHINXOPTS)
# the i18n builder cannot share the environment and doctrees with the others
I18NSPHINXOPTS = $(PAPEROPT_$(PAPER)) $(SPHINXOPTS) .
@@ -54,41 +54,41 @@ clean:
# The html-linked builder does not support caching, so we
# remove all cached state first.
html:
- $(SPHINXBUILD) -b html-linked $(ALLSPHINXOPTS) $(DOCSBUILDDIR)/html
- $(SPHINXBUILD) -b html-linked $(ALLSPHINXOPTS) $(APIBUILDDIR)/html
+ $(SPHINXBUILD) docs/ -b html-linked $(ALLSPHINXOPTS) $(DOCSBUILDDIR)
+ $(SPHINXBUILD) api/ -b html-linked $(ALLSPHINXOPTS) $(APIBUILDDIR)
@echo
@echo "Build finished. The HTML pages are in $(APIBUILDDIR)/html."
@echo "Build finished. The HTML pages are in $(DOCSBUILDDIR)/html."
dirhtml:
- $(SPHINXBUILD) -b dirhtml $(ALLSPHINXOPTS) $(DOCSBUILDDIR)/dirhtml
- $(SPHINXBUILD) -b dirhtml $(ALLSPHINXOPTS) $(APIBUILDDIR)/dirhtml
+ $(SPHINXBUILD) docs/ -b dirhtml $(ALLSPHINXOPTS) $(DOCSBUILDDIR)
+ $(SPHINXBUILD) api/ -b dirhtml $(ALLSPHINXOPTS) $(APIBUILDDIR)
@echo
@echo "Build finished. The HTML pages are in $(APIBUILDDIR)/dirhtml."
@echo "Build finished. The HTML pages are in $(DOCSBUILDDIR)/dirhtml."
singlehtml:
- $(SPHINXBUILD) -b singlehtml $(ALLSPHINXOPTS) $(DOCSBUILDDIR)/singlehtml
- $(SPHINXBUILD) -b singlehtml $(ALLSPHINXOPTS) $(APIBUILDDIR)/singlehtml
+ $(SPHINXBUILD) docs/ -b singlehtml $(ALLSPHINXOPTS) $(DOCSBUILDDIR)
+ $(SPHINXBUILD) api/ -b singlehtml $(ALLSPHINXOPTS) $(APIBUILDDIR)
@echo
@echo "Build finished. The HTML page is in $(DOCSBUILDDIR)/singlehtml."
@echo "Build finished. The HTML page is in $(APIBUILDDIR)/singlehtml."
pickle:
- $(SPHINXBUILD) -b pickle $(ALLSPHINXOPTS) $(APIBUILDDIR)/pickle
- $(SPHINXBUILD) -b pickle $(ALLSPHINXOPTS) $(DOCSBUILDDIR)/pickle
+ $(SPHINXBUILD) api/ -b pickle $(ALLSPHINXOPTS) $(APIBUILDDIR)
+ $(SPHINXBUILD) docs/ -b pickle $(ALLSPHINXOPTS) $(DOCSBUILDDIR)
@echo
@echo "Build finished; now you can process the pickle files."
json:
- $(SPHINXBUILD) -b json $(ALLSPHINXOPTS) $(DOCSBUILDDIR)/json
- $(SPHINXBUILD) -b json $(ALLSPHINXOPTS) $(APIBUILDDIR)/json
+ $(SPHINXBUILD) docs/ -b json $(ALLSPHINXOPTS) $(DOCSBUILDDIR)
+ $(SPHINXBUILD) api/ -b json $(ALLSPHINXOPTS) $(APIBUILDDIR)
@echo
@echo "Build finished; now you can process the JSON files."
htmlhelp:
- $(SPHINXBUILD) -b htmlhelp $(ALLSPHINXOPTS) $(DOCSBUILDDIR)/htmlhelp
- $(SPHINXBUILD) -b htmlhelp $(ALLSPHINXOPTS) $(APIBUILDDIR)/htmlhelp
+ $(SPHINXBUILD) docs/ -b htmlhelp $(ALLSPHINXOPTS) $(DOCSBUILDDIR)
+ $(SPHINXBUILD) api/ -b htmlhelp $(ALLSPHINXOPTS) $(APIBUILDDIR)
@echo
@echo "Build finished; now you can run HTML Help Workshop with the" \
".hhp project file in $(DOCSBUILDDIR)/htmlhelp."
@@ -96,8 +96,8 @@ htmlhelp:
".hhp project file in $(APIBUILDDIR)/htmlhelp."
qthelp:
- $(SPHINXBUILD) -b qthelp $(ALLSPHINXOPTS) $(DOCSBUILDDIR)/qthelp
- $(SPHINXBUILD) -b qthelp $(ALLSPHINXOPTS) $(APIBUILDDIR)/qthelp
+ $(SPHINXBUILD) docs/ -b qthelp $(ALLSPHINXOPTS) $(DOCSBUILDDIR)
+ $(SPHINXBUILD) api/ -b qthelp $(ALLSPHINXOPTS) $(APIBUILDDIR)
@echo
@echo "Build finished; now you can run "qcollectiongenerator" with the" \
".qhcp project file in $(DOCSBUILDDIR)/qthelp, like this:"
@@ -112,8 +112,8 @@ qthelp:
devhelp:
- $(SPHINXBUILD) -b devhelp $(ALLSPHINXOPTS) $(APIBUILDDIR)/devhelp
- $(SPHINXBUILD) -b devhelp $(ALLSPHINXOPTS) $(DOCSBUILDDIR)/devhelp
+ $(SPHINXBUILD) api/ -b devhelp $(ALLSPHINXOPTS) $(APIBUILDDIR)
+ $(SPHINXBUILD) docs/ -b devhelp $(ALLSPHINXOPTS) $(DOCSBUILDDIR)
@echo
@echo "Build finished."
@echo "To view the help file:"
@@ -123,15 +123,15 @@ devhelp:
@echo "# devhelp"
epub:
- $(SPHINXBUILD) -b epub $(ALLSPHINXOPTS) $(APIBUILDDIR)/epub
- $(SPHINXBUILD) -b epub $(ALLSPHINXOPTS) $(DOCSBUILDDIR)/epub
+ $(SPHINXBUILD) api/ -b epub $(ALLSPHINXOPTS) $(APIBUILDDIR)
+ $(SPHINXBUILD) docs/ -b epub $(ALLSPHINXOPTS) $(DOCSBUILDDIR)
@echo
@echo "Build finished. The epub file is in $(APIBUILDDIR)/epub."
@echo "Build finished. The epub file is in $(DOCSBUILDDIR)/epub."
latex:
- $(SPHINXBUILD) -b latex $(ALLSPHINXOPTS) $(APIBUILDDIR)/latex
- $(SPHINXBUILD) -b latex $(ALLSPHINXOPTS) $(DOCSBUILDDIR)/latex
+ $(SPHINXBUILD) api/ -b latex $(ALLSPHINXOPTS) $(APIBUILDDIR)
+ $(SPHINXBUILD) docs/ -b latex $(ALLSPHINXOPTS) $(DOCSBUILDDIR)
@echo
@echo "Build finished; the LaTeX files are in $(APIBUILDDIR)/latex."
@echo "Build finished; the LaTeX files are in $(DOCSBUILDDIR)/latex."
@@ -139,8 +139,8 @@ latex:
"(use \`make latexpdf' here to do that automatically)."
latexpdf:
- $(SPHINXBUILD) -b latex $(ALLSPHINXOPTS) $(APIBUILDDIR)/latex
- $(SPHINXBUILD) -b latex $(ALLSPHINXOPTS) $(DOCSBUILDDIR)/latex
+ $(SPHINXBUILD) api/ -b latex $(ALLSPHINXOPTS) $(APIBUILDDIR)
+ $(SPHINXBUILD) docs/ -b latex $(ALLSPHINXOPTS) $(DOCSBUILDDIR)
@echo "Running LaTeX files through pdflatex..."
$(MAKE) -C $(DOCSBUILDDIR)/latex all-pdf
$(MAKE) -C $(APIBUILDDIR)/latex all-pdf
@@ -148,8 +148,8 @@ latexpdf:
@echo "pdflatex finished; the PDF files are in $(DOCSBUILDDIR)/latex."
latexpdfja:
- $(SPHINXBUILD) -b latex $(ALLSPHINXOPTS) $(DOCSBUILDDIR)/latex
- $(SPHINXBUILD) -b latex $(ALLSPHINXOPTS) $(APIBUILDDIR)/latex
+ $(SPHINXBUILD) docs/ -b latex $(ALLSPHINXOPTS) $(DOCSBUILDDIR)
+ $(SPHINXBUILD) api/ -b latex $(ALLSPHINXOPTS) $(APIBUILDDIR)
@echo "Running LaTeX files through platex and dvipdfmx..."
$(MAKE) -C $(APIBUILDDIR)/latex all-pdf-ja
$(MAKE) -C $(DOCSBUILDDIR)/latex all-pdf-ja
@@ -157,22 +157,22 @@ latexpdfja:
@echo "pdflatex finished; the PDF files are in $(APIBUILDDIR)/latex."
text:
- $(SPHINXBUILD) -b text $(ALLSPHINXOPTS) $(DOCSBUILDDIR)/text
- $(SPHINXBUILD) -b text $(ALLSPHINXOPTS) $(APIBUILDDIR)/text
+ $(SPHINXBUILD) docs/ -b text $(ALLSPHINXOPTS) $(DOCSBUILDDIR)
+ $(SPHINXBUILD) api/ -b text $(ALLSPHINXOPTS) $(APIBUILDDIR)
@echo
@echo "Build finished. The text files are in $(DOCSBUILDDIR)/text."
@echo "Build finished. The text files are in $(APIBUILDDIR)/text."
man:
- $(SPHINXBUILD) -b man $(ALLSPHINXOPTS) $(DOCSBUILDDIR)/man
- $(SPHINXBUILD) -b man $(ALLSPHINXOPTS) $(APIBUILDDIR)/man
+ $(SPHINXBUILD) docs/ -b man $(ALLSPHINXOPTS) $(DOCSBUILDDIR)
+ $(SPHINXBUILD) api/ -b man $(ALLSPHINXOPTS) $(APIBUILDDIR)
@echo
@echo "Build finished. The manual pages are in $(DOCSBUILDDIR)/man."
@echo "Build finished. The manual pages are in $(APIBUILDDIR)/man."
texinfo:
- $(SPHINXBUILD) -b texinfo $(ALLSPHINXOPTS) $(DOCSBUILDDIR)/texinfo
- $(SPHINXBUILD) -b texinfo $(ALLSPHINXOPTS) $(APIBUILDDIR)/texinfo
+ $(SPHINXBUILD) docs/ -b texinfo $(ALLSPHINXOPTS) $(DOCSBUILDDIR)
+ $(SPHINXBUILD) api/ -b texinfo $(ALLSPHINXOPTS) $(APIBUILDDIR)
@echo
@echo "Build finished. The Texinfo files are in $(DOCSBUILDDIR)/texinfo."
@echo "Build finished. The Texinfo files are in $(APIBUILDDIR)/texinfo."
@@ -180,8 +180,8 @@ texinfo:
"(use \`make info' here to do that automatically)."
info:
- $(SPHINXBUILD) -b texinfo $(ALLSPHINXOPTS) $(DOCSBUILDDIR)/texinfo
- $(SPHINXBUILD) -b texinfo $(ALLSPHINXOPTS) $(APIBUILDDIR)/texinfo
+ $(SPHINXBUILD) docs/ -b texinfo $(ALLSPHINXOPTS) $(DOCSBUILDDIR)
+ $(SPHINXBUILD) api/ -b texinfo $(ALLSPHINXOPTS) $(APIBUILDDIR)
@echo "Running Texinfo files through makeinfo..."
make -C $(DOCSBUILDDIR)/texinfo info
make -C $(APIBUILDDIR)/texinfo info
@@ -189,22 +189,22 @@ info:
@echo "makeinfo finished; the Info files are in $(APIBUILDDIR)/texinfo."
gettext:
- $(SPHINXBUILD) -b gettext $(I18NSPHINXOPTS) $(DOCSBUILDDIR)/locale
- $(SPHINXBUILD) -b gettext $(I18NSPHINXOPTS) $(APIBUILDDIR)/locale
+ $(SPHINXBUILD) docs/ -b gettext $(I18NSPHINXOPTS) $(DOCSBUILDDIR)
+ $(SPHINXBUILD) api/ -b gettext $(I18NSPHINXOPTS) $(APIBUILDDIR)
@echo
@echo "Build finished. The message catalogs are in $(DOCSBUILDDIR)/locale."
@echo "Build finished. The message catalogs are in $(APIBUILDDIR)/locale."
changes:
- $(SPHINXBUILD) -b changes $(ALLSPHINXOPTS) $(DOCSBUILDDIR)/changes
- $(SPHINXBUILD) -b changes $(ALLSPHINXOPTS) $(APIBUILDDIR)/changes
+ $(SPHINXBUILD) docs/ -b changes $(ALLSPHINXOPTS) $(DOCSBUILDDIR)
+ $(SPHINXBUILD) api/ -b changes $(ALLSPHINXOPTS) $(APIBUILDDIR)
@echo
@echo "The overview file is in $(DOCSBUILDDIR)/changes."
@echo "The overview file is in $(APIBUILDDIR)/changes."
linkcheck:
- $(SPHINXBUILD) -b linkcheck $(ALLSPHINXOPTS) $(DOCSBUILDDIR)/linkcheck
- $(SPHINXBUILD) -b linkcheck $(ALLSPHINXOPTS) $(APIBUILDDIR)/linkcheck
+ $(SPHINXBUILD) docs/ -b linkcheck $(ALLSPHINXOPTS) $(DOCSBUILDDIR)
+ $(SPHINXBUILD) api/ -b linkcheck $(ALLSPHINXOPTS) $(APIBUILDDIR)
@echo
@echo "Link check complete; look for any errors in the above output " \
"or in $(APIBUILDDIR)/linkcheck/output.txt."
@@ -213,8 +213,8 @@ linkcheck:
doctest:
- $(SPHINXBUILD) -b doctest $(ALLSPHINXOPTS) $(DOCSBUILDDIR)/doctest
- $(SPHINXBUILD) -b doctest $(ALLSPHINXOPTS) $(APIBUILDDIR)/doctest
+ $(SPHINXBUILD) docs/ -b doctest $(ALLSPHINXOPTS) $(DOCSBUILDDIR)
+ $(SPHINXBUILD) api/ -b doctest $(ALLSPHINXOPTS) $(APIBUILDDIR)
@echo "Testing of doctests in the sources finished, look at the " \
"results in $(APIBUILDDIR)/doctest/output.txt."
@echo "Testing of doctests in the sources finished, look at the " \
@@ -222,15 +222,15 @@ doctest:
xml:
- $(SPHINXBUILD) -b xml $(ALLSPHINXOPTS) $(DOCSBUILDDIR)/xml
- $(SPHINXBUILD) -b xml $(ALLSPHINXOPTS) $(APIBUILDDIR)/xml
+ $(SPHINXBUILD) docs/ -b xml $(ALLSPHINXOPTS) $(DOCSBUILDDIR)
+ $(SPHINXBUILD) api/ -b xml $(ALLSPHINXOPTS) $(APIBUILDDIR)
@echo
@echo "Build finished. The XML files are in $(DOCSBUILDDIR)/xml."
@echo "Build finished. The XML files are in $(APIBUILDDIR)/xml."
pseudoxml:
- $(SPHINXBUILD) -b pseudoxml $(ALLSPHINXOPTS) $(APIBUILDDIR)/pseudoxml
- $(SPHINXBUILD) -b pseudoxml $(ALLSPHINXOPTS) $(DOCSBUILDDIR)/pseudoxml
+ $(SPHINXBUILD) api/ -b pseudoxml $(ALLSPHINXOPTS) $(APIBUILDDIR)
+ $(SPHINXBUILD) docs/ -b pseudoxml $(ALLSPHINXOPTS) $(DOCSBUILDDIR)
@echo
@echo "Build finished. The pseudo-XML files are in $(DOCSBUILDDIR)/pseudoxml."
@echo "Build finished. The pseudo-XML files are in $(APIBUILDDIR)/pseudoxml."
diff --git a/api-bank.rst b/api/api-bank.rst
index 48b7075..48b7075 100644
--- a/api-bank.rst
+++ b/api/api-bank.rst
diff --git a/api-common.rst b/api/api-common.rst
index 411f7df..411f7df 100644
--- a/api-common.rst
+++ b/api/api-common.rst
diff --git a/api-error.rst b/api/api-error.rst
index cf107b1..cf107b1 100644
--- a/api-error.rst
+++ b/api/api-error.rst
diff --git a/api-exchange.rst b/api/api-exchange.rst
index 7f1a151..7f1a151 100644
--- a/api-exchange.rst
+++ b/api/api-exchange.rst
diff --git a/api-merchant.rst b/api/api-merchant.rst
index 9eccc2f..9eccc2f 100644
--- a/api-merchant.rst
+++ b/api/api-merchant.rst
diff --git a/conf.py b/api/conf.py
index 8db3f93..8db3f93 100644
--- a/conf.py
+++ b/api/conf.py
diff --git a/api/exts/__pycache__/tsref.cpython-35.pyc b/api/exts/__pycache__/tsref.cpython-35.pyc
new file mode 100644
index 0000000..f8474d5
--- /dev/null
+++ b/api/exts/__pycache__/tsref.cpython-35.pyc
Binary files differ
diff --git a/exts/tsref.py b/api/exts/tsref.py
index 8187f67..8187f67 100644
--- a/exts/tsref.py
+++ b/api/exts/tsref.py
diff --git a/global_licensing.rst b/api/global_licensing.rst
index 7a5e822..7a5e822 100644
--- a/global_licensing.rst
+++ b/api/global_licensing.rst
diff --git a/api/index.rst b/api/index.rst
new file mode 100644
index 0000000..01724fd
--- /dev/null
+++ b/api/index.rst
@@ -0,0 +1,89 @@
+..
+ This file is part of GNU TALER.
+ Copyright (C) 2014, 2015, 2016 GNUnet e.V.
+
+ TALER is free software; you can redistribute it and/or modify it under the
+ terms of the GNU General Public License as published by the Free Software
+ Foundation; either version 2.1, or (at your option) any later version.
+
+ TALER 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 Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public License along with
+ TALER; see the file COPYING. If not, see <http://www.gnu.org/licenses/>
+
+ @author Florian Dold
+ @author Benedikt Muller
+ @author Sree Harsha Totakura
+
+GNU Taler Documentation
+=======================
+
+We are building an anonymous, taxable payment system using modern
+cryptography. Customers will use traditional money transfers to send
+money to a digital Exchange and in return receive (anonymized) digital
+cash. Customers can use this digital cash to anonymously pay
+Merchants. Merchants can redeem the digital cash for traditional
+money at the digital Exchange. As Merchants are not anonymous, they can
+be taxed, enabling income or sales taxes to be withheld by the state
+while providing anonymity for Customers.
+
+Cryptography is used to ensure that none of the participants can
+defraud the others without being detected immediately; however, in
+practice a fradulent Exchange might go bankrupt instead of paying the
+Merchants and thus the Exchange will need to be audited regularly like
+any other banking institution.
+
+The system will be based on free software and open protocols.
+
+In this document, we describe the REST-based APIs between the various
+components, internal architecture of key components, and how to get them
+installed.
+
+-------
+Preface
+-------
+
+The *Operator Handbook* is for people who want to run a exchange or a merchant.
+It focuses on how to install, configure and run the required software.
+
+.. toctree::
+ :maxdepth: 2
+
+ global_licensing
+ versioning
+
+------------------------
+Web Integration Handbook
+------------------------
+
+The *Web Integration Handbook* is for those who want to interact with Taler
+wallets on their own website. Integrators will also have to be familiar with
+the material covered in the *Operator Handbook*.
+
+
+.. toctree::
+ :maxdepth: 2
+
+ integration-general
+ integration-bank
+ integration-merchant
+
+--------------------------------------
+Taler HTTP Core Protocol Specification
+--------------------------------------
+
+The *Protocol Specification* defines the HTTP-based, predominantly RESTful
+interfaces between the core components of Taler.
+
+.. toctree::
+ :maxdepth: 2
+
+ api-common
+ api-error
+ api-exchange
+ api-merchant
+ api-bank
+
+ wireformats
diff --git a/integration-bank.rst b/api/integration-bank.rst
index 1dc2ec8..1dc2ec8 100644
--- a/integration-bank.rst
+++ b/api/integration-bank.rst
diff --git a/integration-general.rst b/api/integration-general.rst
index 308ecf5..308ecf5 100644
--- a/integration-general.rst
+++ b/api/integration-general.rst
diff --git a/integration-merchant.rst b/api/integration-merchant.rst
index f322161..f322161 100644
--- a/integration-merchant.rst
+++ b/api/integration-merchant.rst
diff --git a/wireformats.rst b/api/wireformats.rst
index 4e15493..4e15493 100644
--- a/wireformats.rst
+++ b/api/wireformats.rst
diff --git a/docs/conf.py b/docs/conf.py
new file mode 100644
index 0000000..8db3f93
--- /dev/null
+++ b/docs/conf.py
@@ -0,0 +1,285 @@
+"""
+ This file is part of GNU TALER.
+ Copyright (C) 2014, 2015, 2016 GNUnet e.V. and INRIA
+ TALER is free software; you can redistribute it and/or modify it under the
+ terms of the GNU Lesser General Public License as published by the Free Software
+ Foundation; either version 2.1, or (at your option) any later version.
+ TALER 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 Lesser General Public License for more details.
+ You should have received a copy of the GNU Lesser General Public License along with
+ TALER; see the file COPYING. If not, see <http://www.gnu.org/licenses/>
+
+ @author Florian Dold
+ @author Benedikt Muller
+ @author Sree Harsha Totakura
+ @author Marcello Stanisci
+"""
+# -*- coding: utf-8 -*-
+#
+# neuro documentation build configuration file, created by
+# sphinx-quickstart on Sat May 31 13:11:06 2014.
+#
+# This file is execfile()d with the current directory set to its
+# containing dir.
+#
+# Note that not all possible configuration values are present in this
+# autogenerated file.
+#
+# All configuration values have a default; values that are commented out
+# serve to show the default.
+
+import sys
+import os
+
+# If extensions (or modules to document with autodoc) are in another directory,
+# add these directories to sys.path here. If the directory is relative to the
+# documentation root, use os.path.abspath to make it absolute, like shown here.
+#sys.path.insert(0, os.path.abspath('.'))
+
+# -- General configuration ------------------------------------------------
+
+# If your documentation needs a minimal Sphinx version, state it here.
+needs_sphinx = '1.3'
+
+sys.path.append(os.path.abspath('exts'))
+
+# Add any Sphinx extension module names here, as strings. They can be
+# extensions coming with Sphinx (named 'sphinx.ext.*') or your custom
+# ones.
+extensions = [
+ 'tsref',
+ 'sphinx.ext.todo',
+ 'sphinx.ext.pngmath',
+ 'sphinxcontrib.httpdomain'
+]
+
+# Add any paths that contain templates here, relative to this directory.
+templates_path = ['_templates']
+
+# The suffix of source filenames.
+source_suffix = '.rst'
+
+# The encoding of source files.
+#source_encoding = 'utf-8-sig'
+
+# The master toctree document.
+master_doc = 'index'
+
+# General information about the project.
+project = u'Taler'
+copyright = u'2014, 2015, 2016 Florian Dold, Benedikt Muller, Sree Harsha Totakura, Christian Grothoff, Marcello Stanisci (GPLv3+ or GFDL 1.3+)'
+
+# The version info for the project you're documenting, acts as replacement for
+# |version| and |release|, also used in various other places throughout the
+# built documents.
+#
+# The short X.Y version.
+version = '0.1'
+# The full version, including alpha/beta/rc tags.
+release = '0.1.0'
+
+# The language for content autogenerated by Sphinx. Refer to documentation
+# for a list of supported languages.
+# language = None
+
+# There are two options for replacing |today|: either, you set today to some
+# non-false value, then it is used:
+#today = ''
+# Else, today_fmt is used as the format for a strftime call.
+#today_fmt = '%B %d, %Y'
+
+# List of patterns, relative to source directory, that match files and
+# directories to ignore when looking for source files.
+exclude_patterns = ['_build']
+
+# The reST default role (used for this markup: `text`) to use for all
+# documents.
+#default_role = None
+
+# If true, '()' will be appended to :func: etc. cross-reference text.
+#add_function_parentheses = True
+
+# If true, the current module name will be prepended to all description
+# unit titles (such as .. function::).
+#add_module_names = True
+
+# If true, sectionauthor and moduleauthor directives will be shown in the
+# output. They are ignored by default.
+#show_authors = False
+
+# The name of the Pygments (syntax highlighting) style to use.
+pygments_style = 'sphinx'
+
+# A list of ignored prefixes for module index sorting.
+#modindex_common_prefix = []
+
+# If true, keep warnings as "system message" paragraphs in the built documents.
+#keep_warnings = False
+
+
+# -- Options for HTML output ----------------------------------------------
+
+# The theme to use for HTML and HTML Help pages. See the documentation for
+# a list of builtin themes.
+html_theme = 'default'
+
+# Theme options are theme-specific and customize the look and feel of a theme
+# further. For a list of options available for each theme, see the
+# documentation.
+#html_theme_options = {}
+
+# Add any paths that contain custom themes here, relative to this directory.
+#html_theme_path = []
+
+# The name for this set of Sphinx documents. If None, it defaults to
+# "<project> v<release> documentation".
+#html_title = None
+
+# A shorter title for the navigation bar. Default is the same as html_title.
+#html_short_title = None
+
+# The name of an image file (relative to this directory) to place at the top
+# of the sidebar.
+#html_logo = None
+
+# The name of an image file (within the static path) to use as favicon of the
+# docs. This file should be a Windows icon file (.ico) being 16x16 or 32x32
+# pixels large.
+#html_favicon = None
+
+# Add any paths that contain custom static files (such as style sheets) here,
+# relative to this directory. They are copied after the builtin static files,
+# so a file named "default.css" will overwrite the builtin "default.css".
+html_static_path = ['_static']
+
+# Add any extra paths that contain custom files (such as robots.txt or
+# .htaccess) here, relative to this directory. These files are copied
+# directly to the root of the documentation.
+#html_extra_path = []
+
+# If not '', a 'Last updated on:' timestamp is inserted at every page bottom,
+# using the given strftime format.
+#html_last_updated_fmt = '%b %d, %Y'
+
+# If true, SmartyPants will be used to convert quotes and dashes to
+# typographically correct entities.
+#html_use_smartypants = True
+
+# Custom sidebar templates, maps document names to template names.
+#html_sidebars = {}
+
+# Additional templates that should be rendered to pages, maps page names to
+# template names.
+#html_additional_pages = {}
+
+# If false, no module index is generated.
+#html_domain_indices = True
+
+# If false, no index is generated.
+#html_use_index = True
+
+# If true, the index is split into individual pages for each letter.
+#html_split_index = False
+
+# If true, links to the reST sources are added to the pages.
+#html_show_sourcelink = True
+
+# If true, "Created using Sphinx" is shown in the HTML footer. Default is True.
+html_show_sphinx = False
+
+# If true, "(C) Copyright ..." is shown in the HTML footer. Default is True.
+#html_show_copyright = True
+
+# If true, an OpenSearch description file will be output, and all pages will
+# contain a <link> tag referring to it. The value of this option must be the
+# base URL from which the finished HTML is served.
+#html_use_opensearch = ''
+
+# This is the file name suffix for HTML files (e.g. ".xhtml").
+#html_file_suffix = None
+
+# Output file base name for HTML help builder.
+htmlhelp_basename = 'neurodoc'
+
+
+# -- Options for LaTeX output ---------------------------------------------
+
+latex_elements = {
+# The paper size ('letterpaper' or 'a4paper').
+#'papersize': 'letterpaper',
+
+# The font size ('10pt', '11pt' or '12pt').
+#'pointsize': '10pt',
+
+# Additional stuff for the LaTeX preamble.
+#'preamble': '',
+}
+
+# Grouping the document tree into LaTeX files. List of tuples
+# (source start file, target name, title,
+# author, documentclass [howto, manual, or own class]).
+latex_documents = [
+ ('index', 'taler.tex', u'Taler Documentation',
+ u'F. Dold, B. Muller, S. H. Totakura, C. Grothoff',
+ 'manual'),
+]
+
+# The name of an image file (relative to this directory) to place at the top of
+# the title page.
+#latex_logo = None
+
+# For "manual" documents, if this is true, then toplevel headings are parts,
+# not chapters.
+#latex_use_parts = False
+
+# If true, show page references after internal links.
+#latex_show_pagerefs = False
+
+# If true, show URL addresses after external links.
+#latex_show_urls = False
+
+# Documents to append as an appendix to all manuals.
+#latex_appendices = []
+
+# If false, no module index is generated.
+#latex_domain_indices = True
+
+
+# -- Options for manual page output ---------------------------------------
+
+# One entry per manual page. List of tuples
+# (source start file, name, description, authors, manual section).
+man_pages = [
+ ('index', 'neuro', u'neuro Documentation',
+ [u'F. Dold, B. Muller, S. H. Totakura, C. Grothoff'],
+ 1)
+]
+
+# If true, show URL addresses after external links.
+#man_show_urls = False
+
+
+# -- Options for Texinfo output -------------------------------------------
+
+# Grouping the document tree into Texinfo files. List of tuples
+# (source start file, target name, title, author,
+# dir menu entry, description, category)
+texinfo_documents = [
+ ('index', 'neuro', u'neuro Documentation',
+ u'F. Dold, B. Muller, S. H. Totakura, C. Grothoff',
+ 'neuro', 'One line description of project.',
+ 'Miscellaneous'),
+]
+
+# Documents to append as an appendix to all manuals.
+#texinfo_appendices = []
+
+# If false, no module index is generated.
+#texinfo_domain_indices = True
+
+# How to display URL addresses: 'footnote', 'no', or 'inline'.
+#texinfo_show_urls = 'footnote'
+
+# If true, do not generate a @detailmenu in the "Top" node's menu.
+#texinfo_no_detailmenu = False
diff --git a/configuration-basics.rst b/docs/configuration-basics.rst
index 50c3d53..50c3d53 100644
--- a/configuration-basics.rst
+++ b/docs/configuration-basics.rst
diff --git a/deployment.rst b/docs/deployment.rst
index c0b07e4..c0b07e4 100644
--- a/deployment.rst
+++ b/docs/deployment.rst
diff --git a/dev-exchange.rst b/docs/dev-exchange.rst
index 91278ee..91278ee 100644
--- a/dev-exchange.rst
+++ b/docs/dev-exchange.rst
diff --git a/dev-merchant.rst b/docs/dev-merchant.rst
index e4cd4cb..e4cd4cb 100644
--- a/dev-merchant.rst
+++ b/docs/dev-merchant.rst
diff --git a/dev-wallet-wx.rst b/docs/dev-wallet-wx.rst
index 8ba2997..8ba2997 100644
--- a/dev-wallet-wx.rst
+++ b/docs/dev-wallet-wx.rst
diff --git a/example-essay-store.rst b/docs/example-essay-store.rst
index 1942801..1942801 100644
--- a/example-essay-store.rst
+++ b/docs/example-essay-store.rst
diff --git a/docs/exts/__pycache__/tsref.cpython-35.pyc b/docs/exts/__pycache__/tsref.cpython-35.pyc
new file mode 100644
index 0000000..abc92f0
--- /dev/null
+++ b/docs/exts/__pycache__/tsref.cpython-35.pyc
Binary files differ
diff --git a/docs/exts/tsref.py b/docs/exts/tsref.py
new file mode 100644
index 0000000..8187f67
--- /dev/null
+++ b/docs/exts/tsref.py
@@ -0,0 +1,233 @@
+"""
+ This file is part of GNU TALER.
+ Copyright (C) 2014, 2015 GNUnet e.V. and INRIA
+ TALER is free software; you can redistribute it and/or modify it under the
+ terms of the GNU Lesser General Public License as published by the Free Software
+ Foundation; either version 2.1, or (at your option) any later version.
+ TALER 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 Lesser General Public License for more details.
+ You should have received a copy of the GNU Lesser General Public License along with
+ TALER; see the file COPYING. If not, see <http://www.gnu.org/licenses/>
+
+ @author Florian Dold
+"""
+
+"""
+This extension adds a new lexer "tsref" for TypeScript, which
+allows reST-style links inside comments (`LinkName`_),
+and semi-automatically adds links to the definition of types.
+
+For type TYPE, a reference to tsref-type-TYPE is added.
+
+Known bugs and limitations:
+ - The way the extension works right now interferes wiht
+ Sphinx's caching, the build directory should be cleared
+ before every build.
+"""
+
+
+from pygments.util import get_bool_opt
+from pygments.token import Name, Comment, Token, _TokenType
+from pygments.filter import Filter
+from sphinx.highlighting import PygmentsBridge
+from sphinx.builders.html import StandaloneHTMLBuilder
+from sphinx.pygments_styles import SphinxStyle
+from pygments.formatters import HtmlFormatter
+from docutils import nodes
+from docutils.nodes import make_id
+import re
+
+
+_escape_html_table = {
+ ord('&'): u'&amp;',
+ ord('<'): u'&lt;',
+ ord('>'): u'&gt;',
+ ord('"'): u'&quot;',
+ ord("'"): u'&#39;',
+}
+
+
+class LinkingHtmlFormatter(HtmlFormatter):
+ def __init__(self, **kwargs):
+ super(LinkingHtmlFormatter, self).__init__(**kwargs)
+ self._builder = kwargs['_builder']
+
+ def _fmt(self, value, tok):
+ cls = self._get_css_class(tok)
+ href = tok_getprop(tok, "href")
+ caption = tok_getprop(tok, "caption")
+ content = caption if caption is not None else value
+ if href:
+ value = '<a style="color:inherit;text-decoration:underline" href="%s">%s</a>' % (href, content)
+ if cls is None or cls == "":
+ return value
+ return '<span class="%s">%s</span>' % (cls, value)
+
+ def _format_lines(self, tokensource):
+ """
+ Just format the tokens, without any wrapping tags.
+ Yield individual lines.
+ """
+ lsep = self.lineseparator
+ escape_table = _escape_html_table
+
+ line = ''
+ for ttype, value in tokensource:
+ link = get_annotation(ttype, "link")
+
+ parts = value.translate(escape_table).split('\n')
+
+ if len(parts) == 0:
+ # empty token, usually should not happen
+ pass
+ elif len(parts) == 1:
+ # no newline before or after token
+ line += self._fmt(parts[0], ttype)
+ else:
+ line += self._fmt(parts[0], ttype)
+ yield 1, line + lsep
+ for part in parts[1:-1]:
+ yield 1, self._fmt(part, ttype) + lsep
+ line = self._fmt(parts[-1], ttype)
+
+ if line:
+ yield 1, line + lsep
+
+
+class MyPygmentsBridge(PygmentsBridge):
+ def __init__(self, builder, trim_doctest_flags):
+ self.dest = "html"
+ self.trim_doctest_flags = trim_doctest_flags
+ self.formatter_args = {'style': SphinxStyle, '_builder': builder}
+ self.formatter = LinkingHtmlFormatter
+
+
+class MyHtmlBuilder(StandaloneHTMLBuilder):
+ name = "html-linked"
+ def init_highlighter(self):
+ if self.config.pygments_style is not None:
+ style = self.config.pygments_style
+ elif self.theme:
+ style = self.theme.get_confstr('theme', 'pygments_style', 'none')
+ else:
+ style = 'sphinx'
+ self.highlighter = MyPygmentsBridge(self, self.config.trim_doctest_flags)
+
+ def write_doc(self, docname, doctree):
+ self._current_docname = docname
+ super(MyHtmlBuilder, self).write_doc(docname, doctree)
+
+
+def get_annotation(tok, key):
+ if not hasattr(tok, "kv"):
+ return None
+ return tok.kv.get(key)
+
+
+def copy_token(tok):
+ new_tok = _TokenType(tok)
+ # This part is very fragile against API changes ...
+ new_tok.subtypes = set(tok.subtypes)
+ new_tok.parent = tok.parent
+ return new_tok
+
+
+def tok_setprop(tok, key, value):
+ tokid = id(tok)
+ e = token_props.get(tokid)
+ if e is None:
+ e = token_props[tokid] = (tok, {})
+ _, kv = e
+ kv[key] = value
+
+
+def tok_getprop(tok, key):
+ tokid = id(tok)
+ e = token_props.get(tokid)
+ if e is None:
+ return None
+ _, kv = e
+ return kv.get(key)
+
+
+link_reg = re.compile(r"`([^`<]+)\s*(?:<([^>]+)>)?\s*`_")
+
+# Map from token id to props.
+# Properties can't be added to tokens
+# since they derive from Python's tuple.
+token_props = {}
+
+
+class LinkFilter(Filter):
+ def __init__(self, app, **options):
+ self.app = app
+ Filter.__init__(self, **options)
+
+ def filter(self, lexer, stream):
+ id_to_doc = self.app.env.domaindata.get("_tsref", {})
+ for ttype, value in stream:
+ if ttype in Token.Keyword.Type:
+ defname = make_id('tsref-type-' + value);
+ t = copy_token(ttype)
+ if defname in id_to_doc:
+ docname = id_to_doc[defname]
+ href = self.app.builder.get_target_uri(docname) + "#" + defname
+ tok_setprop(t, "href", href)
+
+ yield t, value
+ elif ttype in Token.Comment:
+ last = 0
+ for m in re.finditer(link_reg, value):
+ pre = value[last:m.start()]
+ if pre:
+ yield ttype, pre
+ t = copy_token(ttype)
+ x1, x2 = m.groups()
+ if x2 is None:
+ caption = x1.strip()
+ id = make_id(x1)
+ else:
+ caption = x1.strip()
+ id = make_id(x2)
+ if id in id_to_doc:
+ docname = id_to_doc[id]
+ href = self.app.builder.get_target_uri(docname) + "#" + id
+ tok_setprop(t, "href", href)
+ tok_setprop(t, "caption", caption)
+ else:
+ self.app.builder.warn("unresolved link target in comment: " + id)
+ yield t, m.group(1)
+ last = m.end()
+ post = value[last:]
+ if post:
+ yield ttype, post
+ else:
+ yield ttype, value
+
+
+
+def remember_targets(app, doctree):
+ docname = app.env.docname
+ id_to_doc = app.env.domaindata.get("_tsref", None)
+ if id_to_doc is None:
+ id_to_doc = app.env.domaindata["_tsref"] = {}
+ for node in doctree.traverse():
+ if not isinstance(node, nodes.Element):
+ continue
+ ids = node.get("ids")
+ if ids:
+ for id in ids:
+ id_to_doc[id] = docname
+
+
+def setup(app):
+ from sphinx.highlighting import lexers
+ from pygments.lexers import TypeScriptLexer
+ from pygments.token import Name
+ from pygments.filters import NameHighlightFilter
+ lexer = TypeScriptLexer()
+ lexer.add_filter(LinkFilter(app))
+ app.add_lexer('tsref', lexer)
+ app.add_builder(MyHtmlBuilder)
+ app.connect("doctree-read", remember_targets)
diff --git a/docs/global_licensing.rst b/docs/global_licensing.rst
new file mode 100644
index 0000000..7a5e822
--- /dev/null
+++ b/docs/global_licensing.rst
@@ -0,0 +1,215 @@
+===========================
+Taler licensing information
+===========================
+
+This file gives an overview of all Taler component's licensing and of
+runtime dependencies thereof. For "component" here is meant a set of
+source files which can be retrieved from a single repository. If
+components consist of sources under different licensing regimes, i.e.
+because we want to enable third party developments to easily integrate
+with Taler, those are described as well.
+
+All components are generally released under Lesser GPL, GPL or Affero
+GPL. The main strategy is for libraries that third parties may need
+to integrate with Taler to be under LGPL, standalone binaries and
+testcases to be under GPL, and Web servers implementing Web services
+to be under AGPL.
+
++++++++++++++++++++++++++
+API (git://taler.net/api)
++++++++++++++++++++++++++
+
+The specification has been jointly developed by INRIA and by individuals
+being under the juridical subject called 'GNUnet e.V.'. For each source
+file, the header indicated whose is holding the copyright, since some
+parts have been taken "verbatim" from the GNUnet e.V. foundation, and
+some other have been developed at INRIA "ex novo".
+
+Generally, GNU GPLv3 license is used for them; see COPYING.GPL.
+
+
+--------------------
+Runtime dependencies
+--------------------
+This component has no runtime dependencies as it is supposed to generate
+HTML.
+
+
+++++++++++++++++++++++++++++++++++++++++++++++++++++++
+Firefox/Android/Python Wallet (git://taler.net/wallet)
+++++++++++++++++++++++++++++++++++++++++++++++++++++++
+
+This project includes contributions from INRIA and GNUnet
+e.V. developers. Please refer to each source file to obtain
+information about the copyright holder. The GNU GPLv3 is used as the
+license for Wallets. Some components may be under the LGPL.
+
+--------------------
+Runtime dependencies
+--------------------
+
+The following list encompasses all the runtime dependencies for this
+project, and gives the copyright holder for each of them:
+
+* libgnunetutil: GPLv3+, GNUnet e.V.
+* libgnunetjson: GPLv3+, GNUnet e.V.
+* libgcrypt: LGPL, Free Software Foundation
+* libunistring: LGPL, Free Software Foundation
+* Python: Python Software Foundation License, LGPL-Compatible, Python Software Foundation
+* Mozilla Firefox: Mozilla Public License, LGPL-Compatible, Mozilla Foundation
+
+
++++++++++++++++++++++++++++++++++++++++++++++++++++
+WebExtensions Wallet (git://taler.net/wallet-webex)
++++++++++++++++++++++++++++++++++++++++++++++++++++
+
+The TypeScript code was developed 100% at INRIA, but the project
+involves compiling libgnunetutil and libtalerutil to JavaScript, and
+thus depends on software from GNUnet e.V.
+
+Each source carries its own copyright holder(s), but it is generally
+licensed under GPLv3+.
+
+--------------------
+Runtime dependencies
+--------------------
+
+The following list encompasses all the runtime dependencies for this
+project, and gives the copyright holder for each of them:
+
+* libgnunetutil: GPLv3+, GNUnet e.V.
+* libgnunetjson: GPLv3+, GNUnet e.V.
+* libgcrypt: LGPL, Free Software Foundation
+* libunistring: LGPL, Free Software Foundation
+
+Note that these dependencies are compiled into the extension and do
+not appear as separate binary files.
+
+
++++++++++++++++++++++++++++++++++++
+Merchant (git://taler.net/merchant)
++++++++++++++++++++++++++++++++++++
+
+This project contains code under two different licenses, and whose
+copyright is held by INRIA and/or GNUnet e.V.. Please refer to each
+source file to know which party holds the copyright.
+
+Source files are located in the following directories:
+
+* src/lib/
+* src/backend/
+* src/backenddb/
+* src/include/
+* src/tests/
+* examples/blog/
+* examples/shop/
+* copylib/
+
+In examples/blog/articles/ we included a book by Richard Stallman.
+It comes with its own permissive license (see COPYING in the
+directory).
+
+
+The merchant's backend (i.e. all the code in src/backend/) is under
+the GNU Affero GPL as it depends on libgnunetutil. Note that the use
+of the Affero GPL has little impact as the backend is not supposed to
+be directly accessible to the Internet). The license for this code is
+in COPYING.GPL and COPYING.AGPL.
+
+The merchant's frontend logic (i.e. JavaScript interacting with
+the wallet, sample code for a shop) is under the GNU LGPL (but
+we may choose to change this to be in the public domain or
+BSD-licensed if necessary; the code is so short that there is
+anyway the question whether it is copyrightable). Under this same
+license, it comes the merchant library (src/lib/) as it can be linked
+with more diverse licensed software. The license text for this code
+is in COPYING.LGPL.
+
+
+
+--------------------
+Runtime dependencies
+--------------------
+
+The following list encompasses all the runtime dependencies for this
+project, and gives the copyright holder for each of them:
+
+* libjansson: MIT License, AGPL- and LGPL-Compatible, owned by Petri Lehtinen and other individuals
+* libgcrypt: LGPL, owned by Free Software Foundation
+* postgresql: PostgreSQL License, AGPL- and LGPL-Compatible, owned by The PostgreSQL Global Development Group
+* libgnunetutil (in all of its variants): GPLv3+, owned by GNUnet e.V.
+* PHP: PHP License, AGPL- and LGPL-Compatible, owned by The PHP Group
+
++++++++++++++++++++++++++++
+Bank (git://taler.net/bank)
++++++++++++++++++++++++++++
+
+---------
+Licensing
+---------
+
+This project has been developed by INRIA. For each source file, the
+header indicated whose is holding the copyright. The licensing plan
+for the bank is to use the Affero GPLv3+.
+
+Source files of interest are located in the following directories:
+(The repository holds also scaffolded files autogenerated by Django,
+which do not have legal significance in this context.)
+
+* TalerBank/Bank/
+* TalerBank/Bank/templates/
+* TalerBank/my-static/
+* website/
+
+--------------------
+Runtime dependencies
+--------------------
+
+The following list encompasses all the runtime dependencies for this
+project, and gives the copyright holder for each of them:
+
+* Django: BSD License, AGPL-Compatible, owned by Django Software Foundation
+* validictory: BSD License, AGPL-Compatible, owned by James Turk
+* django-simple-math-captcha: Apache Software License, LGPL-Compatible (FIXME), Brandon Taylor
+* requests: Apache2 License, AGPL-Compatible, owned by Kenneth Reitz
+* Python: Python Software Foundation License, AGPL-Compatible, Python Software Foundation
+* PHP: PHP License, AGPL-Compatible, owned by The PHP Group
+
+
+.. _exchange-repo:
+
++++++++++++++++++++++++++++++++++++
+Exchange (git://taler.net/exchange)
++++++++++++++++++++++++++++++++++++
+
+This component is based on code initially developed in Munich for
+GNUnet e.V. Most recent improvements and maintenance has been done at
+Inria. The copyright is thus shared between both institutions.
+
+The licensing for exported libraries to access the exchange is LGPL,
+the exchange itself is under AGPL, and testcases and standalone
+binaries are under GPL.
+
+
+--------------------
+Runtime dependencies
+--------------------
+
+The following list encompasses all the runtime dependencies for this
+project, and gives the copyright holder for each of them:
+
+* libjansson: MIT License, AGPL- and LGPL-Compatible, owned by Petri Lehtinen and other individuals
+* libgcrypt: LGPL, owned by Free Software Foundation
+* postgresql: PostgreSQL License, AGPL- and LGPL-Compatible, owned by The PostgreSQL Global Development Group
+* libgnunetutil (in all of its variants): GPLv3+, owned by GNUnet e.V.
+* libgnunetjson: GPLv3+, GNUnet e.V.
+
+
++++++++++++++++++++++++++++++++++++++++++
+Web includes (git://taler.net/web-common)
++++++++++++++++++++++++++++++++++++++++++
+
+All copyright owned by INRIA (but questionable whether creativity
+threshold for copyright is even met).
+
+Sources are licensed under the GNU LGPL.
diff --git a/glossary.rst b/docs/glossary.rst
index d9a6cfa..d9a6cfa 100644
--- a/glossary.rst
+++ b/docs/glossary.rst
diff --git a/index.rst b/docs/index.rst
index 6de1dbd..a498214 100644
--- a/index.rst
+++ b/docs/index.rst
@@ -74,26 +74,6 @@ the material covered in the *Operator Handbook*.
integration-merchant
example-essay-store
-
---------------------------------------
-Taler HTTP Core Protocol Specification
---------------------------------------
-
-The *Protocol Specification* defines the HTTP-based, predominantly RESTful
-interfaces between the core components of Taler.
-
-.. toctree::
- :maxdepth: 2
-
- api-common
- api-error
- api-exchange
- api-merchant
- api-bank
-
- wireformats
-
-
------------------
Developer Handbook
------------------
diff --git a/operate-exchange.rst b/docs/operate-exchange.rst
index 874b837..874b837 100644
--- a/operate-exchange.rst
+++ b/docs/operate-exchange.rst
diff --git a/operate-merchant.rst b/docs/operate-merchant.rst
index 484d6eb..484d6eb 100644
--- a/operate-merchant.rst
+++ b/docs/operate-merchant.rst