diff options
-rw-r--r-- | Makefile | 90 | ||||
-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.pyc | bin | 0 -> 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.rst | 89 | ||||
-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.py | 285 | ||||
-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.pyc | bin | 0 -> 7448 bytes | |||
-rw-r--r-- | docs/exts/tsref.py | 233 | ||||
-rw-r--r-- | docs/global_licensing.rst | 215 | ||||
-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
@@ -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 48b7075e..48b7075e 100644 --- a/api-bank.rst +++ b/api/api-bank.rst diff --git a/api-common.rst b/api/api-common.rst index 411f7df5..411f7df5 100644 --- a/api-common.rst +++ b/api/api-common.rst diff --git a/api-error.rst b/api/api-error.rst index cf107b11..cf107b11 100644 --- a/api-error.rst +++ b/api/api-error.rst diff --git a/api-exchange.rst b/api/api-exchange.rst index 7f1a1516..7f1a1516 100644 --- a/api-exchange.rst +++ b/api/api-exchange.rst diff --git a/api-merchant.rst b/api/api-merchant.rst index 9eccc2fa..9eccc2fa 100644 --- a/api-merchant.rst +++ b/api/api-merchant.rst diff --git a/api/exts/__pycache__/tsref.cpython-35.pyc b/api/exts/__pycache__/tsref.cpython-35.pyc Binary files differnew file mode 100644 index 00000000..f8474d57 --- /dev/null +++ b/api/exts/__pycache__/tsref.cpython-35.pyc diff --git a/exts/tsref.py b/api/exts/tsref.py index 8187f67f..8187f67f 100644 --- a/exts/tsref.py +++ b/api/exts/tsref.py diff --git a/global_licensing.rst b/api/global_licensing.rst index 7a5e8226..7a5e8226 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 00000000..01724fdf --- /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 1dc2ec8d..1dc2ec8d 100644 --- a/integration-bank.rst +++ b/api/integration-bank.rst diff --git a/integration-general.rst b/api/integration-general.rst index 308ecf5a..308ecf5a 100644 --- a/integration-general.rst +++ b/api/integration-general.rst diff --git a/integration-merchant.rst b/api/integration-merchant.rst index f3221617..f3221617 100644 --- a/integration-merchant.rst +++ b/api/integration-merchant.rst diff --git a/wireformats.rst b/api/wireformats.rst index 4e154930..4e154930 100644 --- a/wireformats.rst +++ b/api/wireformats.rst diff --git a/docs/conf.py b/docs/conf.py new file mode 100644 index 00000000..8db3f93b --- /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 50c3d532..50c3d532 100644 --- a/configuration-basics.rst +++ b/docs/configuration-basics.rst diff --git a/deployment.rst b/docs/deployment.rst index c0b07e43..c0b07e43 100644 --- a/deployment.rst +++ b/docs/deployment.rst diff --git a/dev-exchange.rst b/docs/dev-exchange.rst index 91278ee7..91278ee7 100644 --- a/dev-exchange.rst +++ b/docs/dev-exchange.rst diff --git a/dev-merchant.rst b/docs/dev-merchant.rst index e4cd4cbc..e4cd4cbc 100644 --- a/dev-merchant.rst +++ b/docs/dev-merchant.rst diff --git a/dev-wallet-wx.rst b/docs/dev-wallet-wx.rst index 8ba29975..8ba29975 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 19428019..19428019 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 Binary files differnew file mode 100644 index 00000000..abc92f00 --- /dev/null +++ b/docs/exts/__pycache__/tsref.cpython-35.pyc diff --git a/docs/exts/tsref.py b/docs/exts/tsref.py new file mode 100644 index 00000000..8187f67f --- /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'&', + ord('<'): u'<', + ord('>'): u'>', + ord('"'): u'"', + ord("'"): u''', +} + + +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 00000000..7a5e8226 --- /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 d9a6cfa7..d9a6cfa7 100644 --- a/glossary.rst +++ b/docs/glossary.rst diff --git a/index.rst b/docs/index.rst index 6de1dbd4..a4982149 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 874b837c..874b837c 100644 --- a/operate-exchange.rst +++ b/docs/operate-exchange.rst diff --git a/operate-merchant.rst b/docs/operate-merchant.rst index 484d6eba..484d6eba 100644 --- a/operate-merchant.rst +++ b/docs/operate-merchant.rst |