diff options
1344 files changed, 145629 insertions, 100403 deletions
@@ -164,3 +164,7 @@ src/include/taler_dbevents.h src/bank-lib/taler-exchange-wire-gateway-client src/exchange/taler-exchange-drain src/kyclogic/taler-exchange-kyc-tester +src/auditor/exchange-httpd-drain.err +src/templating/libmustach.a +contrib/tos/conf.py +contrib/pp/conf.py diff --git a/.gitmodules b/.gitmodules index 41697755..f2b9611b 100644 --- a/.gitmodules +++ b/.gitmodules @@ -7,4 +7,4 @@ branch = prebuilt [submodule "contrib/gana"] path = contrib/gana - url = https://git.gnunet.org/git/gana.git + url = https://git.gnunet.org/gana.git @@ -2,4 +2,5 @@ Sree Harsha Totakura <sreeharsha@totakura.in> Florian Dold <dold@taler.net> Marcello Stanisci <stanisci@taler.net> Christian Grothoff <grothoff@taler.net> +Özgür Kesim <oec-taler@kesim.org> Benedikt Mueller @@ -1,3 +1,9 @@ +Sat Nov 5 11:32:45 AM CET 2022 + Added support for P2P payments. + Added support for explicit reserve lifetime control. + Added support for age restrictions. + Releasing GNU Taler Exchange 0.9.0. -CG + Fri 03 Sep 2021 07:02:05 PM CEST Add experimental aggregator sharding logic. -CG @@ -13,15 +13,14 @@ spend their digital coins. Naturally, each Merchant is different, but Taler includes code examples to help Merchants integrate Taler as a payment system. -Taler is currently developed by a worldwide group of independent free -software developers and the DECENTRALISE team at Inria Rennes. Taler -is free software and a GNU package (https://www.gnu.org/). +Taler is currently developed by a worldwide group of independent free software +developers and Taler Systems SA. Taler is free software and an official GNU +package (https://www.gnu.org/). -This is an alpha release with a few known bugs, lacking a few -important features, documentation, testing, performance tuning and an -external security audit. However, you can run the code and it largely -works fine. that does not work yet. This package also only includes -the Taler exchange, not the other components of the system. +This is an alpha release with a few known bugs, lacking a few important +features, documentation, testing, performance tuning and an external security +audit. However, you can run the code and it largely works fine. This package +also only includes the Taler exchange, not the other components of the system. Documentation about Taler can be found at https://taler.net/. Our bug tracker is at https://bugs.taler.net/. @@ -43,9 +42,9 @@ Dependencies: These are the direct dependencies for running a Taler exchange: -- GNUnet >= 0.16.0 +- GNUnet >= 0.20.0 - GNU libmicrohttpd >= 0.9.71 -- PostgreSQL >= 13.0 +- PostgreSQL >= 15.0 @@ -63,7 +62,7 @@ src/pq/ -- Postgres-specific utility functions src/exchangedb/ - -- Exchange database backend (with DB-specific plugins) + -- Exchange database backend (with database-specific plugins) src/exchange/ -- taler exchange server @@ -71,71 +70,50 @@ src/exchange/ src/exchange-tools/ -- taler exchange helper programs -src/exchange-lib/ +src/lib/ -- libtalerexchange: C API to issue HTTP requests to exchange src/auditor/ -- tools to generate reports about financial performance and to validate that the exchange has been operating correctly +src/auditordb/ + -- database logic for the auditor component (with database-specific + plugins) + src/benchmark/ -- tool to run performance measurements +src/templating/ + -- logic to generate HTML pages from templates at runtime +src/kyclogic/ + -- core logic and plugins to trigger and manage KYC processes + as required by banking regulation -Getting Started -=============== - -The following steps illustrate how to set up a exchange HTTP server. -They take as a stub for configuring the exchange the content of 'contrib/exchange-template/config/'. - -1) Create a 'test/' directory and copy the stubs in it: - -mkdir -p test/config/ -cp exchange/contrib/exchange-template/config/* test/config/ -cd test/ - -2) Create the exchange's master with the tool 'gnunet-ecc': +src/bank-lib/ + -- bank REST client logic and implementation of an in-memory + RTGS emulator ("fakebank") for testing. -gnunet-ecc -g1 master.priv +src/extensions/ + -- extensions to the core logic of an exchange -3) Edit config/exchange-common.conf by replacing the right value on the line with the -MASTER_PUBLIC_KEY entry with the fresh generated (ASCII version of) master.priv. -This ASCII version is obtained by issuing: +src/json/ + -- helper functions for generating and parsing JSON -gnunet-ecc -p master.priv +src/mhd/ + -- helper functions for interacting with GNU libmicrohttpd -4) Generate other exchange related keys ('denomination' and 'signing' keys), by issuing: +src/curl/ + -- helper functions for interacting with libcurl -taler-exchange-keyup -m master.priv -o auditor.in -5) A exchange needs a database to operate, so the following instructions relate to -how to set up PostgreSQL. On debian, the two packages needed are: - -* postgresql -* postgresql-client - -For other operating systems, please refer to the relevant documentation. - -In this settlement, the exchange will use a database called 'talercheck' and will -run under the username through which 'taler-exchange-httpd' is launched. Thus assuming -that this user is 'demo', we need to create a 'demo' role for postgresql and make -him the owner of 'talercheck' database. - -To perform these administrative tasks we have to impersonate the 'postgres' (by default, -postgres installation assigns privileges to such a user) user, then connect to the running DBMS. -Issue the following: - -su # give your root password -su - postgres -psql # this is the command-line client to the DMBS -# the following lines are SQL -CREATE USER demo; -CREATE DATABASE talercheck OWNER demo; -# quit with CTRL-D +Getting Started +=============== -7) If any previous step has been successful, it is now possbile to start up the -exchange web server (by default it will listen on port 4241); issue: +Please follow the exchange manual you can view after +installing using +$ info taler-exchange -taler-exchange-httpd -d `pwd` # assuming we did not move outside of the 'test' directory +or by visiting https://docs.taler.net/. @@ -1,4 +1,5 @@ #!/bin/sh +# This file is in the public domain. set -eu @@ -7,11 +8,18 @@ if ! git --version >/dev/null; then exit 1 fi +if ! htmlark --version >/dev/null; then + echo "htmlark not installed" + echo "Run 'pip install htmlark'" + exit 1 +fi + echo "$0: Updating submodules" -echo | git submodule update --init +echo | git submodule update --init --force --remote -./contrib/gana.sh +# Generate based on pinned submodule +./contrib/gana-generate.sh # This is more portable than `which' but comes with # the caveat of not(?) properly working on busybox's ash: diff --git a/ci/Containerfile b/ci/Containerfile new file mode 100644 index 00000000..8b079216 --- /dev/null +++ b/ci/Containerfile @@ -0,0 +1,71 @@ +FROM docker.io/library/debian:bookworm + +ENV DEBIAN_FRONTEND=noninteractive + +RUN apt-get update -yqq && \ + apt-get install -yqq \ + autoconf \ + autopoint \ + curl \ + git \ + libcurl4-gnutls-dev \ + libgcrypt-dev \ + libidn11-dev \ + libjansson-dev \ + libmicrohttpd-dev \ + libpq-dev \ + libqrencode-dev \ + libsodium-dev \ + libtool \ + libunistring-dev \ + make \ + pkg-config \ + python3-pip \ + python3-sphinx \ + python3-sphinx-rtd-theme \ + recutils \ + texinfo \ + zlib1g-dev + +# Debian packaging tools +RUN apt-get install -yqq \ + po-debconf \ + build-essential \ + debhelper-compat \ + devscripts + +# Documentation dependencies +RUN apt-get install -yqq \ + doxygen \ + graphviz + +# Test suite dependencies +RUN apt-get install -yqq \ + jq \ + postgresql \ + sudo \ + wget + +# Install Taler (and friends) packages +RUN curl -sS https://deb.taler.net/apt-nightly/taler-bookworm-ci.sources \ + | tee /etc/apt/sources.list.d/taler-bookworm-ci.sources + +RUN echo '\ +Package: * \n\ +Pin: origin "deb.taler.net" \n\ +Pin-Priority: 999' > /etc/apt/preferences.d/taler + +RUN cat /etc/apt/preferences.d/taler && \ + apt-get update -y && \ + apt-get install -y \ + libgnunet-dev \ + libgnunet \ + gnunet \ +&& rm -rf /var/lib/apt/lists/* + + +RUN pip3 install --break-system-packages htmlark + +WORKDIR /workdir + +CMD ["bash", "/workdir/ci/ci.sh"] diff --git a/ci/jobs/0-codespell/config.ini b/ci/jobs/0-codespell/config.ini new file mode 100644 index 00000000..1c52b6a1 --- /dev/null +++ b/ci/jobs/0-codespell/config.ini @@ -0,0 +1,5 @@ +[build] +HALT_ON_FAILURE = False +WARN_ON_FAILURE = True +CONTAINER_BUILD = False +CONTAINER_NAME = nixery.dev/shell/codespell diff --git a/ci/jobs/0-codespell/dictionary.txt b/ci/jobs/0-codespell/dictionary.txt new file mode 100644 index 00000000..b4d64334 --- /dev/null +++ b/ci/jobs/0-codespell/dictionary.txt @@ -0,0 +1,44 @@ +# List of "words" that codespell should ignore in our sources. +# +# Note: The word sensitivity depends on how the to-be-ignored word is +# spelled in codespell_lib/data/dictionary.txt. F.e. if there is a word +# 'foo' and you add 'Foo' _here_, codespell will continue to complain +# about 'Foo'. +# +BRE +ND +Nd +TE +TEH +UPDATEing +WAN +aci +acn +ba +bre +cant +complet +doas +ect +ehr +fo +hel +ifset +ist +keypair +nd +onl +openin +ot +ser +sie +som +sover +te +te +teh +tha +ths +updateing +wan +wih diff --git a/ci/jobs/0-codespell/job.sh b/ci/jobs/0-codespell/job.sh new file mode 100755 index 00000000..58bd07b5 --- /dev/null +++ b/ci/jobs/0-codespell/job.sh @@ -0,0 +1,6 @@ +#!/bin/bash +set -exuo pipefail + +job_dir=$(dirname "${BASH_SOURCE[0]}") + +codespell -I "${job_dir}"/dictionary.txt -S "*.bib,*.bst,*.cls,*.json,*.png,*.svg,*.wav,*.gz,*/templating/test?/**,**/auditor/*.sql,**/templating/mustach**,*.fees,*key,*.tag,*.info,*.latexmkrc,*.ecc,*.jpg,*.zkey,*.sqlite,*/contrib/hellos/**,*/vpn/tests/**,*.priv,*.file,*.tgz,*.woff,*.gif,*.odt,*.fee,*.deflate,*.dat,*.jpeg,*.eps,*.odg,*/m4/ax_lib_postgresql.m4,*/m4/libgcrypt.m4,*.rpath,config.status,ABOUT-NLS,*/doc/texinfo.tex,*.PNG,*.??.json,*.docx,*.ods,*.doc,*.docx,*.xcf,*.xlsx,*.ecc,*.ttf,*.woff2,*.eot,*.ttf,*.eot,*.mp4,*.pptx,*.epgz,*.min.js,**/*.map,**/fonts/**,*.pack.js,*.po,*.bbl,*/afl-tests/*,*/.git/**,*.pdf,*.epub,**/signing-key.asc,**/pnpm-lock.yaml,**/*.svg,**/*.cls,**/rfc.bib,**/*.bst,*/cbdc-es.tex,*/cbdc-it.tex,**/ExchangeSelection/example.ts,*/testcurl/test_tricky.c,*/i18n/strings.ts,*/src/anastasis-data.ts,**/doc/flows/main.de.tex" diff --git a/ci/jobs/1-build/build.sh b/ci/jobs/1-build/build.sh new file mode 100755 index 00000000..b1137429 --- /dev/null +++ b/ci/jobs/1-build/build.sh @@ -0,0 +1,9 @@ +#!/bin/bash +set -exuo pipefail + +./bootstrap +./configure CFLAGS="-ggdb -O0" \ + --enable-logging=verbose \ + --disable-doc + +make diff --git a/ci/jobs/1-build/job.sh b/ci/jobs/1-build/job.sh new file mode 100755 index 00000000..8d79902c --- /dev/null +++ b/ci/jobs/1-build/job.sh @@ -0,0 +1,6 @@ +#!/bin/bash +set -exuo pipefail + +job_dir=$(dirname "${BASH_SOURCE[0]}") + +"${job_dir}"/build.sh diff --git a/ci/jobs/2-test/job.sh b/ci/jobs/2-test/job.sh new file mode 100755 index 00000000..bfb24e33 --- /dev/null +++ b/ci/jobs/2-test/job.sh @@ -0,0 +1,6 @@ +#!/bin/bash +set -exuo pipefail + +job_dir=$(dirname "${BASH_SOURCE[0]}") + +"${job_dir}"/test.sh diff --git a/ci/jobs/2-test/test.sh b/ci/jobs/2-test/test.sh new file mode 100755 index 00000000..39fca5c1 --- /dev/null +++ b/ci/jobs/2-test/test.sh @@ -0,0 +1,37 @@ +#!/bin/bash +set -evu + +./bootstrap +./configure CFLAGS="-ggdb -O0" \ + --enable-logging=verbose \ + --disable-doc +make +make install + +sudo -u postgres /usr/lib/postgresql/15/bin/postgres -D /etc/postgresql/15/main -h localhost -p 5432 & +sleep 10 +sudo -u postgres createuser -p 5432 root +sudo -u postgres createdb -p 5432 -O root talercheck + +check_command() +{ + # Set LD_LIBRARY_PATH so tests can find the installed libs + LD_LIBRARY_PATH=/usr/local/lib PGPORT=5432 make check +} + +print_logs() +{ + for i in src/*/test-suite.log + do + for FAILURE in $(grep '^FAIL:' ${i} | cut -d' ' -f2) + do + echo "Printing ${FAILURE}.log" + tail "$(dirname $i)/${FAILURE}.log" + done + done +} + +if ! check_command ; then + print_logs + exit 1 +fi diff --git a/ci/jobs/3-docs/docs.sh b/ci/jobs/3-docs/docs.sh new file mode 100755 index 00000000..fe2b9687 --- /dev/null +++ b/ci/jobs/3-docs/docs.sh @@ -0,0 +1,11 @@ +#!/bin/bash +set -exuo pipefail + +./bootstrap +./configure --enable-only-doc + +pushd ./doc/doxygen/ + +make full + +popd diff --git a/ci/jobs/3-docs/job.sh b/ci/jobs/3-docs/job.sh new file mode 100755 index 00000000..a72bca4b --- /dev/null +++ b/ci/jobs/3-docs/job.sh @@ -0,0 +1,6 @@ +#!/bin/bash +set -exuo pipefail + +job_dir=$(dirname "${BASH_SOURCE[0]}") + +"${job_dir}"/docs.sh diff --git a/ci/jobs/4-deb-package/install-fix.patch b/ci/jobs/4-deb-package/install-fix.patch new file mode 100644 index 00000000..8334c5a7 --- /dev/null +++ b/ci/jobs/4-deb-package/install-fix.patch @@ -0,0 +1,13 @@ +diff --git a/debian/taler-exchange.install b/debian/taler-exchange.install +index 631c270b..072c6231 100644 +--- a/debian/taler-exchange.install ++++ b/debian/taler-exchange.install +@@ -36,6 +36,6 @@ usr/share/taler/exchange/templates/*.must + debian/etc-taler-exchange/* etc/ + + # Terms of service / privacy policy templates +-usr/share/taler/exchange/*.rst ++#usr/share/taler/exchange/terms/*.rst + # Translations of ToS/PP +-usr/share/taler/exchange/locale/*/LC_MESSAGES/*.po ++#usr/share/taler/exchange/terms/locale/*/LC_MESSAGES/*.po diff --git a/ci/jobs/4-deb-package/job.sh b/ci/jobs/4-deb-package/job.sh new file mode 100755 index 00000000..dc78cdf2 --- /dev/null +++ b/ci/jobs/4-deb-package/job.sh @@ -0,0 +1,24 @@ +#!/bin/bash +set -exuo pipefail +# This file is in the public domain. +# Helper script to build the latest DEB packages in the container. + +unset LD_LIBRARY_PATH + + +git apply ./ci/jobs/2-deb-package/install-fix.patch + +# Get current version from debian/control file. +DEB_VERSION=$(dpkg-parsechangelog -S Version) + +# Install build-time dependencies. +mk-build-deps --install --tool='apt-get -o Debug::pkgProblemResolver=yes --no-install-recommends --yes' debian/control + +# We do a sparse checkout, so we need to hint +# the version to the build system. +echo $DEB_VERSION > .version +./bootstrap +dpkg-buildpackage -rfakeroot -b -uc -us + +ls ../*.deb +mv ../*.deb /artifacts/ diff --git a/configure.ac b/configure.ac index bbb0fabf..de81cc87 100644 --- a/configure.ac +++ b/configure.ac @@ -2,7 +2,7 @@ # Process this file with autoconf to produce a configure script. # # This file is part of TALER -# Copyright (C) 2014-2021 Taler Systems SA +# Copyright (C) 2014-2023 Taler Systems SA # # 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 @@ -17,7 +17,7 @@ # # AC_PREREQ([2.69]) -AC_INIT([taler-exchange],[0.8.5],[taler-bug@gnunet.org]) +AC_INIT([taler-exchange],[0.9.3],[taler-bug@gnunet.org]) AC_CONFIG_AUX_DIR([build-aux]) AC_CONFIG_SRCDIR([src/util/util.c]) AC_CONFIG_HEADERS([taler_config.h]) @@ -63,6 +63,13 @@ AS_IF([test "x$doc_only" != xyes],[ # Force some CFLAGS CFLAGS="-Wall -Wno-address-of-packed-member $CFLAGS" +TALER_LIB_LDFLAGS="-export-dynamic -no-undefined" +TALER_PLUGIN_LDFLAGS="-export-dynamic -avoid-version -module -no-undefined" + +AC_SUBST(TALER_LIB_LDFLAGS) +AC_SUBST(TALER_PLUGIN_LDFLAGS) + + # Checks for header files. AC_CHECK_HEADERS([stdint.h stdlib.h string.h unistd.h sys/socket.h sys/un.h netinet/in.h netinet/ip.h]) @@ -76,6 +83,7 @@ AC_DEFINE_UNQUOTED([NEED_LIBGCRYPT_VERSION], ["$need_libgcrypt_version"], AM_PATH_LIBGCRYPT([$need_libgcrypt_version]) + # should expensive tests be run? AC_MSG_CHECKING(whether to run expensive tests) AC_ARG_ENABLE([expensivetests], @@ -133,20 +141,12 @@ AS_CASE([$with_gnunet], [no], [AC_MSG_ERROR([--with-gnunet is required])], [LDFLAGS="-L$with_gnunet/lib $LDFLAGS" CPPFLAGS="-I$with_gnunet/include $CPPFLAGS"]) -AC_CHECK_HEADERS([gnunet/platform.h gnunet/gnunet_util_lib.h], - [AC_CHECK_LIB([gnunetutil], [GNUNET_SCHEDULER_run], libgnunetutil=1)], - [], [#ifdef HAVE_GNUNET_PLATFORM_H - #include <gnunet/platform.h> - #endif - #include <gnunet/gnunet_common.h> - #if GNUNET_UTIL_VERSION < 0x00A0104 - #fail libgnunetutil is too old - #endif]) +AC_CHECK_HEADERS([gnunet/gnunet_util_lib.h], + [AC_CHECK_LIB([gnunetutil], [GNUNET_SCHEDULER_run], libgnunetutil=1)]) AS_IF([test $libgnunetutil != 1], [AC_MSG_ERROR([[ *** -*** You need libgnunetutil > 0.14.0 to build this program. -*** (Yes, ">", libgnunetutil 0.14.0 is NOT enough.) +*** You need libgnunetutil >= 0.20.0 to build this program. *** This library is part of GNUnet, available at *** https://gnunet.org *** ]])]) @@ -165,11 +165,8 @@ AS_CASE([$with_gnunet], [no], [AC_MSG_ERROR([--with-gnunet is required])], [LDFLAGS="-L$with_gnunet/lib $LDFLAGS" CPPFLAGS="-I$with_gnunet/include $CPPFLAGS"]) -AC_CHECK_HEADERS([gnunet/platform.h gnunet/gnunet_json_lib.h], - [AC_CHECK_LIB([gnunetjson], [GNUNET_JSON_parse], libgnunetjson=1)], - [], [#ifdef HAVE_GNUNET_PLATFORM_H - #include <gnunet/platform.h> - #endif]) +AC_CHECK_HEADERS([gnunet/gnunet_json_lib.h], + [AC_CHECK_LIB([gnunetjson], [GNUNET_JSON_parse], libgnunetjson=1)]) AS_IF([test $libgnunetjson != 1], [AC_MSG_ERROR([[ *** @@ -231,11 +228,8 @@ AS_CASE([$with_gnunet], [no], [AC_MSG_ERROR([--with-gnunet is required])], [LDFLAGS="-L$with_gnunet/lib $LDFLAGS" CPPFLAGS="-I$with_gnunet/include $CPPFLAGS"]) -AC_CHECK_HEADERS([gnunet/platform.h gnunet/gnunet_curl_lib.h], - [AC_CHECK_LIB([gnunetcurl], [GNUNET_CURL_get_select_info], libgnunetcurl=1)], - [], [#ifdef HAVE_GNUNET_PLATFORM_H - #include <gnunet/platform.h> - #endif]) +AC_CHECK_HEADERS([gnunet/gnunet_curl_lib.h], + [AC_CHECK_LIB([gnunetcurl], [GNUNET_CURL_get_select_info], libgnunetcurl=1)]) AS_IF([test $libgnunetcurl != 1], [AC_MSG_ERROR([[ *** @@ -250,6 +244,21 @@ CFLAGS=$CFLAGS_SAVE LDFLAGS=$LDFLAGS_SAVE LIBS=$LIBS_SAVE +# test for postgres +AX_LIB_POSTGRESQL([15.0]) +AS_IF([test "x$found_postgresql" = "xyes"], + [SAVE_CPPFLAGS="$CPPFLAGS" + CPPFLAGS="$POSTGRES_CPPFLAGS $CPPFLAGS" + AC_CHECK_HEADERS([libpq-fe.h], [postgres=1], [postgres=0])]) +AS_IF([test "x$postgres" != "x1"], + [AC_MSG_ERROR([[ +*** +*** You need libpq(-dev) >= 15.0 to build this program. +*** ]])]) +AM_CONDITIONAL([HAVE_POSTGRESQL], [test "x$postgres" = "x1"]) +AC_DEFINE_UNQUOTED([HAVE_POSTGRESQL], [$postgres], + [Define to 1 if Postgres is available]) + # Check for GNUnet's libgnunetpq. libgnunetpq=0 AC_MSG_CHECKING([for libgnunetpq]) @@ -262,30 +271,28 @@ AS_CASE([$with_gnunet], [yes], [], [no], [AC_MSG_ERROR([--with-gnunet is required])], [LDFLAGS="-L$with_gnunet/lib $LDFLAGS" - CPPFLAGS="-I$with_gnunet/include $CPPFLAGS"]) -AC_CHECK_HEADERS([gnunet/platform.h gnunet/gnunet_pq_lib.h], - [AC_CHECK_LIB([gnunetpq], [GNUNET_PQ_result_spec_string], libgnunetpq=1)], - [], [#ifdef HAVE_GNUNET_PLATFORM_H - #include <gnunet/platform.h> - #endif]) + CPPFLAGS="-I$with_gnunet/include ${CPPFLAGS}"]) +CPPFLAGS="${CPPFLAGS} ${POSTGRESQL_CPPFLAGS}" +AC_CHECK_HEADERS([gnunet/gnunet_pq_lib.h], + [AC_CHECK_LIB([gnunetpq], [GNUNET_PQ_result_spec_array_string], libgnunetpq=1)]) AS_IF([test $libgnunetpq != 1], [AC_MSG_ERROR([[ *** -*** You need libgnunetpq to build this program. +*** You need libgnunetpq version >= 4.0.0 to build this program. *** Make sure you have Postgres installed while *** building GNUnet (and that your GNUnet version *** is recent!) *** ]])]) +CFLAGS_SAVE=$CFLAGS +LDFLAGS_SAVE=$LDFLAGS +LIBS_SAVE="$LIBS" # Check for GNUnet's libgnunetsq libgnunetsq=0 AC_MSG_CHECKING([for libgnunetsq]) AC_CHECK_HEADERS([gnunet/gnunet_sq_lib.h], - [AC_CHECK_LIB([gnunetsq], [GNUNET_SQ_result_spec_string], libgnunetsq=1)], - [], [#ifdef HAVE_GNUNET_PLATFORM_H - #include <gnunet/platform.h> - #endif]) + [AC_CHECK_LIB([gnunetsq], [GNUNET_SQ_result_spec_string], libgnunetsq=1)]) # check for libmicrohttpd @@ -324,22 +331,6 @@ AS_IF([test $jansson = 0], *** ]])]) -# test for postgres -AX_LIB_POSTGRESQL([13.0]) -AS_IF([test "x$found_postgresql" = "xyes"],[postgres=true]) - -TALER_LIB_LDFLAGS="-export-dynamic -no-undefined" -TALER_PLUGIN_LDFLAGS="-export-dynamic -avoid-version -module -no-undefined" - -AC_SUBST(TALER_LIB_LDFLAGS) -AC_SUBST(TALER_PLUGIN_LDFLAGS) - -CFLAGS_SAVE=$CFLAGS -LDFLAGS_SAVE=$LDFLAGS -LIBS_SAVE="$LIBS" - - -AM_CONDITIONAL(HAVE_POSTGRESQL, test x$postgres = xtrue) CFLAGS=$CFLAGS_SAVE LDFLAGS=$LDFLAGS_SAVE @@ -389,10 +380,7 @@ AS_CASE([$with_twister], CPPFLAGS="-I$with_twister/include $CPPFLAGS"]) AC_CHECK_HEADERS([taler/taler_twister_service.h], - [AC_CHECK_LIB([talertwister], [TALER_TWISTER_connect], talertwister=1)], - [], [#ifdef HAVE_GNUNET_PLATFORM_H - #include <gnunet/platform.h> - #endif]) + [AC_CHECK_LIB([talertwister], [TALER_TWISTER_connect], talertwister=1)]) AM_CONDITIONAL(HAVE_TWISTER, test x$talertwister = x1) # should developer logic be compiled (not-for-production code)? @@ -409,6 +397,11 @@ AS_IF([test "x$enableval" = "xno"], [enable_dev=0]) AC_CHECK_DECL([MHD_OPTION_NOTIFY_CONNECTION],,[enable_dev=0],[[#include <microhttpd.h>]]) AC_DEFINE_UNQUOTED([HAVE_DEVELOPER],[$enable_dev],[1 if developer logic is enabled, 0 otherwise]) +AC_PATH_PROG([JQ], [jq], [no]) +if test "$JQ" = "no"; then + AC_MSG_ERROR([jq is required but not found. Please install jq.]) +fi + # Adam shostack suggests the following for Windows: @@ -462,7 +455,7 @@ AC_MSG_CHECKING(for source being under a VCS) git_version= AS_IF([test ! "X$gitcommand" = "X"], [ - git_version=$(cd $srcdir ; git rev-list --full-history --all --abbrev-commit | head -n 1 2>/dev/null) + git_version=$(cd $srcdir ; git rev-list -n 1 --abbrev-commit HEAD 2>/dev/null) ]) AS_IF([test "X$git_version" = "X"], [ @@ -532,6 +525,7 @@ AC_CONFIG_FILES([Makefile src/exchangedb/Makefile src/exchange-tools/Makefile src/extensions/Makefile + src/extensions/age_restriction/Makefile src/lib/Makefile src/kyclogic/Makefile src/testing/Makefile @@ -541,6 +535,7 @@ AC_CONFIG_FILES([Makefile src/mhd/Makefile src/pq/Makefile src/sq/Makefile + src/templating/Makefile src/util/Makefile ]) AC_OUTPUT diff --git a/contrib/.gitignore b/contrib/.gitignore new file mode 100644 index 00000000..aa92d47b --- /dev/null +++ b/contrib/.gitignore @@ -0,0 +1,2 @@ +taler-terms-generator +locale/**/*.pot diff --git a/contrib/Makefile.am b/contrib/Makefile.am index 0d42e1df..09e1dcf9 100644 --- a/contrib/Makefile.am +++ b/contrib/Makefile.am @@ -1,70 +1,63 @@ -SUBDIRS = . +# This file is in the public domain. -# English (en) -tosendir=$(datadir)/taler/exchange/tos/en +SUBDIRS = . -# English (en) -ppendir=$(datadir)/taler/exchange/pp/en +tmplpkgdatadir = $(datadir)/taler/exchange/templates/ +dist_tmplpkgdata_DATA = \ + persona-exchange-unauthorized.en.must \ + persona-load-failure.en.must \ + persona-exchange-unpaid.en.must \ + persona-logic-failure.en.must \ + persona-invalid-response.en.must \ + persona-network-timeout.en.must \ + persona-kyc-failed.en.must \ + persona-provider-failure.en.must + +termsdir=$(datadir)/taler/terms/ +terms_DATA = \ + exchange-tos-v0.rst \ + exchange-tos-bfh-v0.rst \ + exchange-pp-v0.rst + +install-exec-local: + find locale/ -name "*.po" + mkdir -p $(DESTDIR)$(datadir) + cp --parents -r $$(find locale/ -name "*.po") $(DESTDIR)$(datadir) rdatadir=$(datadir)/taler/exchange - -tosen_DATA = \ - tos/en/0.txt \ - tos/en/0.pdf \ - tos/en/0.epub \ - tos/en/0.xml \ - tos/en/0.html - -ppen_DATA = \ - pp/en/0.txt \ - pp/en/0.pdf \ - pp/en/0.epub \ - pp/en/0.xml \ - pp/en/0.html - rdata_DATA = \ auditor-report.tex.j2 bin_SCRIPTS = \ + taler-auditor-dbconfig \ + taler-exchange-dbconfig \ + taler-terms-generator \ taler-bank-manage-testing \ taler-nexus-prepare +edit_script = $(SED) -e 's,%termsdir%,$(termsdir),'g -e 's,%localedir%,$(localedir),'g $(NULL) +taler-terms-generator: taler-terms-generator.in + rm -f $@ $@.tmp && \ + $(edit_script) $< >$@.tmp && \ + chmod a-w+x $@.tmp && \ + mv $@.tmp $@ + +CLEANFILES = \ + taler-terms-generator + EXTRA_DIST = \ - $(bin_SCRIPTS) \ - $(tosen_DATA) \ - $(ppen_DATA) \ - update-tos.sh \ - update-pp.sh \ - gana-update.sh \ + locale/de/LC_MESSAGES/exchange-tos-v0.po \ + taler-bank-manage-testing \ + taler-nexus-prepare \ + taler-terms-generator.in \ + taler-auditor-dbconfig \ + taler-exchange-dbconfig \ + gana-generate.sh \ gana/gnu-taler-error-codes/registry.rec \ gana/gnu-taler-error-codes/Makefile \ - tos/Makefile \ - tos/README \ - tos/tos.rst \ - tos/conf.py \ - tos/locale/de/LC_MESSAGES/tos.po \ - pp/Makefile \ - pp/README \ - pp/pp.rst \ - pp/conf.py \ - pp/locale/de/LC_MESSAGES/pp.po \ + $(terms_DATA) \ $(rdata_DATA) \ coverage.sh \ gnunet.tag \ - microhttpd.tag - -# Change the set of supported languages here. You should -# also update tos'XX'data and EXTRA_DIST accordingly. -TOS_LANGUAGES="en de" -PP_LANGUAGES="en de" - -# Change the terms-of-service version (Etag) to generate here! -# This value should be incremented whenever there is a substantive -# change in the original text (but not for the translations). -TOS_VERSION=0 -PP_VERSION=0 - -update-tos: - VERSION=$(TOS_VERSION) ./update-tos.sh $(TOS_LANGUAGES) -update-pp: - VERSION=$(PP_VERSION) ./update-pp.sh $(PP_LANGUAGES) + microhttpd.tag \ + packages diff --git a/contrib/auditor-report.tex.j2 b/contrib/auditor-report.tex.j2 index cfd613a0..bb645520 100644 --- a/contrib/auditor-report.tex.j2 +++ b/contrib/auditor-report.tex.j2 @@ -1,5 +1,5 @@ % This file is part of TALER -% Copyright (C) 2016--2019 Taler Systems SA +% Copyright (C) 2016--2023 Taler Systems SA % % TALER 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 @@ -88,12 +88,18 @@ In that time, the auditors processed the following table ranges: & {{ reserves.end_ppr_reserve_in_serial_id }} \\ \hline Reserves Out (withdraw) & {{ reserves.start_ppr_reserve_out_serial_id }} & {{ reserves.end_ppr_reserve_out_serial_id }} \\ \hline - Reserves Recoup & {{ reserves.start_ppr_reserve_recoup_serial_id }} + Reserves Recoup & {{ reserves.start_ppr_reserve_recoup_serial_id }} & {{ reserves.end_ppr_reserve_recoup_serial_id }} \\ \hline Reserves Close & {{ reserves.start_ppr_reserve_close_serial_id }} & {{ reserves.end_ppr_reserve_close_serial_id }} \\ \hline Aggregation & {{ aggregation.start_ppa_wire_out_serial_id }} & {{ aggregation.end_ppa_wire_out_serial_id }} \\ \hline + Aggregation (wire) & {{ wire.start_pp_last_aggregation_serial_id }} + & {{ wire.end_pp_last_aggregation_serial_id }} \\ \hline + Deposits (wire) & {{ wire.start_pp_last_batch_deposit_id }} + & {{ wire.end_pp_last_batch_deposit_id }} \\ \hline + Reserves Close (wire) & {{ wire.start_pp_reserve_close_id }} + & {{ wire.end_pp_reserve_close_id }} \\ \hline Coin withdraw & {{ coins.start_ppc_withdraw_serial_id }} & {{ coins.end_ppc_withdraw_serial_id }} \\ \hline Coin deposit & {{ coins.start_ppc_deposit_serial_id }} @@ -102,9 +108,9 @@ In that time, the auditors processed the following table ranges: & {{ coins.end_ppc_melt_serial_id }} \\ \hline Coin refund & {{ coins.start_ppc_refund_serial_id }} & {{ coins.end_ppc_refund_serial_id }} \\ \hline - Coin recoup & {{ coins.start_ppc_recoup_serial_id }} + Coin recoup & {{ coins.start_ppc_recoup_serial_id }} & {{ coins.end_ppc_recoup_serial_id }} \\ \hline - Coin recoup refresh & {{ coins.start_ppc_recoup_refresh_serial_id }} + Coin recoup refresh & {{ coins.start_ppc_recoup_refresh_serial_id }} & {{ coins.end_ppc_recoup_refresh_serial_id }} \\ \end{tabular} \end{center} @@ -140,9 +146,9 @@ In that time, the wire auditor processed the following table ranges: \end{center} The total credits to the exchange processed in -this audit run was {\bf {{ wire.total_wire_in }}. +this audit run was {\bf {{ wire.total_wire_in }}}. The total debits initiated by the exchange processed in -this audit run was {\bf {{ wire.total_wire_out }}. +this audit run was {\bf {{ wire.total_wire_out }}}. \section{Operations} @@ -169,9 +175,8 @@ Loss (actualized risk from recoups) is {\bf {{ coins.total_recoup_loss }}}. \noindent -Recoups of non-revoked coins are at -{\bf {{ coins.total_irregular_recoups }}} (coins) -plus {\bf {{ reserves.total_irregular_recoups }}} (reserves). +Losses from irregular reserve operations are at +{\bf {{ reserves.total_irregular_loss }}} (reserves). \section{Income} @@ -207,51 +212,101 @@ load. Small amounts of lag can occur in normal operation. The total amount the exchange currently lags behind in deposits is {\bf {{ wire.total_amount_lag }}}. -Note that some lag is perfectly normal, as tiny amounts that are too small to be wired -are deferred beyond the due date, hoping that additional transfers will push them above -the tiny threshold. Below, we report {\em non-tiny} wire transfers that are lagging behind. +Note that some lag is perfectly normal, as tiny amounts that are too small to +be wired are deferred beyond the due date, hoping that additional transfers +will push them above the tiny threshold. Below, we report {\em non-tiny} wire +transfers that are lagging behind. % Table generation tested by testcase #1 in test-auditor.sh {% if wire.lag_details|length() == 0 %} {\bf No non-tiny wire transfers that are lagging behind detected.} {% else %} - \begin{longtable}{l|r|r|c} - {\bf Deadline} & {\bf Amount} & {\bf Row} & {\bf Claimed done} \\ - \multicolumn{4}{l}{\bf Coin} \\ - \multicolumn{4}{l}{\bf Target account} \\ \hline \hline + \begin{longtable}{l|r|r} + {\bf Deadline} & {\bf Amount} & {\bf Target account} \\ \hline \hline \endfirsthead - {\bf Deadline} & {\bf Amount} & {\bf Row} & {\bf Claimed done} \\ - \multicolumn{4}{l}{\bf Coin} \\ - \multicolumn{4}{l}{\bf Target account} \\ \hline \hline + {\bf Deadline} & {\bf Amount} & {\bf Target account} \\ \hline \hline \endhead \hline \hline - {\bf Deadline} & {\bf Amount} & {\bf Row} & {\bf Claimed done} \\ - \multicolumn{4}{l}{\bf Coin} \\ - \multicolumn{4}{l}{\bf Target account} \\ + {\bf Deadline} & {\bf Amount} & {\bf Target account} \\ \endfoot \hline \hline - {\bf Deadline} & {\bf Amount} & {\bf Row} & {\bf Claimed done} \\ - \multicolumn{4}{l}{\bf Coin} \\ - \multicolumn{4}{l}{\bf Target account} \\ + {\bf Deadline} & {\bf Amount} & {\bf Target account} \\ \caption{Lagging non-tiny transactions.} \label{table:lag} \endlastfoot {% for item in wire.lag_details %} {{ item.deadline }} & + {{ item.total_amount }} & + {\tt + {% if 'account' in item %} + {{ item.account }} + {% endif %} + } \\ \hline +{% endfor %} + \end{longtable} +{% endif %} + + + +{% if wire.lag_kyc_details|length() == 0 %} + {\bf No KYC-blocked non-tiny wire transfers that are lagging behind detected.} +{% else %} + \begin{longtable}{l|r|c|r} + {\bf Deadline} & {\bf Amount} & {\bf Requirement} & {\bf Target account} \\ \hline \hline +\endfirsthead + {\bf Deadline} & {\bf Amount} & {\bf Requirement} & {\bf Target account} \\ \hline \hline +\endhead + \hline \hline + {\bf Deadline} & {\bf Amount} & {\bf Requirement} & {\bf Target account} \\ +\endfoot + \hline \hline + {\bf Deadline} & {\bf Amount} & {\bf Requirement} & {\bf Target account} \\ + \caption{Lagging non-tiny transactions due to missing KYC data.} + \label{table:lag} +\endlastfoot +{% for item in wire.lag_kyc_details %} + {{ item.deadline }} & {{ item.amount }} & - {{ item.row }} & -{% if 'claimed_done' in item %} - {{ item.claimed_done }} + {{ item.kyc_pending }} & + {\tt + {% if 'account' in item %} + {{ item.account }} + {% endif %} + } \\ \hline +{% endfor %} + \end{longtable} +{% endif %} + + +{% if wire.lag_aml_details|length() == 0 %} + {\bf No non-tiny wire transfers that are lagging behind due to AML detected.} {% else %} - N/A -{% endif %} \\ -\nopagebreak - \multicolumn{4}{l}{ {\tt \small {{ item.coin_pub }} } } \\ + \begin{longtable}{l|r|r} + {\bf Deadline} & {\bf Amount}/{\bf Limit} & {\bf AML status} \\ + \multicolumn{3}{l}{\bf Target account} \\ \hline \hline +\endfirsthead + {\bf Deadline} & {\bf Amount}/{\bf Limit} & {\bf AML status} \\ + \multicolumn{4}{l}{\bf Target account} \\ \hline \hline +\endhead + \hline \hline + {\bf Deadline} & {\bf Amount}/{\bf Limit} & {\bf AML status} \\ + \multicolumn{4}{l}{\bf Target account} \\ +\endfoot + \hline \hline + {\bf Deadline} & {\bf Amount}/{\bf Limit} & {\bf AML status} \\ + \multicolumn{4}{l}{\bf Target account} \\ + \caption{Lagging non-tiny transactions due to AML decisions.} + \label{table:lag} +\endlastfoot +{% for item in wire.lag_aml_details %} + {{ item.deadline }} & + {{ item.amount }}/{{ item.aml_limit }} & + {{ item.aml_status }} & \nopagebreak \multicolumn{4}{l}{ {\tt - {% if 'payto_uri' in item.account %} - {{ item.account.payto_uri }} + {% if 'account' in item %} + {{ item.account }} {% endif %} } } \\ \hline {% endfor %} @@ -318,8 +373,8 @@ confirmations to the auditor directly, so if the exchange is slow at synchronizing its database with the auditor, some deposit confirmations may be known at the auditor only directly. However, any delta not accounted for by database synchronization delays is an -indicator of a malicious exchange (or online singing key compromise) -and should be answered by revoking the exchange's online siging keys. +indicator of a malicious exchange (or online signing key compromise) +and should be answered by revoking the exchange's online signing keys. % TODO: maybe reference PhD thesis on this? The total amount the exchange currently lags behind is @@ -613,7 +668,7 @@ compromise resulting in proportional financial losses to the exchange. \endfoot \hline {\bf Total loss} & - {{ reserves.total_loss_balance_insufficient }} \\ + {{ reserves.total_irregular_loss }} \\ \caption{Reserves with withdrawals higher than reserve funding.} \label{table:reserve:balance_insufficient} \endlastfoot @@ -782,7 +837,7 @@ invalid and the amount involved should be considered lost. \endfoot \hline \multicolumn{2}{l}{ {\bf Total losses} } & - {\bf {{ coins.total_bad_sig_loss}} } \\ + {\bf {{ coins.irregular_loss}} } \\ \caption{Losses from operations performed on coins without proper signatures.} \label{table:bad_signature_losses} \endlastfoot @@ -901,7 +956,7 @@ actually received in some reserves. {% endif %} -\subsection{Missattributed incoming wire transfers} +\subsection{Misattributed incoming wire transfers} This section lists cases where the sender account record of an incoming wire transfer differs between the exchange and the bank. @@ -911,7 +966,7 @@ account. % Table generation tested by testcase #9 in test-auditor.sh -{% if wire.missattribution_in_inconsistencies|length() == 0 %} +{% if wire.misattribution_in_inconsistencies|length() == 0 %} {\bf All incoming wire transfer sender accounts matched up.} {% else %} \begin{longtable}{p{8.5cm}|r} @@ -926,11 +981,11 @@ account. \endfoot \hline {\bf Total amount} & - {{ wire.total_missattribution_in}} \\ + {{ wire.total_misattribution_in}} \\ \caption{Incoming wire transfer sender accounts not matching up.} \label{table:wire_in:sender_account_inconsistencies} \endlastfoot -{% for item in wire.missattribution_in_inconsistencies %} +{% for item in wire.misattribution_in_inconsistencies %} {\tt \small \truncate{8.3cm}{ {{ item.reserve_pub }} } } & {{ item.amount }} \\ \hline {% endfor %} @@ -942,7 +997,7 @@ account. \subsection{Actual outgoing wire transfers} \label{sec:wire_check_out} -This section highlights cases where the exchange missbehaved +This section highlights cases where the exchange misbehaved with respect to outgoing wire transfers. % Table generation tested by testcase #11 in test-auditor.sh @@ -988,10 +1043,10 @@ with respect to outgoing wire transfers. \subsection{Denominations without auditor signature} This section highlights denomination keys that lack a proper -signature from the {\t taler-auditor-offline} tool. This may be +signature from the {\tt taler-auditor-offline} tool. This may be legitimate, say in case where the auditor's involvement in the exchange business is ending and a new auditor is responsible for -future denomnations. So this must be read with a keen eye on the +future denominations. So this must be read with a keen eye on the business situation. @@ -1107,7 +1162,7 @@ have a clear financial impact. {{ item.row }} & {{ item.diagnostic }} \\ \nopagebreak - \multicolumn{3}{l}{ {\tiny {\tt \truncate{\textwidth}{ {{ item.wire_offset_hash }} } } } } \\ \hline + \multicolumn{3}{l}{ {\tiny {\tt \truncate{\textwidth}{ {{ item.id }} } } } } \\ \hline {% endfor %} \end{longtable} {% endif %} diff --git a/contrib/pp/pp.rst b/contrib/exchange-pp-v0.rst index e6d003d8..e6d003d8 100644 --- a/contrib/pp/pp.rst +++ b/contrib/exchange-pp-v0.rst diff --git a/contrib/tos/bfh.rst b/contrib/exchange-tos-bfh-v0.rst index 85f041c3..85f041c3 100644 --- a/contrib/tos/bfh.rst +++ b/contrib/exchange-tos-bfh-v0.rst diff --git a/contrib/tos/tos.rst b/contrib/exchange-tos-v0.rst index 2509b87b..2509b87b 100644 --- a/contrib/tos/tos.rst +++ b/contrib/exchange-tos-v0.rst diff --git a/contrib/gana b/contrib/gana -Subproject 2075d42719b00f2763fe71d327ef4b9fd23be47 +Subproject 64244e85f34d3090ab60ab07c33d8c0de29ab16 diff --git a/contrib/gana-update.sh b/contrib/gana-generate.sh index b20bbaa1..4679e200 100755 --- a/contrib/gana-update.sh +++ b/contrib/gana-generate.sh @@ -1,4 +1,6 @@ #!/bin/sh +# This file is in the public domain. +# # Helper script to recompute error codes based on submodule # Run from exchange/ main directory. set -eu diff --git a/contrib/gana.sh b/contrib/gana-latest.sh index 30dc7994..e92761ac 100755 --- a/contrib/gana.sh +++ b/contrib/gana-latest.sh @@ -7,4 +7,4 @@ cd contrib/gana git pull origin master cd ../.. -exec ./contrib/gana-update.sh +exec ./contrib/gana-generate.sh diff --git a/contrib/gnunet.tag b/contrib/gnunet.tag index f270ba5e..bdc112a1 100644 --- a/contrib/gnunet.tag +++ b/contrib/gnunet.tag @@ -31,7 +31,13 @@ <member kind="define"> <type>#define</type> <name>GNUNET_TIME_UNIT_FOREVER_ABS</name> - <anchorfile>gnunet_util_lib.h</anchorfile> + <anchorfile>gnunet_time_lib.h</anchorfile> + <arglist></arglist> + </member> + <member kind="define"> + <type>#define</type> + <name>GNUNET_TIME_UNIT_ZERO_ABS</name> + <anchorfile>gnunet_time_lib.h</anchorfile> <arglist></arglist> </member> </compound> diff --git a/contrib/locale/de/LC_MESSAGES/exchange-tos-v0.po b/contrib/locale/de/LC_MESSAGES/exchange-tos-v0.po new file mode 100644 index 00000000..69679e94 --- /dev/null +++ b/contrib/locale/de/LC_MESSAGES/exchange-tos-v0.po @@ -0,0 +1,403 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) 2014-2023 Taler Systems SA (GPLv3+ or GFDL 1.3+) +# This file is distributed under the same license as the tos-v0 package. +# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: tos-v0 tos-v0\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2023-07-20 15:38+0200\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" +"Language-Team: LANGUAGE <LL@li.org>\n" +"Language: de\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" + +msgid "Terms Of Service" +msgstr "Allgemeine Geschaeftsbedingungen" + +msgid "Last Updated: 12.4.2019" +msgstr "" + +msgid "" +"Welcome! Taler Systems SA (“we,” “our,” or “us”) provides a payment service " +"through our Internet presence (collectively the “Services”). Before using " +"our Services, please read the Terms of Service (the “Terms” or the " +"“Agreement”) carefully." +msgstr "" + +msgid "Overview" +msgstr "" + +msgid "" +"This section provides a brief summary of the highlights of this Agreement. " +"Please note that when you accept this Agreement, you are accepting all of " +"the terms and conditions and not just this section. We and possibly other " +"third parties provide Internet services which interact with the Taler " +"Wallet’s self-hosted personal payment application. When using the Taler " +"Wallet to interact with our Services, you are agreeing to our Terms, so " +"please read carefully." +msgstr "" + +msgid "Highlights:" +msgstr "" + +msgid "" +"You are responsible for keeping the data in your Taler Wallet at all times " +"under your control. Any losses arising from you not being in control of your " +"private information are your problem." +msgstr "" + +msgid "" +"We will try to transfer funds we hold in escrow for our users to any legal " +"recipient to the best of our ability within the limitations of the law and " +"our implementation. However, the Services offered today are highly " +"experimental and the set of recipients of funds is severely restricted." +msgstr "" + +msgid "" +"For our Services, we may charge transaction fees. The specific fee structure " +"is provided based on the Taler protocol and should be shown to you when you " +"withdraw electronic coins using a Taler Wallet. You agree and understand " +"that the Taler protocol allows for the fee structure to change." +msgstr "" + +msgid "" +"You agree to not intentionally overwhelm our systems with requests and " +"follow responsible disclosure if you find security issues in our services." +msgstr "" + +msgid "" +"We cannot be held accountable for our Services not being available due to " +"circumstances beyond our control. If we modify or terminate our services, we " +"will try to give you the opportunity to recover your funds. However, given " +"the experimental state of the Services today, this may not be possible. You " +"are strongly advised to limit your use of the Service to small-scale " +"experiments expecting total loss of all funds." +msgstr "" + +msgid "" +"These terms outline approved uses of our Services. The Services and these " +"Terms are still at an experimental stage. If you have any questions or " +"comments related to this Agreement, please send us a message to legal@taler-" +"systems.com. If you do not agree to this Agreement, you must not use our " +"Services." +msgstr "" + +msgid "How you accept this policy" +msgstr "" + +msgid "" +"By sending funds to us (to top-up your Taler Wallet), you acknowledge that " +"you have read, understood, and agreed to these Terms. We reserve the right " +"to change these Terms at any time. If you disagree with the change, we may " +"in the future offer you with an easy option to recover your unspent funds. " +"However, in the current experimental period you acknowledge that this " +"feature is not yet available, resulting in your funds being lost unless you " +"accept the new Terms. If you continue to use our Services other than to " +"recover your unspent funds, your continued use of our Services following any " +"such change will signify your acceptance to be bound by the then current " +"Terms. Please check the effective date above to determine if there have been " +"any changes since you have last reviewed these Terms." +msgstr "" + +msgid "Services" +msgstr "" + +msgid "" +"We will try to transfer funds that we hold in escrow for our users to any " +"legal recipient to the best of our ability and within the limitations of the " +"law and our implementation. However, the Services offered today are highly " +"experimental and the set of recipients of funds is severely restricted. The " +"Taler Wallet can be loaded by exchanging fiat currencies against electronic " +"coins. We are providing this exchange service. Once your Taler Wallet is " +"loaded with electronic coins they can be spent for purchases if the seller " +"is accepting Taler as a means of payment. We are not guaranteeing that any " +"seller is accepting Taler at all or a particular seller. The seller or " +"recipient of deposits of electronic coins must specify the target account, " +"as per the design of the Taler protocol. They are responsible for following " +"the protocol and specifying the correct bank account, and are solely liable " +"for any losses that may arise from specifying the wrong account. We will " +"allow the government to link wire transfers to the underlying contract hash. " +"It is the responsibility of recipients to preserve the full contracts and to " +"pay whatever taxes and charges may be applicable. Technical issues may lead " +"to situations where we are unable to make transfers at all or lead to " +"incorrect transfers that cannot be reversed. We will only refuse to execute " +"transfers if the transfers are prohibited by a competent legal authority and " +"we are ordered to do so." +msgstr "" + +msgid "" +"When using our Services, you agree to not take any action that intentionally " +"imposes an unreasonable load on our infrastructure. If you find security " +"problems in our Services, you agree to first report them to security@taler-" +"systems.com and grant us the right to publish your report. We warrant that " +"we will ourselves publicly disclose any issues reported within 3 months, and " +"that we will not prosecute anyone reporting security issues if they did not " +"exploit the issue beyond a proof-of-concept, and followed the above " +"responsible disclosure practice." +msgstr "" + +msgid "Fees" +msgstr "" + +msgid "" +"You agree to pay the fees for exchanges and withdrawals completed via the " +"Taler Wallet (\"Fees\") as defined by us, which we may change from time to " +"time. With the exception of wire transfer fees, Taler transaction fees are " +"set for any electronic coin at the time of withdrawal and fixed throughout " +"the validity period of the respective electronic coin. Your wallet should " +"obtain and display applicable fees when withdrawing funds. Fees for coins " +"obtained as change may differ from the fees applicable to the original coin. " +"Wire transfer fees that are independent from electronic coins may change " +"annually. You authorize us to charge or deduct applicable fees owed in " +"connection with deposits, exchanges and withdrawals following the rules of " +"the Taler protocol. We reserve the right to provide different types of " +"rewards to users either in the form of discount for our Services or in any " +"other form at our discretion and without prior notice to you." +msgstr "" + +msgid "Eligibility and Financial self-responsibility" +msgstr "" + +msgid "" +"To be eligible to use our Services, you must be able to form legally binding " +"contracts or have the permission of your legal guardian. By using our " +"Services, you represent and warrant that you meet all eligibility " +"requirements that we outline in these Terms." +msgstr "" + +msgid "" +"You will be responsible for maintaining the availability, integrity and " +"confidentiality of the data stored in your wallet. When you setup a Taler " +"Wallet, you are strongly advised to follow the precautionary measures " +"offered by the software to minimize the chances to losse access to or " +"control over your Wallet data. We will not be liable for any loss or damage " +"arising from your failure to comply with this paragraph." +msgstr "" + +msgid "Copyrights and trademarks" +msgstr "" + +msgid "" +"The Taler Wallet is released under the terms of the GNU General Public " +"License (GNU GPL). You have the right to access, use, and share the Taler " +"Wallet, in modified or unmodified form. However, the GPL is a strong " +"copyleft license, which means that any derivative works must be distributed " +"under the same license terms as the original software. If you have any " +"questions, you should review the GNU GPL’s full terms and conditions at " +"https://www.gnu.org/licenses/gpl-3.0.en.html. “Taler” itself is a trademark " +"of Taler Systems SA. You are welcome to use the name in relation to " +"processing payments using the Taler protocol, assuming your use is " +"compatible with an official release from the GNU Project that is not older " +"than two years." +msgstr "" + +msgid "Limitation of liability & disclaimer of warranties" +msgstr "" + +msgid "" +"You understand and agree that we have no control over, and no duty to take " +"any action regarding: Failures, disruptions, errors, or delays in processing " +"that you may experience while using our Services; The risk of failure of " +"hardware, software, and Internet connections; The risk of malicious software " +"being introduced or found in the software underlying the Taler Wallet; The " +"risk that third parties may obtain unauthorized access to information stored " +"within your Taler Wallet, including, but not limited to your Taler Wallet " +"coins or backup encryption keys. You release us from all liability related " +"to any losses, damages, or claims arising from:" +msgstr "" + +msgid "" +"user error such as forgotten passwords, incorrectly constructed transactions;" +msgstr "" + +msgid "server failure or data loss;" +msgstr "" + +msgid "unauthorized access to the Taler Wallet application;" +msgstr "" + +msgid "bugs or other errors in the Taler Wallet software; and" +msgstr "" + +msgid "" +"any unauthorized third party activities, including, but not limited to, the " +"use of viruses, phishing, brute forcing, or other means of attack against " +"the Taler Wallet. We make no representations concerning any Third Party " +"Content contained in or accessed through our Services." +msgstr "" + +msgid "" +"Any other terms, conditions, warranties, or representations associated with " +"such content, are solely between you and such organizations and/or " +"individuals." +msgstr "" + +msgid "" +"To the fullest extent permitted by applicable law, in no event will we or " +"any of our officers, directors, representatives, agents, servants, counsel, " +"employees, consultants, lawyers, and other personnel authorized to act, " +"acting, or purporting to act on our behalf (collectively the “Taler " +"Parties”) be liable to you under contract, tort, strict liability, " +"negligence, or any other legal or equitable theory, for:" +msgstr "" + +msgid "" +"any lost profits, data loss, cost of procurement of substitute goods or " +"services, or direct, indirect, incidental, special, punitive, compensatory, " +"or consequential damages of any kind whatsoever resulting from:" +msgstr "" + +msgid "your use of, or conduct in connection with, our services;" +msgstr "" + +msgid "" +"any unauthorized use of your wallet and/or private key due to your failure " +"to maintain the confidentiality of your wallet;" +msgstr "" + +msgid "" +"any interruption or cessation of transmission to or from the services; or" +msgstr "" + +msgid "" +"any bugs, viruses, trojan horses, or the like that are found in the Taler " +"Wallet software or that may be transmitted to or through our services by any " +"third party (regardless of the source of origination), or" +msgstr "" + +msgid "any direct damages." +msgstr "" + +msgid "" +"These limitations apply regardless of legal theory, whether based on tort, " +"strict liability, breach of contract, breach of warranty, or any other legal " +"theory, and whether or not we were advised of the possibility of such " +"damages. Some jurisdictions do not allow the exclusion or limitation of " +"liability for consequential or incidental damages, so the above limitation " +"may not apply to you." +msgstr "" + +msgid "" +"Our services are provided \"as is\" and without warranty of any kind. To the " +"maximum extent permitted by law, we disclaim all representations and " +"warranties, express or implied, relating to the services and underlying " +"software or any content on the services, whether provided or owned by us or " +"by any third party, including without limitation, warranties of " +"merchantability, fitness for a particular purpose, title, non-infringement, " +"freedom from computer virus, and any implied warranties arising from course " +"of dealing, course of performance, or usage in trade, all of which are " +"expressly disclaimed. In addition, we do not represent or warrant that the " +"content accessible via the services is accurate, complete, available, " +"current, free of viruses or other harmful components, or that the results of " +"using the services will meet your requirements. Some states do not allow the " +"disclaimer of implied warranties, so the foregoing disclaimers may not apply " +"to you. This paragraph gives you specific legal rights and you may also have " +"other legal rights that vary from state to state." +msgstr "" + +msgid "Indemnity and Time limitation on claims and Termination" +msgstr "" + +msgid "" +"To the extent permitted by applicable law, you agree to defend, indemnify, " +"and hold harmless the Taler Parties from and against any and all claims, " +"damages, obligations, losses, liabilities, costs or debt, and expenses " +"(including, but not limited to, attorney’s fees) arising from: (a) your use " +"of and access to the Services; (b) any feedback or submissions you provide " +"to us concerning the Taler Wallet; (c) your violation of any term of this " +"Agreement; or (d) your violation of any law, rule, or regulation, or the " +"rights of any third party." +msgstr "" + +msgid "" +"You agree that any claim you may have arising out of or related to your " +"relationship with us must be filed within one year after such claim arises, " +"otherwise, your claim in permanently barred." +msgstr "" + +msgid "" +"In the event of termination concerning your use of our Services, your " +"obligations under this Agreement will still continue." +msgstr "" + +msgid "Discontinuance of services and Force majeure" +msgstr "" + +msgid "" +"We may, in our sole discretion and without cost to you, with or without " +"prior notice, and at any time, modify or discontinue, temporarily or " +"permanently, any portion of our Services. We will use the Taler protocol’s " +"provisions to notify Wallets if our Services are to be discontinued. It is " +"your responsibility to ensure that the Taler Wallet is online at least once " +"every three months to observe these notifications. We shall not be held " +"responsible or liable for any loss of funds in the event that we discontinue " +"or depreciate the Services and your Taler Wallet fails to transfer out the " +"coins within a three months notification period." +msgstr "" + +msgid "" +"We shall not be held liable for any delays, failure in performance, or " +"interruptions of service which result directly or indirectly from any cause " +"or condition beyond our reasonable control, including but not limited to: " +"any delay or failure due to any act of God, act of civil or military " +"authorities, act of terrorism, civil disturbance, war, strike or other labor " +"dispute, fire, interruption in telecommunications or Internet services or " +"network provider services, failure of equipment and/or software, other " +"catastrophe, or any other occurrence which is beyond our reasonable control " +"and shall not affect the validity and enforceability of any remaining " +"provisions." +msgstr "" + +msgid "Governing law, Waivers, Severability and Assignment" +msgstr "" + +msgid "" +"No matter where you’re located, the laws of Switzerland will govern these " +"Terms. If any provisions of these Terms are inconsistent with any applicable " +"law, those provisions will be superseded or modified only to the extent such " +"provisions are inconsistent. The parties agree to submit to the ordinary " +"courts in Zurich, Switzerland for exclusive jurisdiction of any dispute " +"arising out of or related to your use of the Services or your breach of " +"these Terms." +msgstr "" + +msgid "" +"Our failure to exercise or delay in exercising any right, power, or " +"privilege under this Agreement shall not operate as a waiver; nor shall any " +"single or partial exercise of any right, power, or privilege preclude any " +"other or further exercise thereof." +msgstr "" + +msgid "" +"You agree that we may assign any of our rights and/or transfer, sub-" +"contract, or delegate any of our obligations under these Terms." +msgstr "" + +msgid "" +"If it turns out that any part of this Agreement is invalid, void, or for any " +"reason unenforceable, that term will be deemed severable and limited or " +"eliminated to the minimum extent necessary." +msgstr "" + +msgid "" +"This Agreement sets forth the entire understanding and agreement as to the " +"subject matter hereof and supersedes any and all prior discussions, " +"agreements, and understandings of any kind (including, without limitation, " +"any prior versions of this Agreement) and every nature between us. Except as " +"provided for above, any modification to this Agreement must be in writing " +"and must be signed by both parties." +msgstr "" + +msgid "Questions or comments" +msgstr "" + +msgid "" +"We welcome comments, questions, concerns, or suggestions. Please send us a " +"message on our contact page at legal@taler-systems.com." +msgstr "" diff --git a/contrib/microhttpd.tag b/contrib/microhttpd.tag index 4780028d..5156a1a3 100644 --- a/contrib/microhttpd.tag +++ b/contrib/microhttpd.tag @@ -48,6 +48,12 @@ </member> <member kind="define"> <type>#define</type> + <name>MHD_HTTP_CONTENT_TOO_LARGE</name> + <anchorfile>microhttpd.h</anchorfile> + <arglist></arglist> + </member> + <member kind="define"> + <type>#define</type> <name>MHD_HTTP_REQUEST_TIMEOUT</name> <anchorfile>microhttpd.h</anchorfile> <arglist></arglist> @@ -72,6 +78,12 @@ </member> <member kind="define"> <type>#define</type> + <name>MHD_HTTP_NETWORK_AUTHENTICATION_REQUIRED</name> + <anchorfile>microhttpd.h</anchorfile> + <arglist></arglist> + </member> + <member kind="define"> + <type>#define</type> <name>MHD_HTTP_GONE</name> <anchorfile>microhttpd.h</anchorfile> <arglist></arglist> diff --git a/contrib/packages/fedora/etc-libtalerexchange/taler/overrides.conf b/contrib/packages/fedora/etc-libtalerexchange/taler/overrides.conf new file mode 100644 index 00000000..60296ead --- /dev/null +++ b/contrib/packages/fedora/etc-libtalerexchange/taler/overrides.conf @@ -0,0 +1 @@ +# This configuration will be changed by tooling. Do not touch it manually. diff --git a/contrib/packages/fedora/etc-libtalerexchange/taler/taler.conf b/contrib/packages/fedora/etc-libtalerexchange/taler/taler.conf new file mode 100644 index 00000000..1c86ccc3 --- /dev/null +++ b/contrib/packages/fedora/etc-libtalerexchange/taler/taler.conf @@ -0,0 +1,49 @@ +# Main entry point for the GNU Taler configuration. +# +# Structure: +# - taler.conf is the main configuration entry point +# used by all Taler components (the file you are currently +# looking at. +# - overrides.conf contains configuration overrides that are +# set by some tools that help with the configuration, +# and should not be edited by humans. Comments in this file +# are not preserved. +# - conf.d/ contains configuration files for +# Taler components, which can be read by all +# users of the system and are included by the main +# configuration. +# - secrets/ contains configuration snippets +# with secrets for particular services. +# These files should have restrictive permissions +# so that only users of the relevant services +# can read it. All files in it should end with +# ".secret.conf". + +[taler] + +# Currency of the Taler deployment. This setting applies to all Taler +# components that only support a single currency. +#currency = KUDOS + +# Smallest currency unit handled by the underlying bank system. Taler payments +# can make payments smaller than this units, but interactions with external +# systems is always rounded to this unit. +#currency_round_unit = KUDOS:0.01 + +# Monthly amount that mandatorily triggers an AML check +#AML_THRESHOLD = KUDOS:10000000 + +[paths] + +TALER_HOME = /var/lib/taler +TALER_RUNTIME_DIR = /run/taler +TALER_CACHE_HOME = /var/cache/taler +TALER_CONFIG_HOME = /etc/taler +TALER_DATA_HOME = /var/lib/taler + + +# Inline configurations from all Taler components. +@inline-matching@ conf.d/*.conf + +# Overrides from tools that help with configuration. +@inline@ overrides.conf diff --git a/contrib/packages/fedora/etc-taler-auditor/apache2/sites-available/taler-auditor.conf b/contrib/packages/fedora/etc-taler-auditor/apache2/sites-available/taler-auditor.conf new file mode 100644 index 00000000..f68c5955 --- /dev/null +++ b/contrib/packages/fedora/etc-taler-auditor/apache2/sites-available/taler-auditor.conf @@ -0,0 +1,4 @@ +<Location "/taler-auditor/"> +ProxyPass "unix:/var/lib/taler-auditor/auditor.sock|http://example.com/" +RequestHeader add "X-Forwarded-Proto" "https" +</Location> diff --git a/contrib/packages/fedora/etc-taler-auditor/nginx/sites-available/taler-auditor b/contrib/packages/fedora/etc-taler-auditor/nginx/sites-available/taler-auditor new file mode 100644 index 00000000..f74035d5 --- /dev/null +++ b/contrib/packages/fedora/etc-taler-auditor/nginx/sites-available/taler-auditor @@ -0,0 +1,18 @@ +server { + + listen 80; + listen [::]:80; + + server_name localhost; + + access_log /var/log/nginx/auditor.log; + error_log /var/log/nginx/auditor.err; + + location /taler-auditor/ { + proxy_pass http://unix:/var/lib/taler-auditor/auditor.sock; + proxy_redirect off; + proxy_set_header Host $host; + proxy_set_header X-Forwarded-Host "localhost"; + #proxy_set_header X-Forwarded-Proto "https"; + } +}
\ No newline at end of file diff --git a/contrib/packages/fedora/etc-taler-auditor/taler/conf.d/auditor-system.conf b/contrib/packages/fedora/etc-taler-auditor/taler/conf.d/auditor-system.conf new file mode 100644 index 00000000..3d3aef33 --- /dev/null +++ b/contrib/packages/fedora/etc-taler-auditor/taler/conf.d/auditor-system.conf @@ -0,0 +1,12 @@ +# Read secret sections into configuration, but only +# if we have permission to do so. +@inline-secret@ auditordb-postgres ../secrets/auditor-db.secret.conf + +[auditor] +# Debian package is configured to use a reverse proxy with a UNIX +# domain socket. See nginx/apache configuration files. +SERVE = UNIX +UNIXPATH = /var/lib/taler-auditor/auditor.sock + +# Only supported database is Postgres right now. +DATABASE = postgres diff --git a/contrib/packages/fedora/etc-taler-auditor/taler/secrets/auditor-db.secret.conf b/contrib/packages/fedora/etc-taler-auditor/taler/secrets/auditor-db.secret.conf new file mode 100644 index 00000000..b81bb817 --- /dev/null +++ b/contrib/packages/fedora/etc-taler-auditor/taler/secrets/auditor-db.secret.conf @@ -0,0 +1,10 @@ +# Database configuration for the Taler auditor. + +[auditordb-postgres] + +# Typically, there should only be a single line here, of the form: + +CONFIG=postgres:///DATABASE + +# The details of the URI depend on where the database lives and how +# access control was configured. diff --git a/contrib/packages/fedora/etc-taler-exchange/apache2/sites-available/taler-exchange.conf b/contrib/packages/fedora/etc-taler-exchange/apache2/sites-available/taler-exchange.conf new file mode 100644 index 00000000..3ec14feb --- /dev/null +++ b/contrib/packages/fedora/etc-taler-exchange/apache2/sites-available/taler-exchange.conf @@ -0,0 +1,4 @@ +<Location "/taler-exchange/"> +ProxyPass "unix:/run/taler/exchange-httpd/exchange-http.sock|http://example.com/" +RequestHeader add "X-Forwarded-Proto" "https" +</Location> diff --git a/contrib/packages/fedora/etc-taler-exchange/nginx/sites-available/taler-exchange b/contrib/packages/fedora/etc-taler-exchange/nginx/sites-available/taler-exchange new file mode 100644 index 00000000..9b61a32d --- /dev/null +++ b/contrib/packages/fedora/etc-taler-exchange/nginx/sites-available/taler-exchange @@ -0,0 +1,17 @@ +server { + listen 80; + listen [::]:80; + + server_name localhost; + + access_log /var/log/nginx/exchange.log; + error_log /var/log/nginx/exchange.err; + + location /taler-exchange/ { + proxy_pass http://unix:/run/taler/exchange-httpd/exchange-http.sock:/; + proxy_redirect off; + proxy_set_header Host $host; + proxy_set_header X-Forwarded-Host "localhost"; + #proxy_set_header X-Forwarded-Proto "https"; + } +} diff --git a/contrib/packages/fedora/etc-taler-exchange/taler/conf.d/exchange-business.conf b/contrib/packages/fedora/etc-taler-exchange/taler/conf.d/exchange-business.conf new file mode 100644 index 00000000..d5938f2b --- /dev/null +++ b/contrib/packages/fedora/etc-taler-exchange/taler/conf.d/exchange-business.conf @@ -0,0 +1,50 @@ +# Configuration for business-level aspects of the exchange. + +[exchange] + +# Here you MUST add the master public key of the offline system +# which you can get using `taler-exchange-offline setup`. +# This is just an example, your key will be different! +# MASTER_PUBLIC_KEY = YE6Q6TR1EDB7FD0S68TGDZGF1P0GHJD2S0XVV8R2S62MYJ6HJ4ZG +# MASTER_PUBLIC_KEY = + +# Publicly visible base URL of the exchange. +# BASE_URL = https://example.com/ +# BASE_URL = + +# Here you MUST configure the amount above which transactions are +# always subject to manual AML review. +# AML_THRESHOLD = + +# Attribute encryption key for storing attributes encrypted +# in the database. Should be a high-entropy nonce. +ATTRIBUTE_ENCRYPTION_KEY = SET_ME_PLEASE + +# For your terms of service and privacy policy, you should specify +# an Etag that must be updated whenever there are significant +# changes to either document. The format is up to you, what matters +# is that the value is updated and never re-used. See the HTTP +# specification on Etags. +# TERMS_ETAG = +# PRIVACY_ETAG = + +SERVE = unix +UNIXPATH_MODE = 666 + +# Bank accounts used by the exchange should be specified here: +[exchange-account-1] + +ENABLE_CREDIT = NO +ENABLE_DEBIT = NO + +# Account identifier in the form of an RFC-8905 payto:// URI. +# For SEPA, looks like payto://sepa/$IBAN?receiver-name=$NAME +# Make sure to URL-encode spaces in $NAME! +PAYTO_URI = + +# Credentials to access the account are in a separate +# config file with restricted permissions. +@inline-secret@ exchange-accountcredentials-1 ../secrets/exchange-accountcredentials-1.secret.conf + + + diff --git a/contrib/packages/fedora/etc-taler-exchange/taler/conf.d/exchange-coins.conf b/contrib/packages/fedora/etc-taler-exchange/taler/conf.d/exchange-coins.conf new file mode 100644 index 00000000..8294525c --- /dev/null +++ b/contrib/packages/fedora/etc-taler-exchange/taler/conf.d/exchange-coins.conf @@ -0,0 +1,33 @@ +# +# This configuration file specifies the various denominations offered by your +# exchange. +# +# Each denomination must be specified in a sections starting with +# "coin_". +# +# What follows is an example. +# + +# [coin_FOO] +## Actual value of the coin +#VALUE = KUDOS:1 + +## How long will one key be used for withdrawals? +#DURATION_WITHDRAW = 7 days + +## How long do users have to spend their coins? +#DURATION_SPEND = 2 years + +## How long does the exchange keep the proofs around for legal disputes? +#DURATION_LEGAL = 6 years + +## Fees charged. Note that for the lowest denomination, the +## fee must precisely be the lowest denomination, or zero. +#FEE_WITHDRAW = KUDOS:0 +#FEE_DEPOSIT = KUDOS:0 +#FEE_REFRESH = KUDOS:0 +#FEE_REFUND = KUDOS:0 + +## How long should the RSA keys be. Do not change unless you really know +## what you are doing (consult your local cryptographer first!). +#RSA_KEYSIZE = 2048 diff --git a/contrib/packages/fedora/etc-taler-exchange/taler/conf.d/exchange-system.conf b/contrib/packages/fedora/etc-taler-exchange/taler/conf.d/exchange-system.conf new file mode 100644 index 00000000..4ad7e06f --- /dev/null +++ b/contrib/packages/fedora/etc-taler-exchange/taler/conf.d/exchange-system.conf @@ -0,0 +1,13 @@ +# Configuration settings for system parameters of the exchange. + +# Read secret sections into configuration, but only +# if we have permission to do so. +@inline-secret@ exchangedb-postgres ../secrets/exchange-db.secret.conf + +[exchange] + +# Only supported database is Postgres right now. +DATABASE = postgres + + + diff --git a/debian/etc-taler-exchange/taler/secrets/exchange-accountcredentials.secret.conf b/contrib/packages/fedora/etc-taler-exchange/taler/secrets/exchange-accountcredentials-1.secret.conf index 8c8d1432..8c8d1432 100644 --- a/debian/etc-taler-exchange/taler/secrets/exchange-accountcredentials.secret.conf +++ b/contrib/packages/fedora/etc-taler-exchange/taler/secrets/exchange-accountcredentials-1.secret.conf diff --git a/contrib/packages/fedora/etc-taler-exchange/taler/secrets/exchange-db.secret.conf b/contrib/packages/fedora/etc-taler-exchange/taler/secrets/exchange-db.secret.conf new file mode 100644 index 00000000..a7a727b6 --- /dev/null +++ b/contrib/packages/fedora/etc-taler-exchange/taler/secrets/exchange-db.secret.conf @@ -0,0 +1,10 @@ +# Database configuration for the Taler exchange. + +[exchangedb-postgres] + +# Typically, there should only be a single line here, of the form: + +# CONFIG=postgres:///DATABASE + +# The details of the URI depend on where the database lives and how +# access control was configured. diff --git a/contrib/packages/fedora/taler-auditor.taler-auditor-httpd.service b/contrib/packages/fedora/taler-auditor.taler-auditor-httpd.service new file mode 100644 index 00000000..9aefab64 --- /dev/null +++ b/contrib/packages/fedora/taler-auditor.taler-auditor-httpd.service @@ -0,0 +1,12 @@ +[Unit] +Description=GNU Taler payment system auditor REST API +After=postgres.service network.target + +[Service] +User=taler-auditor-httpd +Type=simple +Restart=on-failure +ExecStart=/usr/bin/taler-auditor-httpd -c /etc/taler/taler.conf + +[Install] +WantedBy=multi-user.target diff --git a/contrib/packages/fedora/taler-exchange.taler-exchange-aggregator.service b/contrib/packages/fedora/taler-exchange.taler-exchange-aggregator.service new file mode 100644 index 00000000..246cad5c --- /dev/null +++ b/contrib/packages/fedora/taler-exchange.taler-exchange-aggregator.service @@ -0,0 +1,18 @@ +[Unit] +Description=GNU Taler payment system exchange aggregator service +PartOf=taler-exchange.target +After=postgres.service + +[Service] +User=taler-exchange-aggregator +Type=simple +Restart=always +RestartSec=1s +ExecStart=/usr/bin/taler-exchange-aggregator -c /etc/taler/taler.conf +StandardOutput=journal +StandardError=journal +PrivateTmp=yes +PrivateDevices=yes +ProtectSystem=full +Slice=taler-exchange.slice +RuntimeMaxSec=3600s diff --git a/contrib/packages/fedora/taler-exchange.taler-exchange-aggregator@.service b/contrib/packages/fedora/taler-exchange.taler-exchange-aggregator@.service new file mode 100644 index 00000000..bfc44a9a --- /dev/null +++ b/contrib/packages/fedora/taler-exchange.taler-exchange-aggregator@.service @@ -0,0 +1,17 @@ +[Unit] +Description=GNU Taler payment system exchange aggregator service +PartOf=taler-exchange.target + +[Service] +User=taler-exchange-aggregator +Type=simple +Restart=always +RestartSec=1s +ExecStart=/usr/bin/taler-exchange-aggregator -c /etc/taler/taler.conf +StandardOutput=journal +StandardError=journal +PrivateTmp=yes +PrivateDevices=yes +ProtectSystem=full +Slice=taler-exchange.slice +RuntimeMaxSec=3600s diff --git a/contrib/packages/fedora/taler-exchange.taler-exchange-closer.service b/contrib/packages/fedora/taler-exchange.taler-exchange-closer.service new file mode 100644 index 00000000..97a385c1 --- /dev/null +++ b/contrib/packages/fedora/taler-exchange.taler-exchange-closer.service @@ -0,0 +1,18 @@ +[Unit] +Description=GNU Taler payment system exchange closer service +PartOf=taler-exchange.target +After=network.target postgres.service + +[Service] +User=taler-exchange-closer +Type=simple +Restart=always +RestartSec=1s +ExecStart=/usr/bin/taler-exchange-closer -c /etc/taler/taler.conf +StandardOutput=journal +StandardError=journal +PrivateTmp=yes +PrivateDevices=yes +ProtectSystem=full +Slice=taler-exchange.slice +RuntimeMaxSec=3600s diff --git a/contrib/packages/fedora/taler-exchange.taler-exchange-expire.service b/contrib/packages/fedora/taler-exchange.taler-exchange-expire.service new file mode 100644 index 00000000..250f210f --- /dev/null +++ b/contrib/packages/fedora/taler-exchange.taler-exchange-expire.service @@ -0,0 +1,18 @@ +[Unit] +Description=GNU Taler payment system exchange expire service +PartOf=taler-exchange.target +After=postgres.service + +[Service] +User=taler-exchange-expire +Type=simple +Restart=always +RestartSec=1s +ExecStart=/usr/bin/taler-exchange-expire -c /etc/taler/taler.conf +StandardOutput=journal +StandardError=journal +PrivateTmp=yes +PrivateDevices=yes +ProtectSystem=full +Slice=taler-exchange.slice +RuntimeMaxSec=3600s diff --git a/contrib/packages/fedora/taler-exchange.taler-exchange-httpd.service b/contrib/packages/fedora/taler-exchange.taler-exchange-httpd.service new file mode 100644 index 00000000..3671bdc7 --- /dev/null +++ b/contrib/packages/fedora/taler-exchange.taler-exchange-httpd.service @@ -0,0 +1,33 @@ +[Unit] +Description=GNU Taler payment system exchange REST API +AssertPathExists=/run/taler/exchange-httpd +Requires=taler-exchange-httpd.socket taler-exchange-secmod-cs.service taler-exchange-secmod-rsa.service taler-exchange-secmod-eddsa.service +After=postgres.service network.target taler-exchange-secmod-cs.service taler-exchange-secmod-rsa.service taler-exchange-secmod-eddsa.service +PartOf=taler-exchange.target + +[Service] +User=taler-exchange-httpd +Type=simple + +# Depending on the configuration, the service process kills itself and then +# needs to be restarted. Thus no significant delay on restarts. +Restart=always +RestartSec=1ms + +# Disable the service if more than 5 restarts are encountered within 5s. +# These are usually the systemd defaults, but can be overwritten, thus we set +# them here explicitly, as the exchange code assumes StartLimitInterval +# to be >=5s. +StartLimitBurst=5 +StartLimitInterval=5s + +ExecStart=/usr/bin/taler-exchange-httpd -c /etc/taler/taler.conf +StandardOutput=journal +StandardError=journal +PrivateTmp=no +PrivateDevices=yes +ProtectSystem=full +Slice=taler-exchange.slice + +[Install] +WantedBy=multi-user.target diff --git a/contrib/packages/fedora/taler-exchange.taler-exchange-httpd@.service b/contrib/packages/fedora/taler-exchange.taler-exchange-httpd@.service new file mode 100644 index 00000000..e0246899 --- /dev/null +++ b/contrib/packages/fedora/taler-exchange.taler-exchange-httpd@.service @@ -0,0 +1,27 @@ +% This is a systemd service template. +[Unit] +Description=GNU Taler payment system exchange REST API at %I +AssertPathExists=/run/taler/exchange-httpd +Requires=taler-exchange-httpd@%i.socket taler-exchange-secmod-rsa.service taler-exchange-secmod-eddsa.service +After=postgres.service network.target taler-exchange-secmod-rsa.service taler-exchange-secmod-eddsa.service +PartOf=taler-exchange.target + +[Service] +User=taler-exchange-httpd +Type=simple +# Depending on the configuration, the service suicides and then +# needs to be restarted. +Restart=always +# Do not dally on restarts. +RestartSec=1ms +EnvironmentFile=/etc/environment +ExecStart=/usr/bin/taler-exchange-httpd -c /etc/taler/taler.conf +StandardOutput=journal +StandardError=journal +PrivateTmp=no +PrivateDevices=yes +ProtectSystem=full +Slice=taler-exchange.slice + +[Install] +WantedBy=multi-user.target diff --git a/contrib/packages/fedora/taler-exchange.taler-exchange-secmod-cs.service b/contrib/packages/fedora/taler-exchange.taler-exchange-secmod-cs.service new file mode 100644 index 00000000..3b5e0745 --- /dev/null +++ b/contrib/packages/fedora/taler-exchange.taler-exchange-secmod-cs.service @@ -0,0 +1,18 @@ +[Unit] +Description=GNU Taler payment system exchange CS security module +AssertPathExists=/run/taler/exchange-secmod-cs +PartOf=taler-exchange.target + +[Service] +User=taler-exchange-secmod-cs +Type=simple +Restart=always +RestartSec=100ms +ExecStart=/usr/bin/taler-exchange-secmod-cs -c /etc/taler/taler.conf +StandardOutput=journal +StandardError=journal +PrivateTmp=no +PrivateDevices=yes +ProtectSystem=full +IPAddressDeny=any +Slice=taler-exchange.slice diff --git a/contrib/packages/fedora/taler-exchange.taler-exchange-secmod-eddsa.service b/contrib/packages/fedora/taler-exchange.taler-exchange-secmod-eddsa.service new file mode 100644 index 00000000..e8fba173 --- /dev/null +++ b/contrib/packages/fedora/taler-exchange.taler-exchange-secmod-eddsa.service @@ -0,0 +1,19 @@ +[Unit] +Description=GNU Taler payment system exchange EdDSA security module +AssertPathExists=/run/taler/exchange-secmod-eddsa +PartOf=taler-exchange.target + +[Service] +User=taler-exchange-secmod-eddsa +Type=simple +Restart=always +RestartSec=100ms +ExecStart=/usr/bin/taler-exchange-secmod-eddsa -c /etc/taler/taler.conf +StandardOutput=journal +StandardError=journal +PrivateTmp=no +PrivateDevices=yes +ProtectSystem=full +IPAddressDeny=any +Slice=taler-exchange.slice + diff --git a/contrib/packages/fedora/taler-exchange.taler-exchange-secmod-rsa.service b/contrib/packages/fedora/taler-exchange.taler-exchange-secmod-rsa.service new file mode 100644 index 00000000..10a9585a --- /dev/null +++ b/contrib/packages/fedora/taler-exchange.taler-exchange-secmod-rsa.service @@ -0,0 +1,18 @@ +[Unit] +Description=GNU Taler payment system exchange RSA security module +AssertPathExists=/run/taler/exchange-secmod-rsa +PartOf=taler-exchange.target + +[Service] +User=taler-exchange-secmod-rsa +Type=simple +Restart=always +RestartSec=100ms +ExecStart=/usr/bin/taler-exchange-secmod-rsa -c /etc/taler/taler.conf +StandardOutput=journal +StandardError=journal +PrivateTmp=no +PrivateDevices=yes +ProtectSystem=full +IPAddressDeny=any +Slice=taler-exchange.slice diff --git a/contrib/packages/fedora/taler-exchange.taler-exchange-transfer.service b/contrib/packages/fedora/taler-exchange.taler-exchange-transfer.service new file mode 100644 index 00000000..e26af20d --- /dev/null +++ b/contrib/packages/fedora/taler-exchange.taler-exchange-transfer.service @@ -0,0 +1,18 @@ +[Unit] +Description=Taler Exchange Transfer Service +After=network.target postgres.service +PartOf=taler-exchange.target + +[Service] +User=taler-exchange-wire +Type=simple +Restart=always +RestartSec=1s +ExecStart=/usr/bin/taler-exchange-transfer -c /etc/taler/taler.conf +StandardOutput=journal +StandardError=journal +PrivateTmp=yes +PrivateDevices=yes +ProtectSystem=full +Slice=taler-exchange.slice +RuntimeMaxSec=3600s diff --git a/contrib/packages/fedora/taler-exchange.taler-exchange-wirewatch.service b/contrib/packages/fedora/taler-exchange.taler-exchange-wirewatch.service new file mode 100644 index 00000000..7b74737b --- /dev/null +++ b/contrib/packages/fedora/taler-exchange.taler-exchange-wirewatch.service @@ -0,0 +1,18 @@ +[Unit] +Description=GNU Taler payment system exchange wirewatch service +After=network.target postgres.service +PartOf=taler-exchange.target + +[Service] +User=taler-exchange-wire +Type=simple +Restart=always +RestartSec=1s +RuntimeMaxSec=3600s +ExecStart=/usr/bin/taler-exchange-wirewatch -c /etc/taler/taler.conf +StandardOutput=journal +StandardError=journal +PrivateTmp=yes +PrivateDevices=yes +ProtectSystem=full +Slice=taler-exchange.slice diff --git a/contrib/packages/fedora/taler-exchange.taler-exchange-wirewatch@.service b/contrib/packages/fedora/taler-exchange.taler-exchange-wirewatch@.service new file mode 100644 index 00000000..85bb9268 --- /dev/null +++ b/contrib/packages/fedora/taler-exchange.taler-exchange-wirewatch@.service @@ -0,0 +1,18 @@ +[Unit] +Description=GNU Taler payment system exchange wirewatch service +After=network.target +PartOf=taler-exchange.target + +[Service] +User=taler-exchange-wire +Type=simple +Restart=always +RestartSec=1s +ExecStart=/usr/bin/taler-exchange-wirewatch -c /etc/taler/taler.conf +StandardOutput=journal +StandardError=journal +PrivateTmp=yes +PrivateDevices=yes +ProtectSystem=full +Slice=taler-exchange.slice +RuntimeMaxSec=3600s diff --git a/contrib/persona-exchange-unauthorized.en.must b/contrib/persona-exchange-unauthorized.en.must new file mode 100644 index 00000000..9b485817 --- /dev/null +++ b/contrib/persona-exchange-unauthorized.en.must @@ -0,0 +1,13 @@ +<html> +<head> +<title>KYC server refused access</title> +</head> +<body> +The KYC backend refused the authorization code used by the exchange operator. Please inform the exchange operator about this failure. +<pre> +{{ kyc_http_status }} +{{ kyc_logic }} +{{ kyc_server_reply }} +</pre> +</body> +</html> diff --git a/contrib/persona-exchange-unpaid.en.must b/contrib/persona-exchange-unpaid.en.must new file mode 100644 index 00000000..65fa4f9b --- /dev/null +++ b/contrib/persona-exchange-unpaid.en.must @@ -0,0 +1,13 @@ +<html> +<head> +<title>KYC credit exhausted</title> +</head> +<body> +The KYC backend refused the process as the exchange operator's credit balance at the KYC provider is insufficient. Please inform the exchange operator about this failure. +<pre> +{{ kyc_http_status }} +{{ kyc_logic }} +{{ kyc_server_reply }} +</pre> +</body> +</html> diff --git a/contrib/persona-invalid-response.en.must b/contrib/persona-invalid-response.en.must new file mode 100644 index 00000000..a288ae07 --- /dev/null +++ b/contrib/persona-invalid-response.en.must @@ -0,0 +1,13 @@ +<html> +<head> +<title>KYC provider returned unexpected response</title> +</head> +<body> +The KYC backend returned an unexpected response. +<pre> +{{ kyc_http_status }} +{{ kyc_logic }} +{{ kyc_server_reply }} +</pre> +</body> +</html> diff --git a/contrib/persona-kyc-failed.en.must b/contrib/persona-kyc-failed.en.must new file mode 100644 index 00000000..c1e27a82 --- /dev/null +++ b/contrib/persona-kyc-failed.en.must @@ -0,0 +1,20 @@ +<html> +<head> +<title>KYC authentication failed</title> +</head> +<body> +You failed the KYC check. See below for details. +<!-- {{kyc_logic}} indicates the type of KYC provider + which generated the reply; for now, only + "kycaid" is possible. Switch on the + {{kyc_logic}} to render results in a provider-specific + way. (or introduce new templates per provider?) --> +<!-- TODO: figure out exactly what the + format of 'verifications' is here + based on KYCAID documentation and parse + that here. --> +<pre> +{{ verifications }} +</pre> +</body> +</html>
\ No newline at end of file diff --git a/contrib/persona-load-failure.en.must b/contrib/persona-load-failure.en.must new file mode 100644 index 00000000..77917c0b --- /dev/null +++ b/contrib/persona-load-failure.en.must @@ -0,0 +1,13 @@ +<html> +<head> +<title>KYC provider rate limit reached</title> +</head> +<body> +The KYC backend interaction ran into a rate limit. +<pre> +{{ kyc_http_status }} +{{ kyc_logic }} +{{ kyc_server_reply }} +</pre> +</body> +</html> diff --git a/contrib/persona-logic-failure.en.must b/contrib/persona-logic-failure.en.must new file mode 100644 index 00000000..504cd09c --- /dev/null +++ b/contrib/persona-logic-failure.en.must @@ -0,0 +1,13 @@ +<html> +<head> +<title>KYC server interaction failed</title> +</head> +<body> +The KYC backend returned a response indicating a problem with the exchange logic. Please inform the exchange operator about this failure. +<pre> +{{ kyc_http_status }} +{{ kyc_logic }} +{{ kyc_server_reply }} +</pre> +</body> +</html> diff --git a/contrib/persona-network-timeout.en.must b/contrib/persona-network-timeout.en.must new file mode 100644 index 00000000..c1ad79b3 --- /dev/null +++ b/contrib/persona-network-timeout.en.must @@ -0,0 +1,13 @@ +<html> +<head> +<title>KYC provider timeout</title> +</head> +<body> +The KYC backend interaction ran into a timeout. +<pre> +{{ kyc_http_status }} +{{ kyc_logic }} +{{ kyc_server_reply }} +</pre> +</body> +</html> diff --git a/contrib/persona-provider-failure.en.must b/contrib/persona-provider-failure.en.must new file mode 100644 index 00000000..37d1e0f3 --- /dev/null +++ b/contrib/persona-provider-failure.en.must @@ -0,0 +1,13 @@ +<html> +<head> +<title>KYC provider had an internal error</title> +</head> +<body> +The KYC backend had an internal error. +<pre> +{{ kyc_http_status }} +{{ kyc_logic }} +{{ kyc_server_reply }} +</pre> +</body> +</html> diff --git a/contrib/pp/.gitignore b/contrib/pp/.gitignore deleted file mode 100644 index fb83616e..00000000 --- a/contrib/pp/.gitignore +++ /dev/null @@ -1,3 +0,0 @@ -sphinx.err -sphinx.log -_build/ diff --git a/contrib/pp/Makefile b/contrib/pp/Makefile deleted file mode 100644 index ab29543c..00000000 --- a/contrib/pp/Makefile +++ /dev/null @@ -1,109 +0,0 @@ -# Makefile for Sphinx documentation -# -# You can set these variables from the command line. -SPHINXOPTS = -SPHINXBUILD = sphinx-build -PAPER = -BUILDDIR = _build - -# User-friendly check for sphinx-build -ifeq ($(shell which $(SPHINXBUILD) >/dev/null 2>&1; echo $$?), 1) -$(error The '$(SPHINXBUILD)' command was not found. Make sure you have Sphinx installed, then set the SPHINXBUILD environment variable to point to the full path of the '$(SPHINXBUILD)' executable. Alternatively you can add the directory with the executable to your PATH. If you don't have Sphinx installed, grab it from http://sphinx-doc.org/) -endif - -# Internal variables. -PAPEROPT_a4 = -D latex_paper_size=a4 -PAPEROPT_letter = -D latex_paper_size=letter -ALLSPHINXOPTS = -d $(BUILDDIR)/doctrees $(PAPEROPT_$(PAPER)) $(SPHINXOPTS) . -# the i18n builder cannot share the environment and doctrees with the others -I18NSPHINXOPTS = $(PAPEROPT_$(PAPER)) $(SPHINXOPTS) . - -.PHONY: help clean html json epub latex latexpdf text man doctest gettext - -help: - @echo "Please use \`make <target>' where <target> is one of" - @echo " html to make a single large HTML file" - @echo " json to make JSON files" - @echo " epub to make an epub" - @echo " latex to make LaTeX files, you can set PAPER=a4 or PAPER=letter" - @echo " pdf to make LaTeX files and run them through pdflatex" - @echo " txt to make text files" - @echo " man to make manual pages" - @echo " texinfo to make Texinfo files" - @echo " info to make Texinfo files and run them through makeinfo" - @echo " gettext to make PO message catalogs" - @echo " xml to make Docutils-native XML files" - @echo " pseudoxml to make pseudoxml-XML files for display purposes" - @echo " doctest to run all doctests embedded in the documentation (if enabled)" - -clean: - rm -rf $(BUILDDIR)/* - - -# The html-linked builder does not support caching, so we -# remove all cached state first. -html: - $(SPHINXBUILD) -b html $(ALLSPHINXOPTS) $(BUILDDIR)/html - @echo - @echo "Build finished. The HTML page is in $(BUILDDIR)/html." - -json: - $(SPHINXBUILD) -b json $(ALLSPHINXOPTS) $(BUILDDIR)/json - @echo - @echo "Build finished; now you can process the JSON files." - -epub: - $(SPHINXBUILD) -b epub $(ALLSPHINXOPTS) $(BUILDDIR)/epub - @echo - @echo "Build finished. The epub file is in $(BUILDDIR)/epub." - -latex: - $(SPHINXBUILD) -b latex $(ALLSPHINXOPTS) $(BUILDDIR)/latex - @echo - @echo "Build finished; the LaTeX files are in $(BUILDDIR)/latex." - @echo "Run \`make' in that directory to run these through (pdf)latex" \ - "(use \`make latexpdf' here to do that automatically)." - -pdf: - $(SPHINXBUILD) -b latex $(ALLSPHINXOPTS) $(BUILDDIR)/pdf - @echo "Running LaTeX files through pdflatex..." - $(MAKE) -C $(BUILDDIR)/pdf all-pdf - @echo "pdflatex finished; the PDF files are in $(BUILDDIR)/pdf." - -txt: - $(SPHINXBUILD) -b text $(ALLSPHINXOPTS) $(BUILDDIR)/txt - @echo - @echo "Build finished. The text files are in $(BUILDDIR)/txt." - -man: - $(SPHINXBUILD) -b man $(ALLSPHINXOPTS) $(BUILDDIR)/man - @echo - @echo "Build finished. The manual pages are in $(BUILDDIR)/man." - -texinfo: - $(SPHINXBUILD) -b texinfo $(ALLSPHINXOPTS) $(BUILDDIR)/texinfo - @echo - @echo "Build finished. The Texinfo files are in $(BUILDDIR)/texinfo." - @echo "Run \`make' in that directory to run these through makeinfo" \ - "(use \`make info' here to do that automatically)." - -info: - $(SPHINXBUILD) -b texinfo $(ALLSPHINXOPTS) $(BUILDDIR)/info - @echo "Running Texinfo files through makeinfo..." - make -C $(BUILDDIR)/texinfo info - @echo "makeinfo finished; the Info files are in $(BUILDDIR)/info." - -gettext: - $(SPHINXBUILD) -b gettext $(I18NSPHINXOPTS) $(BUILDDIR)/locale - @echo - @echo "Build finished. The message catalogs are in $(BUILDDIR)/locale." - -doctest: - $(SPHINXBUILD) -b doctest $(ALLSPHINXOPTS) $(BUILDDIR)/doctest - @echo "Testing of doctests in the sources finished, look at the " \ - "results in $(BUILDDIR)/doctest/output.txt." - -xml: - $(SPHINXBUILD) -b xml $(ALLSPHINXOPTS) $(BUILDDIR)/xml - @echo - @echo "Build finished. The XML files are in $(BUILDDIR)/xml." diff --git a/contrib/pp/README b/contrib/pp/README deleted file mode 100644 index 17a17c58..00000000 --- a/contrib/pp/README +++ /dev/null @@ -1,58 +0,0 @@ -This directory contains the privacy policy (template) for exchange -operators. - - -Dependencies -============ - -Generating a new Privacy Policy requires Sphinx, LaTeX with babel -packages for all supported languages. On Debian, you should -at least install: - -$ apt install python3-sphinx sphinx-intl texlive-lang-german texlive-lang-english latexmk texlive-latex-recommended texlive-latex-extra - -(NOTE: List may be incomplete.) - - -Updating the Privacy Policy -=========================== - -The master file with the Privacy Policy is 'pp.rst'. - -If you make substantial changes, you MUST change the "PP_VERSION" -in contrib/Makefile.am to the new Etag. - -To begin the translation into other languages after editing the master -file, run - -$ make gettext - -to generate the master PO file. Then, run - -$ sphinx-intl update -p _build/locale/ -l de -l fr -l it - -to update the PO files for the various languages (extend the list of -languages as necessary). The PO files for the translators are kept -at locale/$LANG/LC_MESSAGES/pp.po for the language $LANG. - -Once all PO files have been updated with new translations, run - -$ make update-pp - -in the "contrib/" directory to generate all of the formats. The -respective make rule calls the '../update-pp.sh' script in the -contrib/ directory, which calls the 'Makefile' in the pp/ -directory for the various supported languages and file formats -and then moves the generated files to the target directory -('contrib/pp/$LANG/$VERSION.$FORMAT') - - -Adding a new language -===================== - -To add a new language $LANG, add $LANG to "PP_LANGUAGES" in -'contrib/Makefile.am' and run - -$ sphinx-intl update -p _build/gettext -l $LANG - -to generate the PO template. diff --git a/contrib/pp/conf.py b/contrib/pp/conf.py deleted file mode 100644 index 9acb9786..00000000 --- a/contrib/pp/conf.py +++ /dev/null @@ -1,282 +0,0 @@ -""" - This file is part of GNU TALER. - Copyright (C) 2014-2020 Taler Systems SA - - 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 - -sys.path.append(os.path.abspath('_exts')) - -#import taler_sphinx_theme - -# 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.8.5' - -# Add any Sphinx extension module names here, as strings. They can be -# extensions coming with Sphinx (named 'sphinx.ext.*') or your custom -# ones. -extensions = [ - 'sphinx.ext.todo', - 'sphinx.ext.imgmath', -] - -# Add any paths that contain templates here, relative to this directory. -templates_path = ['_templates'] - -source_suffix = { - '.rst': 'restructuredtext', -} - -# The encoding of source files. -#source_encoding = 'utf-8-sig' - -# The master toctree document. -master_doc = 'pp' - -# General information about the project. -project = u'pp' -copyright = u'2014-2020 Taler Systems SA (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' -# The full version, including alpha/beta/rc tags. -release = '0' - -# The language for content autogenerated by Sphinx. Refer to documentation -# for a list of supported languages. -# language = "en de" - -# 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', '_exts', 'cf', 'prebuilt'] - -# The reST default role (used for this markup: `text`) to use for all -# documents. -# default_role = "ts:type" - -locale_dirs = ['locale/'] -gettext_compact = False - -# 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 = 'epub' - -#html_theme_path = taler_sphinx_theme.html_theme_path() - -#html_sidebars = {'**': ['logo-text.html', 'globaltoc.html', 'searchbox.html']} - -rst_epilog = "" - -html_show_sphinx = False - -html_theme_options = { - # Set the name of the project to appear in the sidebar - "relbar1": "false", - "footer": "false", -} - -# 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 = "Taler Privacy Policy" - -# A shorter title for the navigation bar. Default is the same as html_title. -html_short_title = "Privacy Policy" - -# 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 - -# -- 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 = [ - ('pp', 'pp.tex', - 'Privacy Policy', 'GNU Taler team', '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 = ["fdl-1.3"] - -# If false, no module index is generated. -#latex_domain_indices = True - -# -- Options for manual page output --------------------------------------- - -# If true, show URL addresses after external links. -#man_show_urls = False - -# -- Options for Texinfo output ------------------------------------------- - -# 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 - - -# -- Options for epub output ---------------------------- - -epub_basename = "pp" - -epub_title = "Privacy Policy" diff --git a/contrib/pp/en/0.epub b/contrib/pp/en/0.epub Binary files differdeleted file mode 100644 index 7e9e5343..00000000 --- a/contrib/pp/en/0.epub +++ /dev/null diff --git a/contrib/pp/en/0.html b/contrib/pp/en/0.html deleted file mode 100644 index ce704535..00000000 --- a/contrib/pp/en/0.html +++ /dev/null @@ -1,211 +0,0 @@ - - -<html lang="en"> - <head> - <meta charset="utf-8" /> - <meta name="viewport" content="width=device-width, initial-scale=1.0" /> - <title>Privacy Policy — Taler Privacy Policy</title> - <link rel="stylesheet" href="_static/pygments.css" type="text/css" /> - <link rel="stylesheet" href="_static/epub.css" type="text/css" /> - <script id="documentation_options" data-url_root="./" src="_static/documentation_options.js"></script> - <script src="_static/jquery.js"></script> - <script src="_static/underscore.js"></script> - <script src="_static/doctools.js"></script> - </head><body> - - <div class="document"> - <div class="documentwrapper"> - <div class="bodywrapper"> - <div class="body" role="main"> - - <div class="section" id="privacy-policy"> -<h1>Privacy Policy<a class="headerlink" href="#privacy-policy" title="Permalink to this headline">¶</a></h1> -<p>Last Updated: 11.12.2019</p> -<p>This Privacy Policy describes the policies and procedures of Taler Systems SA -(“we,” “our,” or “us”) pertaining to the collection, use, and disclosure of -your information on our sites and related mobile applications and products we -offer (the “Services” or “Taler Wallet”). This Privacy Statement applies to -your personal data when you use our Services, and does not apply to online -websites or services that we do not own or control.</p> -<div class="section" id="overview"> -<h2>Overview<a class="headerlink" href="#overview" title="Permalink to this headline">¶</a></h2> -<p>Your privacy is important to us. We follow a few fundamental principles: We -don’t ask you for personally identifiable information (defined below). That -being said, your contact information, such as your phone number, social media -handle, or email address (depending on how you contact us), may be collected -when you communicate with us, for example to report a bug or other error -related to the Taler Wallet. We don’t share your information with third -parties except when strictly required to deliver you our Services and -products, or to comply with the law. If you have any questions or concerns -about this policy, please reach out to us at <a class="reference external" href="mailto:privacy%40taler-systems.net">privacy<span>@</span>taler-systems<span>.</span>net</a>.</p> -</div> -<div class="section" id="how-you-accept-this-policy"> -<h2>How you accept this policy<a class="headerlink" href="#how-you-accept-this-policy" title="Permalink to this headline">¶</a></h2> -<p>By using our Services or visiting our sites, you agree to the use, disclosure, -and procedures outlined in this Privacy Policy.</p> -</div> -<div class="section" id="what-personal-information-do-we-collect-from-our-users"> -<h2>What personal information do we collect from our users?<a class="headerlink" href="#what-personal-information-do-we-collect-from-our-users" title="Permalink to this headline">¶</a></h2> -<p>The information we collect from you falls into two categories: (i) personally -identifiable information (i.e., data that could potentially identify you as an -individual) (“Personal Information”), and (ii) non-personally identifiable -information (i.e., information that cannot be used to identify who you are) -(“Non-Personal Information”). This Privacy Policy covers both categories and -will tell you how we might collect and use each type.</p> -<p>We do our best to not collect any Personal Information from Taler Wallet -users. We believe that the Taler Wallet never transmits personal information -to our services without at least clear implied consent, and we only process -and retain information with a strict business need. That being said, when -using our Services, we inherently have to collect the following information:</p> -<blockquote> -<div><ul class="simple"> -<li><p>Bank account details necessary when receiving funds from you to top-up your wallet or to transfer funds to you when you are being paid via Taler. At the current experimental stage, only the pseudonym and password you entered in the bank demonstrator is stored.</p></li> -<li><p>The amounts being withdrawn or deposited, with associated unique transaction identifiers and cryptographic signatures authorizing the transaction. Note that for purchases, we cannot identify the buyer from the collected data, so when you spend money, we only receive non-personal information.</p></li> -<li><p>When you contact us. We may collect certain information if you choose to contact us, for example to report a bug or other error with the Taler Wallet. This may include contact information such as your name, email address or phone number depending on the method you choose to contact us.</p></li> -</ul> -</div></blockquote> -</div> -<div class="section" id="how-we-collect-and-process-information"> -<h2>How we collect and process information<a class="headerlink" href="#how-we-collect-and-process-information" title="Permalink to this headline">¶</a></h2> -<p>We may process your information for the following reasons:</p> -<blockquote> -<div><ul class="simple"> -<li><p>to transfer money as specified by our users (Taler transactions);</p></li> -<li><p>to assist government entities in linking income to the underlying contract as required by law and local regulations</p></li> -<li><p>to support you using the Taler Wallet or to improve our Services</p></li> -</ul> -</div></blockquote> -</div> -<div class="section" id="how-we-share-and-use-the-information-we-gather"> -<h2>How we share and use the information we gather<a class="headerlink" href="#how-we-share-and-use-the-information-we-gather" title="Permalink to this headline">¶</a></h2> -<p>We may share your Personal Data or other information about you only if you are -a merchant receiving income, with your bank, to the degree necessary to -execute the payment.</p> -<p>We retain Personal Data to transfer funds to the accounts designated by our -users. We may retain Personal Data only for as long as mandated by law and -required for the wire transfers.</p> -<p>We primarily use the limited information we receive directly from you to -enhance the Taler Wallet. Some ways we may use your Personal Information are -to: Contact you when necessary to respond to your comments, answer your -questions, or obtain additional information on issues related to bugs or -errors with the Taler Wallet that you reported.</p> -</div> -<div class="section" id="agents-or-third-party-partners"> -<h2>Agents or third party partners<a class="headerlink" href="#agents-or-third-party-partners" title="Permalink to this headline">¶</a></h2> -<p>We may provide your Personal Information to our employees, contractors, -agents, service providers, and designees (“Agents”) to enable them to perform -certain services for us exclusively, including: improvement and maintenance of -our software and Services.</p> -</div> -<div class="section" id="protection-of-us-and-others"> -<h2>Protection of us and others<a class="headerlink" href="#protection-of-us-and-others" title="Permalink to this headline">¶</a></h2> -<p>We reserve the right to access, read, preserve, and disclose any information -that we reasonably believe is necessary to comply with the law or a court -order.</p> -</div> -<div class="section" id="what-personal-information-can-i-access-or-change"> -<h2>What personal information can I access or change?<a class="headerlink" href="#what-personal-information-can-i-access-or-change" title="Permalink to this headline">¶</a></h2> -<p>You can request access to the information we have collected from you. You can -do this by contacting us at <a class="reference external" href="mailto:privacy%40taler-systems.net">privacy<span>@</span>taler-systems<span>.</span>net</a>. We will make sure to -provide you with a copy of the data we process about you. To comply with your -request, we may ask you to verify your identity. We will fulfill your request -by sending your copy electronically. For any subsequent access request, we may -charge you with an administrative fee. If you believe that the information we -have collected is incorrect, you are welcome to contact us so we can update it -and keep your data accurate. Any data that is no longer needed for purposes -specified in the “How We Use the Information We Gather” section will be -deleted after ninety (90) days.</p> -</div> -<div class="section" id="what-are-your-data-protection-rights"> -<h2>What are your data protection rights?<a class="headerlink" href="#what-are-your-data-protection-rights" title="Permalink to this headline">¶</a></h2> -<p>Anastasis would like to make sure you are fully aware of all of your -data protection rights. Every user is entitled to the following:</p> -<dl class="simple"> -<dt><strong>The right to access</strong>: You have the right to request Anastasis for</dt><dd><p>copies of your personal data. We may charge you a small fee for this -service.</p> -</dd> -</dl> -<p><strong>The right to rectification</strong>: You have the right to request that -Anastasis correct any information you believe is inaccurate. You also -have the right to request Anastasis to complete information you -believe is incomplete. The right to erasure - You have the right to -request that Anastasis erase your personal data, under certain -conditions.</p> -<dl class="simple"> -<dt><strong>The right to restrict processing</strong>: You have the right to request</dt><dd><p>that Anastasis restrict the processing of your personal data, under -certain conditions.</p> -</dd> -<dt><strong>The right to object to processing</strong>: You have the right to object to</dt><dd><p>Anastasis’s processing of your personal data, under certain -conditions.</p> -</dd> -<dt><strong>The right to data portability</strong>: You have the right to request that</dt><dd><p>Anastasis transfer the data that we have collected to another -organization, or directly to you, under certain conditions.</p> -</dd> -</dl> -<p>If you make a request, we have one month to respond to you. If you -would like to exercise any of these rights, please contact us at our -email: <a class="reference external" href="mailto:privacy%40taler-systems.com">privacy<span>@</span>taler-systems<span>.</span>com</a></p> -<p>You can always contact your local data protection authority to enforce -your rights.</p> -</div> -<div class="section" id="data-retention"> -<h2>Data retention<a class="headerlink" href="#data-retention" title="Permalink to this headline">¶</a></h2> -<p>If you uninstall the Taler Wallet mobile applications from your device, or -request that your information be deleted, we still may retain some information -that you have provided to us to maintain the Taler Wallet or to comply with -relevant laws.</p> -</div> -<div class="section" id="data-security"> -<h2>Data security<a class="headerlink" href="#data-security" title="Permalink to this headline">¶</a></h2> -<p>We are committed to making sure your information is protected. We employ -several physical and electronic safeguards to keep your information safe, -including encrypted user passwords, two factor verification and authentication -on passwords where possible, and securing connections with industry standard -transport layer security. You are also welcome to contact us using GnuPG -encrypted e-mail. Even with all these precautions, we cannot fully guarantee -against the access, disclosure, alteration, or deletion of data through -events, including but not limited to hardware or software failure or -unauthorized use. Any information that you provide to us is done so entirely -at your own risk.</p> -</div> -<div class="section" id="changes-and-updates-to-privacy-policy"> -<h2>Changes and updates to privacy policy<a class="headerlink" href="#changes-and-updates-to-privacy-policy" title="Permalink to this headline">¶</a></h2> -<p>We reserve the right to update and revise this privacy policy at any time. We -occasionally review this Privacy Policy to make sure it complies with -applicable laws and conforms to changes in our business. We may need to update -this Privacy Policy, and we reserve the right to do so at any time. If we do -revise this Privacy Policy, we will update the “Effective Date” at the bottom -of this page so that you can tell if it has changed since your last visit. As -we generally do not collect contact information and also do not track your -visits, we will not be able to notify you directly. However, the Taler Wallet -may inform you about a change in the privacy policy once it detects that the -policy has changed. Please review this Privacy Policy regularly to ensure that -you are aware of its terms. Any use of our Services after an amendment to our -Privacy Policy constitutes your acceptance to the revised or amended -agreement.</p> -</div> -<div class="section" id="international-users-and-visitors"> -<h2>International users and visitors<a class="headerlink" href="#international-users-and-visitors" title="Permalink to this headline">¶</a></h2> -<p>Our Services are hosted in Switzerland. If you are a user accessing the -Services from the European Union, Asia, US, or any other region with laws or -regulations governing personal data collection, use, and disclosure that -differ from Swiss laws, please be advised that through your continued use of -the Services, which is governed by Swiss law, you are transferring your -Personal Information to Switzerland and you consent to that transfer.</p> -</div> -<div class="section" id="questions"> -<h2>Questions<a class="headerlink" href="#questions" title="Permalink to this headline">¶</a></h2> -<p>Please contact us at <a class="reference external" href="mailto:privacy%40taler-systems.net">privacy<span>@</span>taler-systems<span>.</span>net</a> if you have questions about our -privacy practices that are not addressed in this Privacy Statement.</p> -</div> -</div> - - - <div class="clearer"></div> - </div> - </div> - </div> - <div class="clearer"></div> - </div> - </body> -</html>
\ No newline at end of file diff --git a/contrib/pp/en/0.pdf b/contrib/pp/en/0.pdf Binary files differdeleted file mode 100644 index 842a8306..00000000 --- a/contrib/pp/en/0.pdf +++ /dev/null diff --git a/contrib/pp/en/0.txt b/contrib/pp/en/0.txt deleted file mode 100644 index d6e42faf..00000000 --- a/contrib/pp/en/0.txt +++ /dev/null @@ -1,237 +0,0 @@ -Privacy Policy -************** - -Last Updated: 11.12.2019 - -This Privacy Policy describes the policies and procedures of Taler -Systems SA (“we,” “our,” or “us”) pertaining to the collection, use, -and disclosure of your information on our sites and related mobile -applications and products we offer (the “Services” or “Taler Wallet”). -This Privacy Statement applies to your personal data when you use our -Services, and does not apply to online websites or services that we do -not own or control. - - -Overview -======== - -Your privacy is important to us. We follow a few fundamental -principles: We don’t ask you for personally identifiable information -(defined below). That being said, your contact information, such as -your phone number, social media handle, or email address (depending on -how you contact us), may be collected when you communicate with us, -for example to report a bug or other error related to the Taler -Wallet. We don’t share your information with third parties except when -strictly required to deliver you our Services and products, or to -comply with the law. If you have any questions or concerns about this -policy, please reach out to us at privacy@taler-systems.net. - - -How you accept this policy -========================== - -By using our Services or visiting our sites, you agree to the use, -disclosure, and procedures outlined in this Privacy Policy. - - -What personal information do we collect from our users? -======================================================= - -The information we collect from you falls into two categories: (i) -personally identifiable information (i.e., data that could potentially -identify you as an individual) (“Personal Information”), and (ii) non- -personally identifiable information (i.e., information that cannot be -used to identify who you are) (“Non-Personal Information”). This -Privacy Policy covers both categories and will tell you how we might -collect and use each type. - -We do our best to not collect any Personal Information from Taler -Wallet users. We believe that the Taler Wallet never transmits -personal information to our services without at least clear implied -consent, and we only process and retain information with a strict -business need. That being said, when using our Services, we inherently -have to collect the following information: - - * Bank account details necessary when receiving funds from you to - top-up your wallet or to transfer funds to you when you are being - paid via Taler. At the current experimental stage, only the - pseudonym and password you entered in the bank demonstrator is - stored. - - * The amounts being withdrawn or deposited, with associated unique - transaction identifiers and cryptographic signatures authorizing - the transaction. Note that for purchases, we cannot identify the - buyer from the collected data, so when you spend money, we only - receive non-personal information. - - * When you contact us. We may collect certain information if you - choose to contact us, for example to report a bug or other error - with the Taler Wallet. This may include contact information such - as your name, email address or phone number depending on the - method you choose to contact us. - - -How we collect and process information -====================================== - -We may process your information for the following reasons: - - * to transfer money as specified by our users (Taler transactions); - - * to assist government entities in linking income to the underlying - contract as required by law and local regulations - - * to support you using the Taler Wallet or to improve our Services - - -How we share and use the information we gather -============================================== - -We may share your Personal Data or other information about you only if -you are a merchant receiving income, with your bank, to the degree -necessary to execute the payment. - -We retain Personal Data to transfer funds to the accounts designated -by our users. We may retain Personal Data only for as long as mandated -by law and required for the wire transfers. - -We primarily use the limited information we receive directly from you -to enhance the Taler Wallet. Some ways we may use your Personal -Information are to: Contact you when necessary to respond to your -comments, answer your questions, or obtain additional information on -issues related to bugs or errors with the Taler Wallet that you -reported. - - -Agents or third party partners -============================== - -We may provide your Personal Information to our employees, -contractors, agents, service providers, and designees (“Agents”) to -enable them to perform certain services for us exclusively, including: -improvement and maintenance of our software and Services. - - -Protection of us and others -=========================== - -We reserve the right to access, read, preserve, and disclose any -information that we reasonably believe is necessary to comply with the -law or a court order. - - -What personal information can I access or change? -================================================= - -You can request access to the information we have collected from you. -You can do this by contacting us at privacy@taler-systems.net. We will -make sure to provide you with a copy of the data we process about you. -To comply with your request, we may ask you to verify your identity. -We will fulfill your request by sending your copy electronically. For -any subsequent access request, we may charge you with an -administrative fee. If you believe that the information we have -collected is incorrect, you are welcome to contact us so we can update -it and keep your data accurate. Any data that is no longer needed for -purposes specified in the “How We Use the Information We Gather” -section will be deleted after ninety (90) days. - - -What are your data protection rights? -===================================== - -Anastasis would like to make sure you are fully aware of all of your -data protection rights. Every user is entitled to the following: - -**The right to access**: You have the right to request Anastasis for - copies of your personal data. We may charge you a small fee for - this service. - -**The right to rectification**: You have the right to request that -Anastasis correct any information you believe is inaccurate. You also -have the right to request Anastasis to complete information you -believe is incomplete. The right to erasure - You have the right to -request that Anastasis erase your personal data, under certain -conditions. - -**The right to restrict processing**: You have the right to request - that Anastasis restrict the processing of your personal data, under - certain conditions. - -**The right to object to processing**: You have the right to object to - Anastasis's processing of your personal data, under certain - conditions. - -**The right to data portability**: You have the right to request that - Anastasis transfer the data that we have collected to another - organization, or directly to you, under certain conditions. - -If you make a request, we have one month to respond to you. If you -would like to exercise any of these rights, please contact us at our -email: privacy@taler-systems.com - -You can always contact your local data protection authority to enforce -your rights. - - -Data retention -============== - -If you uninstall the Taler Wallet mobile applications from your -device, or request that your information be deleted, we still may -retain some information that you have provided to us to maintain the -Taler Wallet or to comply with relevant laws. - - -Data security -============= - -We are committed to making sure your information is protected. We -employ several physical and electronic safeguards to keep your -information safe, including encrypted user passwords, two factor -verification and authentication on passwords where possible, and -securing connections with industry standard transport layer security. -You are also welcome to contact us using GnuPG encrypted e-mail. Even -with all these precautions, we cannot fully guarantee against the -access, disclosure, alteration, or deletion of data through events, -including but not limited to hardware or software failure or -unauthorized use. Any information that you provide to us is done so -entirely at your own risk. - - -Changes and updates to privacy policy -===================================== - -We reserve the right to update and revise this privacy policy at any -time. We occasionally review this Privacy Policy to make sure it -complies with applicable laws and conforms to changes in our business. -We may need to update this Privacy Policy, and we reserve the right to -do so at any time. If we do revise this Privacy Policy, we will update -the “Effective Date” at the bottom of this page so that you can tell -if it has changed since your last visit. As we generally do not -collect contact information and also do not track your visits, we will -not be able to notify you directly. However, the Taler Wallet may -inform you about a change in the privacy policy once it detects that -the policy has changed. Please review this Privacy Policy regularly to -ensure that you are aware of its terms. Any use of our Services after -an amendment to our Privacy Policy constitutes your acceptance to the -revised or amended agreement. - - -International users and visitors -================================ - -Our Services are hosted in Switzerland. If you are a user accessing -the Services from the European Union, Asia, US, or any other region -with laws or regulations governing personal data collection, use, and -disclosure that differ from Swiss laws, please be advised that through -your continued use of the Services, which is governed by Swiss law, -you are transferring your Personal Information to Switzerland and you -consent to that transfer. - - -Questions -========= - -Please contact us at privacy@taler-systems.net if you have questions -about our privacy practices that are not addressed in this Privacy -Statement. diff --git a/contrib/pp/en/0.xml b/contrib/pp/en/0.xml deleted file mode 100644 index d4400542..00000000 --- a/contrib/pp/en/0.xml +++ /dev/null @@ -1,214 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!DOCTYPE document PUBLIC "+//IDN docutils.sourceforge.net//DTD Docutils Generic//EN//XML" "http://docutils.sourceforge.net/docs/ref/docutils.dtd"> -<!-- Generated by Docutils 0.16 --> -<document source="/research/taler/exchange/contrib/pp/pp.rst"> - <section ids="privacy-policy" names="privacy\ policy"> - <title>Privacy Policy</title> - <paragraph>Last Updated: 11.12.2019</paragraph> - <paragraph>This Privacy Policy describes the policies and procedures of Taler Systems SA - (“we,” “our,” or “us”) pertaining to the collection, use, and disclosure of - your information on our sites and related mobile applications and products we - offer (the “Services” or “Taler Wallet”). This Privacy Statement applies to - your personal data when you use our Services, and does not apply to online - websites or services that we do not own or control.</paragraph> - <section ids="overview" names="overview"> - <title>Overview</title> - <paragraph>Your privacy is important to us. We follow a few fundamental principles: We - don’t ask you for personally identifiable information (defined below). That - being said, your contact information, such as your phone number, social media - handle, or email address (depending on how you contact us), may be collected - when you communicate with us, for example to report a bug or other error - related to the Taler Wallet. We don’t share your information with third - parties except when strictly required to deliver you our Services and - products, or to comply with the law. If you have any questions or concerns - about this policy, please reach out to us at <reference refuri="mailto:privacy@taler-systems.net">privacy@taler-systems.net</reference>.</paragraph> - </section> - <section ids="how-you-accept-this-policy" names="how\ you\ accept\ this\ policy"> - <title>How you accept this policy</title> - <paragraph>By using our Services or visiting our sites, you agree to the use, disclosure, - and procedures outlined in this Privacy Policy.</paragraph> - </section> - <section ids="what-personal-information-do-we-collect-from-our-users" names="what\ personal\ information\ do\ we\ collect\ from\ our\ users?"> - <title>What personal information do we collect from our users?</title> - <paragraph>The information we collect from you falls into two categories: (i) personally - identifiable information (i.e., data that could potentially identify you as an - individual) (“Personal Information”), and (ii) non-personally identifiable - information (i.e., information that cannot be used to identify who you are) - (“Non-Personal Information”). This Privacy Policy covers both categories and - will tell you how we might collect and use each type.</paragraph> - <paragraph>We do our best to not collect any Personal Information from Taler Wallet - users. We believe that the Taler Wallet never transmits personal information - to our services without at least clear implied consent, and we only process - and retain information with a strict business need. That being said, when - using our Services, we inherently have to collect the following information:</paragraph> - <block_quote> - <bullet_list bullet="*"> - <list_item> - <paragraph>Bank account details necessary when receiving funds from you to top-up your wallet or to transfer funds to you when you are being paid via Taler. At the current experimental stage, only the pseudonym and password you entered in the bank demonstrator is stored.</paragraph> - </list_item> - <list_item> - <paragraph>The amounts being withdrawn or deposited, with associated unique transaction identifiers and cryptographic signatures authorizing the transaction. Note that for purchases, we cannot identify the buyer from the collected data, so when you spend money, we only receive non-personal information.</paragraph> - </list_item> - <list_item> - <paragraph>When you contact us. We may collect certain information if you choose to contact us, for example to report a bug or other error with the Taler Wallet. This may include contact information such as your name, email address or phone number depending on the method you choose to contact us.</paragraph> - </list_item> - </bullet_list> - </block_quote> - </section> - <section ids="how-we-collect-and-process-information" names="how\ we\ collect\ and\ process\ information"> - <title>How we collect and process information</title> - <paragraph>We may process your information for the following reasons:</paragraph> - <block_quote> - <bullet_list bullet="*"> - <list_item> - <paragraph>to transfer money as specified by our users (Taler transactions);</paragraph> - </list_item> - <list_item> - <paragraph>to assist government entities in linking income to the underlying contract as required by law and local regulations</paragraph> - </list_item> - <list_item> - <paragraph>to support you using the Taler Wallet or to improve our Services</paragraph> - </list_item> - </bullet_list> - </block_quote> - </section> - <section ids="how-we-share-and-use-the-information-we-gather" names="how\ we\ share\ and\ use\ the\ information\ we\ gather"> - <title>How we share and use the information we gather</title> - <paragraph>We may share your Personal Data or other information about you only if you are - a merchant receiving income, with your bank, to the degree necessary to - execute the payment.</paragraph> - <paragraph>We retain Personal Data to transfer funds to the accounts designated by our - users. We may retain Personal Data only for as long as mandated by law and - required for the wire transfers.</paragraph> - <paragraph>We primarily use the limited information we receive directly from you to - enhance the Taler Wallet. Some ways we may use your Personal Information are - to: Contact you when necessary to respond to your comments, answer your - questions, or obtain additional information on issues related to bugs or - errors with the Taler Wallet that you reported.</paragraph> - </section> - <section ids="agents-or-third-party-partners" names="agents\ or\ third\ party\ partners"> - <title>Agents or third party partners</title> - <paragraph>We may provide your Personal Information to our employees, contractors, - agents, service providers, and designees (“Agents”) to enable them to perform - certain services for us exclusively, including: improvement and maintenance of - our software and Services.</paragraph> - </section> - <section ids="protection-of-us-and-others" names="protection\ of\ us\ and\ others"> - <title>Protection of us and others</title> - <paragraph>We reserve the right to access, read, preserve, and disclose any information - that we reasonably believe is necessary to comply with the law or a court - order.</paragraph> - </section> - <section ids="what-personal-information-can-i-access-or-change" names="what\ personal\ information\ can\ i\ access\ or\ change?"> - <title>What personal information can I access or change?</title> - <paragraph>You can request access to the information we have collected from you. You can - do this by contacting us at <reference refuri="mailto:privacy@taler-systems.net">privacy@taler-systems.net</reference>. We will make sure to - provide you with a copy of the data we process about you. To comply with your - request, we may ask you to verify your identity. We will fulfill your request - by sending your copy electronically. For any subsequent access request, we may - charge you with an administrative fee. If you believe that the information we - have collected is incorrect, you are welcome to contact us so we can update it - and keep your data accurate. Any data that is no longer needed for purposes - specified in the “How We Use the Information We Gather” section will be - deleted after ninety (90) days.</paragraph> - </section> - <section ids="what-are-your-data-protection-rights" names="what\ are\ your\ data\ protection\ rights?"> - <title>What are your data protection rights?</title> - <paragraph>Anastasis would like to make sure you are fully aware of all of your - data protection rights. Every user is entitled to the following:</paragraph> - <definition_list> - <definition_list_item> - <term><strong>The right to access</strong>: You have the right to request Anastasis for</term> - <definition> - <paragraph>copies of your personal data. We may charge you a small fee for this - service.</paragraph> - </definition> - </definition_list_item> - </definition_list> - <paragraph><strong>The right to rectification</strong>: You have the right to request that - Anastasis correct any information you believe is inaccurate. You also - have the right to request Anastasis to complete information you - believe is incomplete. The right to erasure - You have the right to - request that Anastasis erase your personal data, under certain - conditions.</paragraph> - <definition_list> - <definition_list_item> - <term><strong>The right to restrict processing</strong>: You have the right to request</term> - <definition> - <paragraph>that Anastasis restrict the processing of your personal data, under - certain conditions.</paragraph> - </definition> - </definition_list_item> - <definition_list_item> - <term><strong>The right to object to processing</strong>: You have the right to object to</term> - <definition> - <paragraph>Anastasis’s processing of your personal data, under certain - conditions.</paragraph> - </definition> - </definition_list_item> - <definition_list_item> - <term><strong>The right to data portability</strong>: You have the right to request that</term> - <definition> - <paragraph>Anastasis transfer the data that we have collected to another - organization, or directly to you, under certain conditions.</paragraph> - </definition> - </definition_list_item> - </definition_list> - <paragraph>If you make a request, we have one month to respond to you. If you - would like to exercise any of these rights, please contact us at our - email: <reference refuri="mailto:privacy@taler-systems.com">privacy@taler-systems.com</reference></paragraph> - <paragraph>You can always contact your local data protection authority to enforce - your rights.</paragraph> - </section> - <section ids="data-retention" names="data\ retention"> - <title>Data retention</title> - <paragraph>If you uninstall the Taler Wallet mobile applications from your device, or - request that your information be deleted, we still may retain some information - that you have provided to us to maintain the Taler Wallet or to comply with - relevant laws.</paragraph> - </section> - <section ids="data-security" names="data\ security"> - <title>Data security</title> - <paragraph>We are committed to making sure your information is protected. We employ - several physical and electronic safeguards to keep your information safe, - including encrypted user passwords, two factor verification and authentication - on passwords where possible, and securing connections with industry standard - transport layer security. You are also welcome to contact us using GnuPG - encrypted e-mail. Even with all these precautions, we cannot fully guarantee - against the access, disclosure, alteration, or deletion of data through - events, including but not limited to hardware or software failure or - unauthorized use. Any information that you provide to us is done so entirely - at your own risk.</paragraph> - </section> - <section ids="changes-and-updates-to-privacy-policy" names="changes\ and\ updates\ to\ privacy\ policy"> - <title>Changes and updates to privacy policy</title> - <paragraph>We reserve the right to update and revise this privacy policy at any time. We - occasionally review this Privacy Policy to make sure it complies with - applicable laws and conforms to changes in our business. We may need to update - this Privacy Policy, and we reserve the right to do so at any time. If we do - revise this Privacy Policy, we will update the “Effective Date” at the bottom - of this page so that you can tell if it has changed since your last visit. As - we generally do not collect contact information and also do not track your - visits, we will not be able to notify you directly. However, the Taler Wallet - may inform you about a change in the privacy policy once it detects that the - policy has changed. Please review this Privacy Policy regularly to ensure that - you are aware of its terms. Any use of our Services after an amendment to our - Privacy Policy constitutes your acceptance to the revised or amended - agreement.</paragraph> - </section> - <section ids="international-users-and-visitors" names="international\ users\ and\ visitors"> - <title>International users and visitors</title> - <paragraph>Our Services are hosted in Switzerland. If you are a user accessing the - Services from the European Union, Asia, US, or any other region with laws or - regulations governing personal data collection, use, and disclosure that - differ from Swiss laws, please be advised that through your continued use of - the Services, which is governed by Swiss law, you are transferring your - Personal Information to Switzerland and you consent to that transfer.</paragraph> - </section> - <section ids="questions" names="questions"> - <title>Questions</title> - <paragraph>Please contact us at <reference refuri="mailto:privacy@taler-systems.net">privacy@taler-systems.net</reference> if you have questions about our - privacy practices that are not addressed in this Privacy Statement.</paragraph> - </section> - </section> -</document> diff --git a/contrib/pp/locale/de/LC_MESSAGES/pp.po b/contrib/pp/locale/de/LC_MESSAGES/pp.po deleted file mode 100644 index b97b7037..00000000 --- a/contrib/pp/locale/de/LC_MESSAGES/pp.po +++ /dev/null @@ -1,221 +0,0 @@ -# SOME DESCRIPTIVE TITLE. -# Copyright (C) 2014-2020 Taler Systems SA (GPLv3+ or GFDL 1.3+) -# This file is distributed under the same license as the pp package. -# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR. -# -#, fuzzy -msgid "" -msgstr "" -"Project-Id-Version: pp 0\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2021-09-30 21:41+0200\n" -"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" -"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" -"Language-Team: LANGUAGE <LL@li.org>\n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" - -#: ../../pp.rst:2 -msgid "Privacy Policy" -msgstr "" - -#: ../../pp.rst:4 -msgid "Last Updated: 11.12.2019" -msgstr "" - -#: ../../pp.rst:6 -msgid "This Privacy Policy describes the policies and procedures of Taler Systems SA (“we,” “our,” or “us”) pertaining to the collection, use, and disclosure of your information on our sites and related mobile applications and products we offer (the “Services” or “Taler Wallet”). This Privacy Statement applies to your personal data when you use our Services, and does not apply to online websites or services that we do not own or control." -msgstr "" - -#: ../../pp.rst:15 -msgid "Overview" -msgstr "" - -#: ../../pp.rst:17 -msgid "Your privacy is important to us. We follow a few fundamental principles: We don’t ask you for personally identifiable information (defined below). That being said, your contact information, such as your phone number, social media handle, or email address (depending on how you contact us), may be collected when you communicate with us, for example to report a bug or other error related to the Taler Wallet. We don’t share your information with third parties except when strictly required to deliver you our Services and products, or to comply with the law. If you have any questions or concerns about this policy, please reach out to us at privacy@taler-systems.net." -msgstr "" - -#: ../../pp.rst:29 -msgid "How you accept this policy" -msgstr "" - -#: ../../pp.rst:31 -msgid "By using our Services or visiting our sites, you agree to the use, disclosure, and procedures outlined in this Privacy Policy." -msgstr "" - -#: ../../pp.rst:36 -msgid "What personal information do we collect from our users?" -msgstr "" - -#: ../../pp.rst:38 -msgid "The information we collect from you falls into two categories: (i) personally identifiable information (i.e., data that could potentially identify you as an individual) (“Personal Information”), and (ii) non-personally identifiable information (i.e., information that cannot be used to identify who you are) (“Non-Personal Information”). This Privacy Policy covers both categories and will tell you how we might collect and use each type." -msgstr "" - -#: ../../pp.rst:45 -msgid "We do our best to not collect any Personal Information from Taler Wallet users. We believe that the Taler Wallet never transmits personal information to our services without at least clear implied consent, and we only process and retain information with a strict business need. That being said, when using our Services, we inherently have to collect the following information:" -msgstr "" - -#: ../../pp.rst:51 -msgid "Bank account details necessary when receiving funds from you to top-up your wallet or to transfer funds to you when you are being paid via Taler. At the current experimental stage, only the pseudonym and password you entered in the bank demonstrator is stored." -msgstr "" - -#: ../../pp.rst:53 -msgid "The amounts being withdrawn or deposited, with associated unique transaction identifiers and cryptographic signatures authorizing the transaction. Note that for purchases, we cannot identify the buyer from the collected data, so when you spend money, we only receive non-personal information." -msgstr "" - -#: ../../pp.rst:55 -msgid "When you contact us. We may collect certain information if you choose to contact us, for example to report a bug or other error with the Taler Wallet. This may include contact information such as your name, email address or phone number depending on the method you choose to contact us." -msgstr "" - -#: ../../pp.rst:59 -msgid "How we collect and process information" -msgstr "" - -#: ../../pp.rst:61 -msgid "We may process your information for the following reasons:" -msgstr "" - -#: ../../pp.rst:63 -msgid "to transfer money as specified by our users (Taler transactions);" -msgstr "" - -#: ../../pp.rst:64 -msgid "to assist government entities in linking income to the underlying contract as required by law and local regulations" -msgstr "" - -#: ../../pp.rst:65 -msgid "to support you using the Taler Wallet or to improve our Services" -msgstr "" - -#: ../../pp.rst:69 -msgid "How we share and use the information we gather" -msgstr "" - -#: ../../pp.rst:71 -msgid "We may share your Personal Data or other information about you only if you are a merchant receiving income, with your bank, to the degree necessary to execute the payment." -msgstr "" - -#: ../../pp.rst:75 -msgid "We retain Personal Data to transfer funds to the accounts designated by our users. We may retain Personal Data only for as long as mandated by law and required for the wire transfers." -msgstr "" - -#: ../../pp.rst:79 -msgid "We primarily use the limited information we receive directly from you to enhance the Taler Wallet. Some ways we may use your Personal Information are to: Contact you when necessary to respond to your comments, answer your questions, or obtain additional information on issues related to bugs or errors with the Taler Wallet that you reported." -msgstr "" - -#: ../../pp.rst:87 -msgid "Agents or third party partners" -msgstr "" - -#: ../../pp.rst:89 -msgid "We may provide your Personal Information to our employees, contractors, agents, service providers, and designees (“Agents”) to enable them to perform certain services for us exclusively, including: improvement and maintenance of our software and Services." -msgstr "" - -#: ../../pp.rst:96 -msgid "Protection of us and others" -msgstr "" - -#: ../../pp.rst:98 -msgid "We reserve the right to access, read, preserve, and disclose any information that we reasonably believe is necessary to comply with the law or a court order." -msgstr "" - -#: ../../pp.rst:104 -msgid "What personal information can I access or change?" -msgstr "" - -#: ../../pp.rst:106 -msgid "You can request access to the information we have collected from you. You can do this by contacting us at privacy@taler-systems.net. We will make sure to provide you with a copy of the data we process about you. To comply with your request, we may ask you to verify your identity. We will fulfill your request by sending your copy electronically. For any subsequent access request, we may charge you with an administrative fee. If you believe that the information we have collected is incorrect, you are welcome to contact us so we can update it and keep your data accurate. Any data that is no longer needed for purposes specified in the “How We Use the Information We Gather” section will be deleted after ninety (90) days." -msgstr "" - -#: ../../pp.rst:119 -msgid "What are your data protection rights?" -msgstr "" - -#: ../../pp.rst:121 -msgid "Anastasis would like to make sure you are fully aware of all of your data protection rights. Every user is entitled to the following:" -msgstr "" - -#: ../../pp.rst:126 -msgid "**The right to access**: You have the right to request Anastasis for" -msgstr "" - -#: ../../pp.rst:125 -msgid "copies of your personal data. We may charge you a small fee for this service." -msgstr "" - -#: ../../pp.rst:128 -msgid "**The right to rectification**: You have the right to request that Anastasis correct any information you believe is inaccurate. You also have the right to request Anastasis to complete information you believe is incomplete. The right to erasure - You have the right to request that Anastasis erase your personal data, under certain conditions." -msgstr "" - -#: ../../pp.rst:137 -msgid "**The right to restrict processing**: You have the right to request" -msgstr "" - -#: ../../pp.rst:136 -msgid "that Anastasis restrict the processing of your personal data, under certain conditions." -msgstr "" - -#: ../../pp.rst:141 -msgid "**The right to object to processing**: You have the right to object to" -msgstr "" - -#: ../../pp.rst:140 -msgid "Anastasis's processing of your personal data, under certain conditions." -msgstr "" - -#: ../../pp.rst:145 -msgid "**The right to data portability**: You have the right to request that" -msgstr "" - -#: ../../pp.rst:144 -msgid "Anastasis transfer the data that we have collected to another organization, or directly to you, under certain conditions." -msgstr "" - -#: ../../pp.rst:147 -msgid "If you make a request, we have one month to respond to you. If you would like to exercise any of these rights, please contact us at our email: privacy@taler-systems.com" -msgstr "" - -#: ../../pp.rst:151 -msgid "You can always contact your local data protection authority to enforce your rights." -msgstr "" - -#: ../../pp.rst:156 -msgid "Data retention" -msgstr "" - -#: ../../pp.rst:158 -msgid "If you uninstall the Taler Wallet mobile applications from your device, or request that your information be deleted, we still may retain some information that you have provided to us to maintain the Taler Wallet or to comply with relevant laws." -msgstr "" - -#: ../../pp.rst:165 -msgid "Data security" -msgstr "" - -#: ../../pp.rst:167 -msgid "We are committed to making sure your information is protected. We employ several physical and electronic safeguards to keep your information safe, including encrypted user passwords, two factor verification and authentication on passwords where possible, and securing connections with industry standard transport layer security. You are also welcome to contact us using GnuPG encrypted e-mail. Even with all these precautions, we cannot fully guarantee against the access, disclosure, alteration, or deletion of data through events, including but not limited to hardware or software failure or unauthorized use. Any information that you provide to us is done so entirely at your own risk." -msgstr "" - -#: ../../pp.rst:180 -msgid "Changes and updates to privacy policy" -msgstr "" - -#: ../../pp.rst:182 -msgid "We reserve the right to update and revise this privacy policy at any time. We occasionally review this Privacy Policy to make sure it complies with applicable laws and conforms to changes in our business. We may need to update this Privacy Policy, and we reserve the right to do so at any time. If we do revise this Privacy Policy, we will update the “Effective Date” at the bottom of this page so that you can tell if it has changed since your last visit. As we generally do not collect contact information and also do not track your visits, we will not be able to notify you directly. However, the Taler Wallet may inform you about a change in the privacy policy once it detects that the policy has changed. Please review this Privacy Policy regularly to ensure that you are aware of its terms. Any use of our Services after an amendment to our Privacy Policy constitutes your acceptance to the revised or amended agreement." -msgstr "" - -#: ../../pp.rst:198 -msgid "International users and visitors" -msgstr "" - -#: ../../pp.rst:200 -msgid "Our Services are hosted in Switzerland. If you are a user accessing the Services from the European Union, Asia, US, or any other region with laws or regulations governing personal data collection, use, and disclosure that differ from Swiss laws, please be advised that through your continued use of the Services, which is governed by Swiss law, you are transferring your Personal Information to Switzerland and you consent to that transfer." -msgstr "" - -#: ../../pp.rst:209 -msgid "Questions" -msgstr "" - -#: ../../pp.rst:211 -msgid "Please contact us at privacy@taler-systems.net if you have questions about our privacy practices that are not addressed in this Privacy Statement." -msgstr "" diff --git a/contrib/samples/wire-auditor.json b/contrib/samples/wire-auditor.json index ce2baf2e..905bbfcf 100644 --- a/contrib/samples/wire-auditor.json +++ b/contrib/samples/wire-auditor.json @@ -38,8 +38,8 @@ "value": 5, "fraction": 1000000 }, - "missattribution_in_inconsistencies": [], - "total_missattribution_in": { + "misattribution_in_inconsistencies": [], + "total_misattribution_in": { "currency": "KUDOS", "value": 0, "fraction": 0 @@ -233,4 +233,4 @@ "fraction": 1000000 }, "lag_details": [] -}
\ No newline at end of file +} diff --git a/contrib/sigp/h.header b/contrib/sigp/h.header index a0e3c6ae..6ed22a63 100644 --- a/contrib/sigp/h.header +++ b/contrib/sigp/h.header @@ -27,6 +27,5 @@ #ifndef TALER_SIGNATURES_H #define TALER_SIGNATURES_H -#include <gnunet/gnunet_util_lib.h> -#include "taler_amount_lib.h" -#include "taler_crypto_lib.h" + + diff --git a/contrib/taler-auditor-dbconfig b/contrib/taler-auditor-dbconfig new file mode 100755 index 00000000..245d6970 --- /dev/null +++ b/contrib/taler-auditor-dbconfig @@ -0,0 +1,132 @@ +#!/bin/bash +# This file is part of GNU TALER. +# Copyright (C) 2023 Taler Systems SA +# +# 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 Christian Grothoff +# +# +# Error checking on +set -eu + +RESET_DB=0 +SKIP_DBINIT=0 +DBUSER="taler-auditor-httpd" +DBNAME="auditor" +CFGFILE="/etc/taler/secrets/auditor-db.secret.conf" + +# Parse command-line options +while getopts ':hn:rsu:' OPTION; do + case "$OPTION" in + h) + echo 'Supported options:' + echo " -c FILENAME -- write configuration to FILENAME (default: $CFGFILE)" + echo " -n NAME -- user NAME for database name (default: $DBNAME)" + echo " -r -- reset database (dangerous)" + echo " -s -- skip database initialization" + echo " -u USER -- taler-auditor to be run by USER (default: $DBUSER)" + exit 0 + ;; + n) + DBNAME="$OPTARG" + ;; + r) + RESET_DB="1" + ;; + s) + SKIP_DBINIT="1" + ;; + u) + DBUSER="$OPTARG" + ;; + ?) + exit_fail "Unrecognized command line option" + ;; + esac +done + +if ! id postgres > /dev/null +then + echo "Could not find 'postgres' user. Please install Postgresql first" + exit 1 +fi + +if [ "$(id -u)" -ne 0 ] +then + echo "This script must be run as root" + exit 1 +fi + +if [ 0 = "$SKIP_DBINIT" ] +then + if ! taler-auditor-dbinit -v 2> /dev/null + then + echo "Required 'taler-auditor-dbinit' not found. Please fix your installation." + fi +fi + +if ! id "$DBUSER" > /dev/null +then + echo "Could not find '$DBUSER' user. Please set it up first" + exit 1 +fi + +if sudo -i -u postgres psql "$DBNAME" < /dev/null 2> /dev/null +then + if [ 1 = "$RESET_DB" ] + then + echo "Deleting existing database '$DBNAME'." 1>&2 + sudo -i -u postgres dropdb "$DBNAME" + else + echo "Database '$DBNAME' already exists, refusing to setup again." + echo "Use -r to delete the existing database first (dangerous!)." + exit 77 + fi +fi + +echo "Setting up database user $DBUSER." 1>&2 + +if ! sudo -i -u postgres createuser "$DBUSER" 2> /dev/null +then + echo "Database user '$DBUSER' already existed. Continuing anyway." 1>&2 +fi + +echo "Creating database $DBNAME." 1>&2 + +if ! sudo -i -u postgres createdb -O "$DBUSER" "$DBNAME" +then + echo "Failed to create database '$DBNAME'" + exit 1 +fi + +if [ -f "$CFGFILE" ] +then + echo "Adding database configuration to '$CFGFILE'." 1>&2 + echo -e "[auditordb-postgres]\nCONFIG=postgres:///$DBNAME\n" >> "$CFGFILE" +else + echo "Configuration '$CFGFILE' does not yet exist, creating it." 1>&2 + mkdir -p "$(dirname "$CFGFILE")" + echo -e "[auditordb-postgres]\nCONFIG=postgres:///$DBNAME\n" >> "$CFGFILE" + chown "$DBUSER":root "$CFGFILE" + chmod 460 "$CFGFILE" +fi + +if [ 0 = "$SKIP_DBINIT" ] +then + echo "Initializing database '$DBNAME'." 1>&2 + sudo -u "$DBUSER" taler-auditor-dbinit +fi + +echo "Database configuration finished." 1>&2 + +exit 0 diff --git a/contrib/taler-bank-manage-testing b/contrib/taler-bank-manage-testing index 7e4da516..cd9e41a1 100755 --- a/contrib/taler-bank-manage-testing +++ b/contrib/taler-bank-manage-testing @@ -1,9 +1,9 @@ #!/bin/sh # This file is in the public domain -# Wrapper around 'taler-bank-manage' to first configure the required +# Wrapper around libeufin to first configure the required # testing accounts before launching the bank properly. # -# Takes 3 arguments: +# Takes 4 arguments: # $1: the Nexus port (Sandbox port prepends 1 to it) # $2: the database name # $3: exchange base URL (used to specify the default exchange) @@ -11,6 +11,12 @@ set -eu +if [ "$1" = "--help" ]; +then + echo "This is a tool to launch a libeufin based bank for testing." + echo "Call using: Nexus port number, SQLite file path, exchange base URL, config file path." + exit 0 +fi if [ "$#" -ne 4 ]; then echo "illegal number of parameters. \ @@ -31,19 +37,19 @@ libeufin-sandbox serve --port "1$1" \ > libeufin-sandbox-stdout.log \ 2> libeufin-sandbox-stderr.log & echo $! > libeufin-sandbox.pid -export LIBEUFIN_SANDBOX_URL="http://localhost:1$1/demobanks/default" +export LIBEUFIN_SANDBOX_URL="http://localhost:1$1/" set +e echo -n "Waiting for Sandbox.." for n in `seq 1 50`; do echo -n "." sleep 1 - wget --timeout=1 \ + if wget --timeout=1 \ --tries=3 --waitretry=0 \ -o /dev/null -O /dev/null \ - $LIBEUFIN_SANDBOX_URL - break + $LIBEUFIN_SANDBOX_URL; then + break + fi done -sleep 1 #7293 echo OK register_sandbox_account() { @@ -122,13 +128,13 @@ set +e for n in `seq 1 50`; do echo -n "." sleep 1 - wget --timeout=1 \ + if wget --timeout=1 \ --tries=3 --waitretry=0 \ -o /dev/null -O /dev/null \ - $LIBEUFIN_NEXUS_URL - break + $LIBEUFIN_NEXUS_URL; then + break + fi done -sleep 1 #7293 set -e echo OK export LIBEUFIN_NEXUS_USERNAME=exchange diff --git a/contrib/taler-exchange-dbconfig b/contrib/taler-exchange-dbconfig new file mode 100755 index 00000000..8fb05d73 --- /dev/null +++ b/contrib/taler-exchange-dbconfig @@ -0,0 +1,160 @@ +#!/bin/bash +# This file is part of GNU TALER. +# Copyright (C) 2023 Taler Systems SA +# +# 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 Christian Grothoff +# +# +# Error checking on +set -eu + +RESET_DB=0 +SKIP_DBINIT=0 +FORCE_PERMS=0 +DBUSER="taler-exchange-httpd" +DBGROUP="taler-exchange-db" +DBNAME="exchange" +CFGFILE="/etc/taler/secrets/exchange-db.secret.conf" + +# Parse command-line options +while getopts ':g:hn:prsu:' OPTION; do + case "$OPTION" in + h) + echo 'Supported options:' + echo " -c FILENAME -- write configuration to FILENAME (default: $CFGFILE)" + echo " -g GROUP -- taler-exchange to be run by GROUP (default: $DBGROUP)" + echo " -h -- print this help text" + echo " -n NAME -- user NAME for database name (default: $DBNAME)" + echo " -r -- reset database (dangerous)" + echo " -p -- force permission setup even without database initialization" + echo " -s -- skip database initialization" + echo " -u USER -- taler-exchange to be run by USER (default: $DBUSER)" + exit 0 + ;; + n) + DBNAME="$OPTARG" + ;; + p) + FORCE_PERMS="1" + ;; + r) + RESET_DB="1" + ;; + s) + SKIP_DBINIT="1" + ;; + u) + DBUSER="$OPTARG" + ;; + ?) + exit_fail "Unrecognized command line option" + ;; + esac +done + +if ! id postgres > /dev/null +then + echo "Could not find 'postgres' user. Please install Postgresql first" + exit 1 +fi + +if [ "$(id -u)" -ne 0 ] +then + echo "This script must be run as root" + exit 1 +fi + +if [ 0 = "$SKIP_DBINIT" ] +then + if ! taler-exchange-dbinit -v 2> /dev/null + then + echo "Required 'taler-exchange-dbinit' not found. Please fix your installation." + fi +fi + +if ! id "$DBUSER" > /dev/null +then + echo "Could not find '$DBUSER' user. Please set it up first" + exit 1 +fi + +if sudo -i -u postgres psql "$DBNAME" < /dev/null 2> /dev/null +then + if [ 1 = "$RESET_DB" ] + then + echo "Deleting existing database '$DBNAME'." 1>&2 + sudo -i -u postgres dropdb "$DBNAME" + else + echo "Database '$DBNAME' already exists, refusing to setup again." + echo "Use -r to delete the existing database first (dangerous!)." + exit 77 + fi +fi + +echo "Setting up database user '$DBUSER'." 1>&2 + +if ! sudo -i -u postgres createuser "$DBUSER" 2> /dev/null +then + echo "Database user '$DBUSER' already existed. Continuing anyway." 1>&2 +fi + +echo "Creating database '$DBNAME'." 1>&2 + +if ! sudo -i -u postgres createdb -O "$DBUSER" "$DBNAME" +then + echo "Failed to create database '$DBNAME'" + exit 1 +fi + +if [ -f "$CFGFILE" ] +then + echo "Adding database configuration to '$CFGFILE'." 1>&2 + echo -e "[exchangedb-postgres]\nCONFIG=postgres:///$DBNAME\n" >> "$CFGFILE" + chown root:"$DBGROUP" "$CFGFILE" + chmod 640 "$CFGFILE" +else + echo "Configuration '$CFGFILE' does not yet exist, creating it." 1>&2 + mkdir -p "$(dirname "$CFGFILE")" + echo -e "[exchangedb-postgres]\nCONFIG=postgres:///$DBNAME\n" >> "$CFGFILE" + chown root:"$DBGROUP" "$CFGFILE" + chmod 640 "$CFGFILE" +fi + +if [ 0 = "$SKIP_DBINIT" ] +then + echo "Initializing database '$DBNAME'." 1>&2 + sudo -u "$DBUSER" taler-exchange-dbinit +fi + +if [ 0 = "$SKIP_DBINIT" ] || [ 1 = "$FORCE_PERMS" ] +then + DB_GRP="$(getent group "$DBGROUP" | sed -e "s/.*://g" -e "s/,/ /g")" + echo "Initializing permissions for '$DB_GRP'." 1>&2 + for GROUPIE in $DB_GRP + do + if [ "$GROUPIE" != "$DBUSER" ] + then + sudo -u "$DBUSER" \ + echo -e 'GRANT SELECT,INSERT,UPDATE ON ALL TABLES IN SCHEMA exchange TO "'"$GROUPIE"'";\n' \ + 'GRANT USAGE ON ALL SEQUENCES IN SCHEMA exchange TO "'"$GROUPIE"'";\n' \ + | psql taler-exchange + fi + done +fi + + + +echo "Database configuration finished." 1>&2 + +exit 0 diff --git a/contrib/taler-nexus-prepare b/contrib/taler-nexus-prepare index 6a36387d..d98e5eb4 100755 --- a/contrib/taler-nexus-prepare +++ b/contrib/taler-nexus-prepare @@ -17,24 +17,24 @@ FACADE_LABEL="my-facade" export LIBEUFIN_SANDBOX_USERNAME=exchange export LIBEUFIN_SANDBOX_PASSWORD=x -export LIBEUFIN_SANDBOX_URL=http://localhost:5000/demobanks/default +export LIBEUFIN_SANDBOX_URL=http://localhost:5000/ libeufin-cli sandbox demobank register --name "Exchange Company" export LIBEUFIN_SANDBOX_USERNAME=fortytwo export LIBEUFIN_SANDBOX_PASSWORD=x -export LIBEUFIN_SANDBOX_URL=http://localhost:5000/demobanks/default +export LIBEUFIN_SANDBOX_URL=http://localhost:5000/ libeufin-cli sandbox demobank register \ --name User42 --iban FR7630006000011234567890189 export LIBEUFIN_SANDBOX_USERNAME=fortythree export LIBEUFIN_SANDBOX_PASSWORD=x -export LIBEUFIN_SANDBOX_URL=http://localhost:5000/demobanks/default +export LIBEUFIN_SANDBOX_URL=http://localhost:5000/ libeufin-cli sandbox demobank register \ --name User43 --iban GB33BUKB20201555555555 export LIBEUFIN_SANDBOX_USERNAME=admin export LIBEUFIN_SANDBOX_PASSWORD=secret -export LIBEUFIN_SANDBOX_URL=http://localhost:5000/demobanks/default +export LIBEUFIN_SANDBOX_URL=http://localhost:5000/ echo -n "Create EBICS host at Sandbox..." libeufin-cli sandbox \ --sandbox-url "http://localhost:5000" \ diff --git a/contrib/taler-terms-generator.in b/contrib/taler-terms-generator.in new file mode 100755 index 00000000..6b5466cf --- /dev/null +++ b/contrib/taler-terms-generator.in @@ -0,0 +1,285 @@ +#!/bin/bash +# This file is part of GNU TALER. +# Copyright (C) 2014-2023 Taler Systems SA +# +# 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 +# @author Christian Grothoff +# +# +# Error checking on +set -eu + +# Call with target language as first argument. +function make_config() +{ + XLOC=$(echo "$LOCALE_DIR" | sed -e "s/\//\\\\\\//g") + sed -e "s/%VERSION%/$VERSION/g" \ + -e "s/%TITLE%/$TITLE/g" \ + -e "s/%AUTHOR%/$AUTHOR/g" \ + -e "s/%LOCALE_DIR%/$XLOC/g" \ + -e "s/%COPYRIGHT%/$COPYRIGHT/g" \ + -e "s/%LANGUAGE%/$1/g" \ + > "${BUILDDIR}/conf.py" <<EOF +import sys +import os +sys.path.append(os.path.abspath('_exts')) +needs_sphinx = '1.8.5' +extensions = [ + 'sphinx.ext.todo', + 'sphinx.ext.imgmath', +] +templates_path = ['_templates'] +source_suffix = { + '.rst': 'restructuredtext', +} +master_doc = '%VERSION%' +project = u'%VERSION%' +copyright = u'%COPYRIGHT%' +version = '%VERSION%' +release = '%VERSION%' +language = "%LANGUAGE%" +exclude_patterns = ['_build', '_exts', 'cf', 'prebuilt'] +locale_dirs = ['%LOCALE_DIR%/'] +gettext_compact = False +pygments_style = 'sphinx' +html_theme = 'epub' +rst_epilog = "" +html_show_sphinx = False +html_theme_options = { + "relbar1": "false", + "footer": "false", +} +html_title = "%TITLE%" +html_short_title = "%TITLE%" +html_use_index = True +html_show_sphinx = False +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': '', +} +latex_documents = [ + ('%VERSION%', '%VERSION%.tex', + '%TITLE%', '%AUTHOR%', 'manual'), +] +epub_basename = "%VERSION%" +epub_title = "%TITLE%" +EOF +} + +# defaults +AUTHOR="GNU Taler team" +VERSION="exchange-tos-v0" +LOCALE_DIR="%localedir%" +OUTPUT="%termsdir%" +PAPER="a4" +COPYRIGHT="2014-2023 Taler Systems SA (GPLv3+ or GFDL 1.3+)" + +# Parse command-line options +while getopts ':a:C:hi:l:L:o:p:t:' OPTION; do + case "$OPTION" in + a) + AUTHOR="$OPTARG" + ;; + C) + COPYRIGHT="$OPTARG" + ;; + h) + echo 'Supported options:' + echo ' -a AUTHOR -- set author header' "(default: $AUTHOR)" + echo ' -C COPYRIGHT -- set copyright header' "(default: $COPYRIGHT)" + echo ' -h -- print this help' + echo ' -i INPUT -- input file to convert' "(default: $VERSION)" + echo ' -l LANGUAGE -- target language to add' + echo ' -L LOCALE_DIR -- directory with resources for translation' "(default: $LOCALE_DIR)" + echo ' -o OUTPUT -- output directory' "(default: $OUTPUT)" + echo ' -p PAPER -- paper format' "(default: $PAPER)" + echo ' -t TITLE -- title of the document to generate' + exit 0 + ;; + l) + ADD_LANGUAGE="$OPTARG" + ;; + L) + LOCALE_DIR="$OPTARG" + ;; + i) + VERSION="$OPTARG" + ;; + o) + OUTPUT="$OPTARG" + ;; + p) + PAPER="$OPTARG" + case "$PAPER" in + a4|letter) + ;; + *) + echo "Error: Paper format '$PAPER' invalid (use 'a4' or 'letter')" 1>&2 + exit 1 + ;; + esac + ;; + t) + TITLE="$OPTARG" + ;; + ?) + echo "Unrecognized command line option" 1>&2 + exit 1 + ;; + esac +done + +if ! which sphinx-build > /dev/null +then + echo "Command 'sphinx-build' not found, but required. Please install sphinx." 1>&2 + exit 1 +fi + +# We append ".rst" if needed, remove if given on command-line +# shellcheck disable=SC2001 +VERSION=$(echo "${VERSION}" | sed -e "s/\.rst$//") + +# Sometimes we just want the basename, not the directory. +VERSION_BASENAME=$(basename "${VERSION}") + +BUILDDIR=$(mktemp -d /tmp/taler-terms-XXXXXX) +if [ ! -f "${VERSION}.rst" ] +then + echo "Error: File '${VERSION}.rst' not found. Please check '-i' option." 1>&2 + exit 1 +fi + +cp "${VERSION}.rst" "${BUILDDIR}/" + +if [ -z ${TITLE+x} ] +then + TITLE=$(head -n1 "${VERSION}.rst") + echo "Title automatically set to '$TITLE'" 1>&2 +fi + +if [ -n "${ADD_LANGUAGE+x}" ] +then + if ! echo "${ADD_LANGUAGE}" | grep -e '^..$' > /dev/null + then + echo "Error: Invalid language '${ADD_LANGUAGE}'. Two characters (en, de, fr, ...) expected." 1>&2 + exit 1 + fi + echo "Adding language files for translations to '${ADD_LANGUAGE}'" 1>&2 + make_config "${ADD_LANGUAGE}" + sphinx-build \ + -b gettext \ + -D language="${ADD_LANGUAGE}" \ + -d "${BUILDDIR}/.doctrees" \ + "${BUILDDIR}" \ + "${LOCALE_DIR}/${ADD_LANGUAGE}/LC_MESSAGES/" \ + &> "${BUILDDIR}/add-language.log" + if [ -f "${LOCALE_DIR}/${ADD_LANGUAGE}/LC_MESSAGES/${VERSION_BASENAME}.po" ] + then + msgmerge --lang="${ADD_LANGUAGE}" \ + --no-location \ + -o "${LOCALE_DIR}/${ADD_LANGUAGE}/LC_MESSAGES/${VERSION_BASENAME}.mrg" \ + "${LOCALE_DIR}/${ADD_LANGUAGE}/LC_MESSAGES/${VERSION_BASENAME}.po" \ + "${LOCALE_DIR}/${ADD_LANGUAGE}/LC_MESSAGES/${VERSION_BASENAME}.pot" + mv "${LOCALE_DIR}/${ADD_LANGUAGE}/LC_MESSAGES/${VERSION_BASENAME}.mrg" \ + "${LOCALE_DIR}/${ADD_LANGUAGE}/LC_MESSAGES/${VERSION_BASENAME}.po" + else + mv "${LOCALE_DIR}/${ADD_LANGUAGE}/LC_MESSAGES/${VERSION_BASENAME}.pot" \ + "${LOCALE_DIR}/${ADD_LANGUAGE}/LC_MESSAGES/${VERSION_BASENAME}.po" + fi + rm -f "${LOCALE_DIR}/${ADD_LANGUAGE}/LC_MESSAGES/${VERSION_BASENAME}.pot" + echo "Done" 1>&2 + exit 0 +fi + +# shellcheck disable=SC2086 +for d in en $(ls -d ${LOCALE_DIR}/?? 2> /dev/null || true) +do + LANGUAGE=$(basename "$d") + if [ "en" != "${LANGUAGE}" ] && [ ! -f "${LOCALE_DIR}/${LANGUAGE}/LC_MESSAGES/${VERSION_BASENAME}.po" ] + then + echo "Skipping language ${LANGUAGE}: no translation for ${VERSION_BASENAME} found." + continue + fi + echo "Generating files at '$OUTPUT' for ETag '$VERSION_BASENAME' and language '${LANGUAGE}' in '${BUILDDIR}':" 1>&2 + + make_config "$LANGUAGE" + mkdir -p "${OUTPUT}/${LANGUAGE}/" + + LBUILD="sphinx-build -D language=${LANGUAGE} -d ${BUILDDIR}/.doctrees" + + echo "$VERSION_BASENAME XML ($LANGUAGE)..." 1>&2 +# shellcheck disable=SC2090 + $LBUILD \ + -b xml \ + "${BUILDDIR}" \ + "${BUILDDIR}/xml" \ + &> "${BUILDDIR}/xml-sphinx.log" + mv "${BUILDDIR}/xml/${VERSION_BASENAME}.xml" "${OUTPUT}/${LANGUAGE}/${VERSION_BASENAME}.xml" + + echo "$VERSION_BASENAME TXT ($LANGUAGE)..." 1>&2 +# shellcheck disable=SC2090 + $LBUILD \ + -b text \ + "${BUILDDIR}" \ + "${BUILDDIR}/txt" \ + &> "${BUILDDIR}/txt-sphinx.log" + mv "${BUILDDIR}/txt/${VERSION_BASENAME}.txt" "${OUTPUT}/${LANGUAGE}/${VERSION_BASENAME}.txt" + cp "${OUTPUT}/${LANGUAGE}/${VERSION_BASENAME}.txt" "${OUTPUT}/${LANGUAGE}/${VERSION_BASENAME}.md" + + echo "$VERSION_BASENAME HTML ($LANGUAGE)..." 1>&2 +# shellcheck disable=SC2090 + $LBUILD \ + -b html \ + "${BUILDDIR}" \ + "${BUILDDIR}/html" \ + &> "${BUILDDIR}/html-sphinx.log" + htmlark \ + -o "${OUTPUT}/${LANGUAGE}/${VERSION_BASENAME}.html" \ + "${BUILDDIR}/html/${VERSION_BASENAME}.html" + + echo "$VERSION_BASENAME EPUB ($LANGUAGE)..." 1>&2 +# shellcheck disable=SC2090 + $LBUILD \ + -b epub \ + "${BUILDDIR}" \ + "${BUILDDIR}/epub" \ + &> "${BUILDDIR}/epub-sphinx.log" + mv "${BUILDDIR}/epub/${VERSION_BASENAME}.epub" "${OUTPUT}/${LANGUAGE}/${VERSION_BASENAME}.epub" + + echo "$VERSION_BASENAME PDF ($LANGUAGE)..." 1>&2 +# shellcheck disable=SC2090 + $LBUILD \ + -b latex \ + -D latex_paper_size="${PAPER}" \ + "${BUILDDIR}" \ + "${BUILDDIR}/pdf" \ + &> "${BUILDDIR}/pdf-sphinx.log" + make \ + -C "${BUILDDIR}/pdf" \ + all-pdf \ + &> "${BUILDDIR}/pdf-latex.log" + mv "${BUILDDIR}/pdf/${VERSION_BASENAME}.pdf" "${OUTPUT}/${LANGUAGE}/${VERSION_BASENAME}.pdf" +done + +echo "Done" 1>&2 +exit 0 diff --git a/contrib/tos/.gitignore b/contrib/tos/.gitignore deleted file mode 100644 index fb83616e..00000000 --- a/contrib/tos/.gitignore +++ /dev/null @@ -1,3 +0,0 @@ -sphinx.err -sphinx.log -_build/ diff --git a/contrib/tos/Makefile b/contrib/tos/Makefile deleted file mode 100644 index ab29543c..00000000 --- a/contrib/tos/Makefile +++ /dev/null @@ -1,109 +0,0 @@ -# Makefile for Sphinx documentation -# -# You can set these variables from the command line. -SPHINXOPTS = -SPHINXBUILD = sphinx-build -PAPER = -BUILDDIR = _build - -# User-friendly check for sphinx-build -ifeq ($(shell which $(SPHINXBUILD) >/dev/null 2>&1; echo $$?), 1) -$(error The '$(SPHINXBUILD)' command was not found. Make sure you have Sphinx installed, then set the SPHINXBUILD environment variable to point to the full path of the '$(SPHINXBUILD)' executable. Alternatively you can add the directory with the executable to your PATH. If you don't have Sphinx installed, grab it from http://sphinx-doc.org/) -endif - -# Internal variables. -PAPEROPT_a4 = -D latex_paper_size=a4 -PAPEROPT_letter = -D latex_paper_size=letter -ALLSPHINXOPTS = -d $(BUILDDIR)/doctrees $(PAPEROPT_$(PAPER)) $(SPHINXOPTS) . -# the i18n builder cannot share the environment and doctrees with the others -I18NSPHINXOPTS = $(PAPEROPT_$(PAPER)) $(SPHINXOPTS) . - -.PHONY: help clean html json epub latex latexpdf text man doctest gettext - -help: - @echo "Please use \`make <target>' where <target> is one of" - @echo " html to make a single large HTML file" - @echo " json to make JSON files" - @echo " epub to make an epub" - @echo " latex to make LaTeX files, you can set PAPER=a4 or PAPER=letter" - @echo " pdf to make LaTeX files and run them through pdflatex" - @echo " txt to make text files" - @echo " man to make manual pages" - @echo " texinfo to make Texinfo files" - @echo " info to make Texinfo files and run them through makeinfo" - @echo " gettext to make PO message catalogs" - @echo " xml to make Docutils-native XML files" - @echo " pseudoxml to make pseudoxml-XML files for display purposes" - @echo " doctest to run all doctests embedded in the documentation (if enabled)" - -clean: - rm -rf $(BUILDDIR)/* - - -# The html-linked builder does not support caching, so we -# remove all cached state first. -html: - $(SPHINXBUILD) -b html $(ALLSPHINXOPTS) $(BUILDDIR)/html - @echo - @echo "Build finished. The HTML page is in $(BUILDDIR)/html." - -json: - $(SPHINXBUILD) -b json $(ALLSPHINXOPTS) $(BUILDDIR)/json - @echo - @echo "Build finished; now you can process the JSON files." - -epub: - $(SPHINXBUILD) -b epub $(ALLSPHINXOPTS) $(BUILDDIR)/epub - @echo - @echo "Build finished. The epub file is in $(BUILDDIR)/epub." - -latex: - $(SPHINXBUILD) -b latex $(ALLSPHINXOPTS) $(BUILDDIR)/latex - @echo - @echo "Build finished; the LaTeX files are in $(BUILDDIR)/latex." - @echo "Run \`make' in that directory to run these through (pdf)latex" \ - "(use \`make latexpdf' here to do that automatically)." - -pdf: - $(SPHINXBUILD) -b latex $(ALLSPHINXOPTS) $(BUILDDIR)/pdf - @echo "Running LaTeX files through pdflatex..." - $(MAKE) -C $(BUILDDIR)/pdf all-pdf - @echo "pdflatex finished; the PDF files are in $(BUILDDIR)/pdf." - -txt: - $(SPHINXBUILD) -b text $(ALLSPHINXOPTS) $(BUILDDIR)/txt - @echo - @echo "Build finished. The text files are in $(BUILDDIR)/txt." - -man: - $(SPHINXBUILD) -b man $(ALLSPHINXOPTS) $(BUILDDIR)/man - @echo - @echo "Build finished. The manual pages are in $(BUILDDIR)/man." - -texinfo: - $(SPHINXBUILD) -b texinfo $(ALLSPHINXOPTS) $(BUILDDIR)/texinfo - @echo - @echo "Build finished. The Texinfo files are in $(BUILDDIR)/texinfo." - @echo "Run \`make' in that directory to run these through makeinfo" \ - "(use \`make info' here to do that automatically)." - -info: - $(SPHINXBUILD) -b texinfo $(ALLSPHINXOPTS) $(BUILDDIR)/info - @echo "Running Texinfo files through makeinfo..." - make -C $(BUILDDIR)/texinfo info - @echo "makeinfo finished; the Info files are in $(BUILDDIR)/info." - -gettext: - $(SPHINXBUILD) -b gettext $(I18NSPHINXOPTS) $(BUILDDIR)/locale - @echo - @echo "Build finished. The message catalogs are in $(BUILDDIR)/locale." - -doctest: - $(SPHINXBUILD) -b doctest $(ALLSPHINXOPTS) $(BUILDDIR)/doctest - @echo "Testing of doctests in the sources finished, look at the " \ - "results in $(BUILDDIR)/doctest/output.txt." - -xml: - $(SPHINXBUILD) -b xml $(ALLSPHINXOPTS) $(BUILDDIR)/xml - @echo - @echo "Build finished. The XML files are in $(BUILDDIR)/xml." diff --git a/contrib/tos/README b/contrib/tos/README deleted file mode 100644 index dd78024c..00000000 --- a/contrib/tos/README +++ /dev/null @@ -1,58 +0,0 @@ -This directory contains the terms of service (template) for exchange -operators. - - -Dependencies -============ - -Generating new Terms of Service requires Sphinx, LaTeX with babel -packages for all supported languages. On Debian, you should -at least install: - -$ apt install python3-sphinx sphinx-intl texlive-lang-german texlive-lang-english latexmk texlive-latex-recommended texlive-latex-extra - -(NOTE: List may be incomplete.) - - -Updating the Terms of Service -============================= - -The master file with the Terms of service is 'tos.rst'. - -If you make substantial changes, you MUST change the "TOS_VERSION" -in contrib/Makefile.am to the new Etag. - -To begin the translation into other languages after editing the master -file, run - -$ make gettext - -to generate the master PO file. Then, run - -$ sphinx-intl update -p _build/locale/ -l de -l fr -l it - -to update the PO files for the various languages (extend the list of -languages as necessary). The PO files for the translators are kept -at locale/$LANG/LC_MESSAGES/tos.po for the language $LANG. - -Once all PO files have been updated with new translations, run - -$ make update-tos - -in the "contrib/" directory to generate all of the formats. The -respective make rule calls the '../update-tos.sh' script in the -contrib/ directory, which calls the 'Makefile' in the tos/ -directory for the various supported languages and file formats -and then moves the generated files to the target directory -('contrib/tos/$LANG/$VERSION.$FORMAT') - - -Adding a new language -===================== - -To add a new language $LANG, add $LANG to "TOS_LANGUAGES" in -'contrib/Makefile.am' and run - -$ sphinx-intl update -p _build/gettext -l $LANG - -to generate the PO template. diff --git a/contrib/tos/conf.py b/contrib/tos/conf.py deleted file mode 100644 index 29392556..00000000 --- a/contrib/tos/conf.py +++ /dev/null @@ -1,282 +0,0 @@ -""" - This file is part of GNU TALER. - Copyright (C) 2014-2020 Taler Systems SA - - 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 - -sys.path.append(os.path.abspath('_exts')) - -#import taler_sphinx_theme - -# 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.8.5' - -# Add any Sphinx extension module names here, as strings. They can be -# extensions coming with Sphinx (named 'sphinx.ext.*') or your custom -# ones. -extensions = [ - 'sphinx.ext.todo', - 'sphinx.ext.imgmath', -] - -# Add any paths that contain templates here, relative to this directory. -templates_path = ['_templates'] - -source_suffix = { - '.rst': 'restructuredtext', -} - -# The encoding of source files. -#source_encoding = 'utf-8-sig' - -# The master toctree document. -master_doc = 'tos' - -# General information about the project. -project = u'tos' -copyright = u'2014-2020 Taler Systems SA (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' -# The full version, including alpha/beta/rc tags. -release = '0' - -# The language for content autogenerated by Sphinx. Refer to documentation -# for a list of supported languages. -# language = "en de" - -# 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', '_exts', 'cf', 'prebuilt'] - -# The reST default role (used for this markup: `text`) to use for all -# documents. -# default_role = "ts:type" - -locale_dirs = ['locale/'] -gettext_compact = False - -# 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 = 'epub' - -#html_theme_path = taler_sphinx_theme.html_theme_path() - -#html_sidebars = {'**': ['logo-text.html', 'globaltoc.html', 'searchbox.html']} - -rst_epilog = "" - -html_show_sphinx = False - -html_theme_options = { - # Set the name of the project to appear in the sidebar - "relbar1": "false", - "footer": "false", -} - -# 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 = "Taler Terms of Service" - -# A shorter title for the navigation bar. Default is the same as html_title. -html_short_title = "Terms of Service" - -# 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 - -# -- 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 = [ - ('tos', 'tos.tex', - 'Terms of Service', 'GNU Taler team', '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 = ["fdl-1.3"] - -# If false, no module index is generated. -#latex_domain_indices = True - -# -- Options for manual page output --------------------------------------- - -# If true, show URL addresses after external links. -#man_show_urls = False - -# -- Options for Texinfo output ------------------------------------------- - -# 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 - - -# -- Options for epub output ---------------------------- - -epub_basename = "tos" - -epub_title = "Terms of Service" diff --git a/contrib/tos/en/0.epub b/contrib/tos/en/0.epub Binary files differdeleted file mode 100644 index 4417674e..00000000 --- a/contrib/tos/en/0.epub +++ /dev/null diff --git a/contrib/tos/en/0.html b/contrib/tos/en/0.html deleted file mode 100644 index 0a1c1d33..00000000 --- a/contrib/tos/en/0.html +++ /dev/null @@ -1,316 +0,0 @@ - - -<html lang="en"> - <head> - <meta charset="utf-8" /> - <meta name="viewport" content="width=device-width, initial-scale=1.0" /> - <title>Terms Of Service — Taler Terms of Service</title> - <link rel="stylesheet" href="_static/pygments.css" type="text/css" /> - <link rel="stylesheet" href="_static/epub.css" type="text/css" /> - <script id="documentation_options" data-url_root="./" src="_static/documentation_options.js"></script> - <script src="_static/jquery.js"></script> - <script src="_static/underscore.js"></script> - <script src="_static/doctools.js"></script> - </head><body> - - <div class="document"> - <div class="documentwrapper"> - <div class="bodywrapper"> - <div class="body" role="main"> - - <div class="section" id="terms-of-service"> -<h1>Terms Of Service<a class="headerlink" href="#terms-of-service" title="Permalink to this headline">¶</a></h1> -<p>Last Updated: 09.06.2022</p> -<p>Welcome! The ICE research center of the Bern University of Applied Sciences -in Switzerland (“we,” “our,” or “us”) provides an experimental payment service -through our Internet presence (collectively the “Services”). Before using our -Services, please read the Terms of Service (the “Terms” or the “Agreement”) -carefully.</p> -<div class="section" id="this-is-research"> -<h2>This is research<a class="headerlink" href="#this-is-research" title="Permalink to this headline">¶</a></h2> -<p>This is a research experiment. Any funds wired to our Bitcoin address are -considered a donation to our research group. We may use them to enable -payments following the GNU Taler protocol, or simply keep them at our -discretion. The service is experimental and may also be discontinued at -any time, in which case all remaining funds will definitively be kept by -the research group.</p> -</div> -<div class="section" id="overview"> -<h2>Overview<a class="headerlink" href="#overview" title="Permalink to this headline">¶</a></h2> -<p>This section provides a brief summary of the highlights of this -Agreement. Please note that when you accept this Agreement, you are accepting -all of the terms and conditions and not just this section. We and possibly -other third parties provide Internet services which interact with the Taler -Wallet’s self-hosted personal payment application. When using the Taler Wallet -to interact with our Services, you are agreeing to our Terms, so please read -carefully.</p> -<div class="section" id="highlights"> -<h3>Highlights:<a class="headerlink" href="#highlights" title="Permalink to this headline">¶</a></h3> -<blockquote> -<div><ul class="simple"> -<li><p>You are responsible for keeping the data in your Taler Wallet at all times -under your control. Any losses arising from you not being in control of -your private information are your problem.</p></li> -<li><p>We may transfer funds we receive from our users to any legal -recipient to the best of our ability within the limitations of the law and -our implementation. However, the Services offered today are highly -experimental and the set of recipients of funds is severely restricted. -Again, we stress this is a research experiment and technically all funds -held by the exchange are owned by the research group of the university.</p></li> -<li><p>For our Services, we may charge transaction fees. The specific fee structure -is provided based on the Taler protocol and should be shown to you when you -withdraw electronic coins using a Taler Wallet. You agree and understand -that the Taler protocol allows for the fee structure to change.</p></li> -<li><p>You agree to not intentionally overwhelm our systems with requests and -follow responsible disclosure if you find security issues in our services.</p></li> -<li><p>We cannot be held accountable for our Services not being available due to -any circumstances. If we modify or terminate our services, -we may give you the opportunity to recover your funds. However, -given the experimental state of the Services today, this may not be -possible. You are strongly advised to limit your use of the Service -to small-scale experiments expecting total loss of all funds.</p></li> -</ul> -</div></blockquote> -<p>These terms outline approved uses of our Services. The Services and these -Terms are still at an experimental stage. If you have any questions or -comments related to this Agreement, please send us a message to -<a class="reference external" href="mailto:ice%40bfh.ch">ice<span>@</span>bfh<span>.</span>ch</a>. If you do not agree to this Agreement, you must not -use our Services.</p> -</div> -</div> -<div class="section" id="how-you-accept-this-policy"> -<h2>How you accept this policy<a class="headerlink" href="#how-you-accept-this-policy" title="Permalink to this headline">¶</a></h2> -<p>By sending funds to us (to top-up your Taler Wallet), you acknowledge that you -have read, understood, and agreed to these Terms. We reserve the right to -change these Terms at any time. If you disagree with the change, we may in the -future offer you with an easy option to recover your unspent funds. However, -in the current experimental period you acknowledge that this feature is not -yet available, resulting in your funds being lost unless you accept the new -Terms. If you continue to use our Services other than to recover your unspent -funds, your continued use of our Services following any such change will -signify your acceptance to be bound by the then current Terms. Please check -the effective date above to determine if there have been any changes since you -have last reviewed these Terms.</p> -</div> -<div class="section" id="services"> -<h2>Services<a class="headerlink" href="#services" title="Permalink to this headline">¶</a></h2> -<p>We will try to transfer funds that we receive from users to any legal -recipient to the best of our ability and within the limitations of the -law. However, the Services offered today are highly experimental and the set -of recipients of funds is severely restricted. The Taler Wallet can be loaded -by exchanging fiat or cryptocurrencies against electronic coins. We are -providing this exchange service. Once your Taler Wallet is loaded with -electronic coins they can be spent for purchases if the seller is accepting -Taler as a means of payment. We are not guaranteeing that any seller is -accepting Taler at all or a particular seller. The seller or recipient of -deposits of electronic coins must specify the target account, as per the -design of the Taler protocol. They are responsible for following the protocol -and specifying the correct bank account, and are solely liable for any losses -that may arise from specifying the wrong account. We may allow the government -to link wire transfers to the underlying contract hash. It is the -responsibility of recipients to preserve the full contracts and to pay -whatever taxes and charges may be applicable. Technical issues may lead to -situations where we are unable to make transfers at all or lead to incorrect -transfers that cannot be reversed. We may refuse to execute transfers if the -transfers are prohibited by a competent legal authority and we are ordered to -do so.</p> -<p>When using our Services, you agree to not take any action that intentionally -imposes an unreasonable load on our infrastructure. If you find security -problems in our Services, you agree to first report them to -<a class="reference external" href="mailto:security%40taler-systems.com">security<span>@</span>taler-systems<span>.</span>com</a> and grant us the right to publish your report. We -warrant that we will ourselves publicly disclose any issues reported within 3 -months, and that we will not prosecute anyone reporting security issues if -they did not exploit the issue beyond a proof-of-concept, and followed the -above responsible disclosure practice.</p> -</div> -<div class="section" id="fees"> -<h2>Fees<a class="headerlink" href="#fees" title="Permalink to this headline">¶</a></h2> -<p>You agree to pay the fees for exchanges and withdrawals completed via the -Taler Wallet (“Fees”) as defined by us, which we may change from time to -time. With the exception of wire transfer fees, Taler transaction fees are set -for any electronic coin at the time of withdrawal and fixed throughout the -validity period of the respective electronic coin. Your wallet should obtain -and display applicable fees when withdrawing funds. Fees for coins obtained as -change may differ from the fees applicable to the original coin. Wire transfer -fees that are independent from electronic coins may change annually. You -authorize us to charge or deduct applicable fees owed in connection with -deposits, exchanges and withdrawals following the rules of the Taler protocol. -We reserve the right to provide different types of rewards to users either in -the form of discount for our Services or in any other form at our discretion -and without prior notice to you.</p> -</div> -<div class="section" id="eligibility-and-financial-self-responsibility"> -<h2>Eligibility and Financial self-responsibility<a class="headerlink" href="#eligibility-and-financial-self-responsibility" title="Permalink to this headline">¶</a></h2> -<p>To be eligible to use our Services, you must be able to form legally binding -contracts or have the permission of your legal guardian. By using our -Services, you represent and warrant that you meet all eligibility requirements -that we outline in these Terms.</p> -<p>You will be responsible for maintaining the availability, integrity and -confidentiality of the data stored in your wallet. When you setup a Taler -Wallet, you are strongly advised to follow the precautionary measures offered -by the software to minimize the chances to losse access to or control over -your Wallet data. We will not be liable for any loss or damage arising from -your failure to comply with this paragraph.</p> -</div> -<div class="section" id="copyrights-and-trademarks"> -<h2>Copyrights and trademarks<a class="headerlink" href="#copyrights-and-trademarks" title="Permalink to this headline">¶</a></h2> -<p>The Taler Wallet is released under the terms of the GNU General Public License -(GNU GPL). You have the right to access, use, and share the Taler Wallet, in -modified or unmodified form. However, the GPL is a strong copyleft license, -which means that any derivative works must be distributed under the same -license terms as the original software. If you have any questions, you should -review the GNU GPL’s full terms and conditions at -<a class="reference external" href="https://www.gnu.org/licenses/gpl-3.0.en.html">https://www.gnu.org/licenses/gpl-3.0.en.html</a>. “Taler” itself is a trademark -of Taler Systems SA. You are welcome to use the name in relation to processing -payments using the Taler protocol, assuming your use is compatible with an -official release from the GNU Project that is not older than two years.</p> -</div> -<div class="section" id="limitation-of-liability-disclaimer-of-warranties"> -<h2>Limitation of liability & disclaimer of warranties<a class="headerlink" href="#limitation-of-liability-disclaimer-of-warranties" title="Permalink to this headline">¶</a></h2> -<p>You understand and agree that we have no control over, and no duty to take any -action regarding: Failures, disruptions, errors, or delays in processing that -you may experience while using our Services; The risk of failure of hardware, -software, and Internet connections; The risk of malicious software being -introduced or found in the software underlying the Taler Wallet; The risk that -third parties may obtain unauthorized access to information stored within your -Taler Wallet, including, but not limited to your Taler Wallet coins or backup -encryption keys. You release us from all liability related to any losses, -damages, or claims arising from:</p> -<ol class="loweralpha simple"> -<li><p>user error such as forgotten passwords, incorrectly constructed -transactions;</p></li> -<li><p>server failure or data loss;</p></li> -<li><p>unauthorized access to the Taler Wallet application;</p></li> -<li><p>bugs or other errors in the Taler Wallet software; and</p></li> -<li><p>any unauthorized third party activities, including, but not limited to, -the use of viruses, phishing, brute forcing, or other means of attack -against the Taler Wallet. We make no representations concerning any -Third Party Content contained in or accessed through our Services.</p></li> -</ol> -<p>Any other terms, conditions, warranties, or representations associated with -such content, are solely between you and such organizations and/or -individuals.</p> -<p>To the fullest extent permitted by applicable law, in no event will we or any -of our officers, directors, representatives, agents, servants, counsel, -employees, consultants, lawyers, and other personnel authorized to act, -acting, or purporting to act on our behalf (collectively the “Taler Parties”) -be liable to you under contract, tort, strict liability, negligence, or any -other legal or equitable theory, for:</p> -<ol class="loweralpha simple"> -<li><p>any lost profits, data loss, cost of procurement of substitute goods or -services, or direct, indirect, incidental, special, punitive, compensatory, -or consequential damages of any kind whatsoever resulting from:</p></li> -</ol> -<blockquote> -<div><ol class="lowerroman simple"> -<li><p>your use of, or conduct in connection with, our services;</p></li> -<li><p>any unauthorized use of your wallet and/or private key due to your -failure to maintain the confidentiality of your wallet;</p></li> -<li><p>any interruption or cessation of transmission to or from the services; or</p></li> -<li><p>any bugs, viruses, trojan horses, or the like that are found in the Taler -Wallet software or that may be transmitted to or through our services by -any third party (regardless of the source of origination), or</p></li> -</ol> -</div></blockquote> -<ol class="loweralpha simple" start="2"> -<li><p>any direct damages.</p></li> -</ol> -<p>These limitations apply regardless of legal theory, whether based on tort, -strict liability, breach of contract, breach of warranty, or any other legal -theory, and whether or not we were advised of the possibility of such -damages. Some jurisdictions do not allow the exclusion or limitation of -liability for consequential or incidental damages, so the above limitation may -not apply to you.</p> -<p>Our services are provided “as is” and without warranty of any kind. To the -maximum extent permitted by law, we disclaim all representations and -warranties, express or implied, relating to the services and underlying -software or any content on the services, whether provided or owned by us or by -any third party, including without limitation, warranties of merchantability, -fitness for a particular purpose, title, non-infringement, freedom from -computer virus, and any implied warranties arising from course of dealing, -course of performance, or usage in trade, all of which are expressly -disclaimed. In addition, we do not represent or warrant that the content -accessible via the services is accurate, complete, available, current, free of -viruses or other harmful components, or that the results of using the services -will meet your requirements. Some states do not allow the disclaimer of -implied warranties, so the foregoing disclaimers may not apply to you. This -paragraph gives you specific legal rights and you may also have other legal -rights that vary from state to state.</p> -</div> -<div class="section" id="indemnity-and-time-limitation-on-claims-and-termination"> -<h2>Indemnity and Time limitation on claims and Termination<a class="headerlink" href="#indemnity-and-time-limitation-on-claims-and-termination" title="Permalink to this headline">¶</a></h2> -<p>To the extent permitted by applicable law, you agree to defend, indemnify, and -hold harmless the Taler Parties from and against any and all claims, damages, -obligations, losses, liabilities, costs or debt, and expenses (including, but -not limited to, attorney’s fees) arising from: (a) your use of and access to -the Services; (b) any feedback or submissions you provide to us concerning the -Taler Wallet; (c) your violation of any term of this Agreement; or (d) your -violation of any law, rule, or regulation, or the rights of any third party.</p> -<p>You agree that any claim you may have arising out of or related to your -relationship with us must be filed within one year after such claim arises, -otherwise, your claim in permanently barred.</p> -<p>In the event of termination concerning your use of our Services, your -obligations under this Agreement will still continue.</p> -</div> -<div class="section" id="discontinuance-of-services-and-force-majeure"> -<h2>Discontinuance of services and Force majeure<a class="headerlink" href="#discontinuance-of-services-and-force-majeure" title="Permalink to this headline">¶</a></h2> -<p>We may, in our sole discretion and without cost to you, with or without prior -notice, and at any time, modify or discontinue, temporarily or permanently, -any portion of our Services. We will use the Taler protocol’s provisions to -notify Wallets if our Services are to be discontinued. It is your -responsibility to ensure that the Taler Wallet is online at least once every -three months to observe these notifications. We shall not be held responsible -or liable for any loss of funds in the event that we discontinue or depreciate -the Services and your Taler Wallet fails to transfer out the coins within a -three months notification period.</p> -<p>We shall not be held liable for any delays, failure in performance, or -interruptions of service which result directly or indirectly from any cause or -condition beyond our reasonable control, including but not limited to: any -delay or failure due to any act of God, act of civil or military authorities, -act of terrorism, civil disturbance, war, strike or other labor dispute, fire, -interruption in telecommunications or Internet services or network provider -services, failure of equipment and/or software, other catastrophe, or any -other occurrence which is beyond our reasonable control and shall not affect -the validity and enforceability of any remaining provisions.</p> -</div> -<div class="section" id="governing-law-waivers-severability-and-assignment"> -<h2>Governing law, Waivers, Severability and Assignment<a class="headerlink" href="#governing-law-waivers-severability-and-assignment" title="Permalink to this headline">¶</a></h2> -<p>No matter where you’re located, the laws of Switzerland will govern these -Terms. If any provisions of these Terms are inconsistent with any applicable -law, those provisions will be superseded or modified only to the extent such -provisions are inconsistent. The parties agree to submit to the ordinary -courts in Bern, Switzerland for exclusive jurisdiction of any dispute -arising out of or related to your use of the Services or your breach of these -Terms.</p> -<p>Our failure to exercise or delay in exercising any right, power, or privilege -under this Agreement shall not operate as a waiver; nor shall any single or -partial exercise of any right, power, or privilege preclude any other or -further exercise thereof.</p> -<p>You agree that we may assign any of our rights and/or transfer, sub-contract, -or delegate any of our obligations under these Terms.</p> -<p>If it turns out that any part of this Agreement is invalid, void, or for any -reason unenforceable, that term will be deemed severable and limited or -eliminated to the minimum extent necessary.</p> -<p>This Agreement sets forth the entire understanding and agreement as to the -subject matter hereof and supersedes any and all prior discussions, -agreements, and understandings of any kind (including, without limitation, any -prior versions of this Agreement) and every nature between us. Except as -provided for above, any modification to this Agreement must be in writing and -must be signed by both parties.</p> -</div> -<div class="section" id="questions-or-comments"> -<h2>Questions or comments<a class="headerlink" href="#questions-or-comments" title="Permalink to this headline">¶</a></h2> -<p>We welcome comments, questions, concerns, or suggestions. Please send us a -message on our contact page at <a class="reference external" href="mailto:legal%40taler-systems.com">legal<span>@</span>taler-systems<span>.</span>com</a>.</p> -</div> -</div> - - - <div class="clearer"></div> - </div> - </div> - </div> - <div class="clearer"></div> - </div> - </body> -</html>
\ No newline at end of file diff --git a/contrib/tos/en/0.pdf b/contrib/tos/en/0.pdf Binary files differdeleted file mode 100644 index f145a83a..00000000 --- a/contrib/tos/en/0.pdf +++ /dev/null diff --git a/contrib/tos/en/0.txt b/contrib/tos/en/0.txt deleted file mode 100644 index 19db0984..00000000 --- a/contrib/tos/en/0.txt +++ /dev/null @@ -1,349 +0,0 @@ -Terms Of Service -**************** - -Last Updated: 09.06.2022 - -Welcome! The ICE research center of the Bern University of Applied -Sciences in Switzerland (“we,” “our,” or “us”) provides an -experimental payment service through our Internet presence -(collectively the “Services”). Before using our Services, please read -the Terms of Service (the “Terms” or the “Agreement”) carefully. - - -This is research -================ - -This is a research experiment. Any funds wired to our Bitcoin address -are considered a donation to our research group. We may use them to -enable payments following the GNU Taler protocol, or simply keep them -at our discretion. The service is experimental and may also be -discontinued at any time, in which case all remaining funds will -definitively be kept by the research group. - - -Overview -======== - -This section provides a brief summary of the highlights of this -Agreement. Please note that when you accept this Agreement, you are -accepting all of the terms and conditions and not just this section. -We and possibly other third parties provide Internet services which -interact with the Taler Wallet’s self-hosted personal payment -application. When using the Taler Wallet to interact with our -Services, you are agreeing to our Terms, so please read carefully. - - -Highlights: ------------ - - * You are responsible for keeping the data in your Taler Wallet at - all times under your control. Any losses arising from you not - being in control of your private information are your problem. - - * We may transfer funds we receive from our users to any legal - recipient to the best of our ability within the limitations of - the law and our implementation. However, the Services offered - today are highly experimental and the set of recipients of funds - is severely restricted. Again, we stress this is a research - experiment and technically all funds held by the exchange are - owned by the research group of the university. - - * For our Services, we may charge transaction fees. The specific - fee structure is provided based on the Taler protocol and should - be shown to you when you withdraw electronic coins using a Taler - Wallet. You agree and understand that the Taler protocol allows - for the fee structure to change. - - * You agree to not intentionally overwhelm our systems with - requests and follow responsible disclosure if you find security - issues in our services. - - * We cannot be held accountable for our Services not being - available due to any circumstances. If we modify or terminate our - services, we may give you the opportunity to recover your funds. - However, given the experimental state of the Services today, this - may not be possible. You are strongly advised to limit your use - of the Service to small-scale experiments expecting total loss of - all funds. - -These terms outline approved uses of our Services. The Services and -these Terms are still at an experimental stage. If you have any -questions or comments related to this Agreement, please send us a -message to ice@bfh.ch. If you do not agree to this Agreement, you must -not use our Services. - - -How you accept this policy -========================== - -By sending funds to us (to top-up your Taler Wallet), you acknowledge -that you have read, understood, and agreed to these Terms. We reserve -the right to change these Terms at any time. If you disagree with the -change, we may in the future offer you with an easy option to recover -your unspent funds. However, in the current experimental period you -acknowledge that this feature is not yet available, resulting in your -funds being lost unless you accept the new Terms. If you continue to -use our Services other than to recover your unspent funds, your -continued use of our Services following any such change will signify -your acceptance to be bound by the then current Terms. Please check -the effective date above to determine if there have been any changes -since you have last reviewed these Terms. - - -Services -======== - -We will try to transfer funds that we receive from users to any legal -recipient to the best of our ability and within the limitations of the -law. However, the Services offered today are highly experimental and -the set of recipients of funds is severely restricted. The Taler -Wallet can be loaded by exchanging fiat or cryptocurrencies against -electronic coins. We are providing this exchange service. Once your -Taler Wallet is loaded with electronic coins they can be spent for -purchases if the seller is accepting Taler as a means of payment. We -are not guaranteeing that any seller is accepting Taler at all or a -particular seller. The seller or recipient of deposits of electronic -coins must specify the target account, as per the design of the Taler -protocol. They are responsible for following the protocol and -specifying the correct bank account, and are solely liable for any -losses that may arise from specifying the wrong account. We may allow -the government to link wire transfers to the underlying contract hash. -It is the responsibility of recipients to preserve the full contracts -and to pay whatever taxes and charges may be applicable. Technical -issues may lead to situations where we are unable to make transfers at -all or lead to incorrect transfers that cannot be reversed. We may -refuse to execute transfers if the transfers are prohibited by a -competent legal authority and we are ordered to do so. - -When using our Services, you agree to not take any action that -intentionally imposes an unreasonable load on our infrastructure. If -you find security problems in our Services, you agree to first report -them to security@taler-systems.com and grant us the right to publish -your report. We warrant that we will ourselves publicly disclose any -issues reported within 3 months, and that we will not prosecute anyone -reporting security issues if they did not exploit the issue beyond a -proof-of-concept, and followed the above responsible disclosure -practice. - - -Fees -==== - -You agree to pay the fees for exchanges and withdrawals completed via -the Taler Wallet ("Fees") as defined by us, which we may change from -time to time. With the exception of wire transfer fees, Taler -transaction fees are set for any electronic coin at the time of -withdrawal and fixed throughout the validity period of the respective -electronic coin. Your wallet should obtain and display applicable fees -when withdrawing funds. Fees for coins obtained as change may differ -from the fees applicable to the original coin. Wire transfer fees that -are independent from electronic coins may change annually. You -authorize us to charge or deduct applicable fees owed in connection -with deposits, exchanges and withdrawals following the rules of the -Taler protocol. We reserve the right to provide different types of -rewards to users either in the form of discount for our Services or in -any other form at our discretion and without prior notice to you. - - -Eligibility and Financial self-responsibility -============================================= - -To be eligible to use our Services, you must be able to form legally -binding contracts or have the permission of your legal guardian. By -using our Services, you represent and warrant that you meet all -eligibility requirements that we outline in these Terms. - -You will be responsible for maintaining the availability, integrity -and confidentiality of the data stored in your wallet. When you setup -a Taler Wallet, you are strongly advised to follow the precautionary -measures offered by the software to minimize the chances to losse -access to or control over your Wallet data. We will not be liable for -any loss or damage arising from your failure to comply with this -paragraph. - - -Copyrights and trademarks -========================= - -The Taler Wallet is released under the terms of the GNU General Public -License (GNU GPL). You have the right to access, use, and share the -Taler Wallet, in modified or unmodified form. However, the GPL is a -strong copyleft license, which means that any derivative works must be -distributed under the same license terms as the original software. If -you have any questions, you should review the GNU GPL’s full terms and -conditions at https://www.gnu.org/licenses/gpl-3.0.en.html. “Taler” -itself is a trademark of Taler Systems SA. You are welcome to use the -name in relation to processing payments using the Taler protocol, -assuming your use is compatible with an official release from the GNU -Project that is not older than two years. - - -Limitation of liability & disclaimer of warranties -================================================== - -You understand and agree that we have no control over, and no duty to -take any action regarding: Failures, disruptions, errors, or delays in -processing that you may experience while using our Services; The risk -of failure of hardware, software, and Internet connections; The risk -of malicious software being introduced or found in the software -underlying the Taler Wallet; The risk that third parties may obtain -unauthorized access to information stored within your Taler Wallet, -including, but not limited to your Taler Wallet coins or backup -encryption keys. You release us from all liability related to any -losses, damages, or claims arising from: - -1. user error such as forgotten passwords, incorrectly constructed - transactions; - -2. server failure or data loss; - -3. unauthorized access to the Taler Wallet application; - -4. bugs or other errors in the Taler Wallet software; and - -5. any unauthorized third party activities, including, but not limited - to, the use of viruses, phishing, brute forcing, or other means of - attack against the Taler Wallet. We make no representations - concerning any Third Party Content contained in or accessed through - our Services. - -Any other terms, conditions, warranties, or representations associated -with such content, are solely between you and such organizations -and/or individuals. - -To the fullest extent permitted by applicable law, in no event will we -or any of our officers, directors, representatives, agents, servants, -counsel, employees, consultants, lawyers, and other personnel -authorized to act, acting, or purporting to act on our behalf -(collectively the “Taler Parties”) be liable to you under contract, -tort, strict liability, negligence, or any other legal or equitable -theory, for: - -1. any lost profits, data loss, cost of procurement of substitute - goods or services, or direct, indirect, incidental, special, - punitive, compensatory, or consequential damages of any kind - whatsoever resulting from: - - 1. your use of, or conduct in connection with, our services; - - 2. any unauthorized use of your wallet and/or private key due to - your failure to maintain the confidentiality of your wallet; - - 3. any interruption or cessation of transmission to or from the - services; or - - 4. any bugs, viruses, trojan horses, or the like that are found in - the Taler Wallet software or that may be transmitted to or - through our services by any third party (regardless of the - source of origination), or - -2. any direct damages. - -These limitations apply regardless of legal theory, whether based on -tort, strict liability, breach of contract, breach of warranty, or any -other legal theory, and whether or not we were advised of the -possibility of such damages. Some jurisdictions do not allow the -exclusion or limitation of liability for consequential or incidental -damages, so the above limitation may not apply to you. - -Our services are provided "as is" and without warranty of any kind. To -the maximum extent permitted by law, we disclaim all representations -and warranties, express or implied, relating to the services and -underlying software or any content on the services, whether provided -or owned by us or by any third party, including without limitation, -warranties of merchantability, fitness for a particular purpose, -title, non-infringement, freedom from computer virus, and any implied -warranties arising from course of dealing, course of performance, or -usage in trade, all of which are expressly disclaimed. In addition, we -do not represent or warrant that the content accessible via the -services is accurate, complete, available, current, free of viruses or -other harmful components, or that the results of using the services -will meet your requirements. Some states do not allow the disclaimer -of implied warranties, so the foregoing disclaimers may not apply to -you. This paragraph gives you specific legal rights and you may also -have other legal rights that vary from state to state. - - -Indemnity and Time limitation on claims and Termination -======================================================= - -To the extent permitted by applicable law, you agree to defend, -indemnify, and hold harmless the Taler Parties from and against any -and all claims, damages, obligations, losses, liabilities, costs or -debt, and expenses (including, but not limited to, attorney’s fees) -arising from: (a) your use of and access to the Services; (b) any -feedback or submissions you provide to us concerning the Taler Wallet; -(c) your violation of any term of this Agreement; or (d) your -violation of any law, rule, or regulation, or the rights of any third -party. - -You agree that any claim you may have arising out of or related to -your relationship with us must be filed within one year after such -claim arises, otherwise, your claim in permanently barred. - -In the event of termination concerning your use of our Services, your -obligations under this Agreement will still continue. - - -Discontinuance of services and Force majeure -============================================ - -We may, in our sole discretion and without cost to you, with or -without prior notice, and at any time, modify or discontinue, -temporarily or permanently, any portion of our Services. We will use -the Taler protocol’s provisions to notify Wallets if our Services are -to be discontinued. It is your responsibility to ensure that the Taler -Wallet is online at least once every three months to observe these -notifications. We shall not be held responsible or liable for any loss -of funds in the event that we discontinue or depreciate the Services -and your Taler Wallet fails to transfer out the coins within a three -months notification period. - -We shall not be held liable for any delays, failure in performance, or -interruptions of service which result directly or indirectly from any -cause or condition beyond our reasonable control, including but not -limited to: any delay or failure due to any act of God, act of civil -or military authorities, act of terrorism, civil disturbance, war, -strike or other labor dispute, fire, interruption in -telecommunications or Internet services or network provider services, -failure of equipment and/or software, other catastrophe, or any other -occurrence which is beyond our reasonable control and shall not affect -the validity and enforceability of any remaining provisions. - - -Governing law, Waivers, Severability and Assignment -=================================================== - -No matter where you’re located, the laws of Switzerland will govern -these Terms. If any provisions of these Terms are inconsistent with -any applicable law, those provisions will be superseded or modified -only to the extent such provisions are inconsistent. The parties agree -to submit to the ordinary courts in Bern, Switzerland for exclusive -jurisdiction of any dispute arising out of or related to your use of -the Services or your breach of these Terms. - -Our failure to exercise or delay in exercising any right, power, or -privilege under this Agreement shall not operate as a waiver; nor -shall any single or partial exercise of any right, power, or privilege -preclude any other or further exercise thereof. - -You agree that we may assign any of our rights and/or transfer, sub- -contract, or delegate any of our obligations under these Terms. - -If it turns out that any part of this Agreement is invalid, void, or -for any reason unenforceable, that term will be deemed severable and -limited or eliminated to the minimum extent necessary. - -This Agreement sets forth the entire understanding and agreement as to -the subject matter hereof and supersedes any and all prior -discussions, agreements, and understandings of any kind (including, -without limitation, any prior versions of this Agreement) and every -nature between us. Except as provided for above, any modification to -this Agreement must be in writing and must be signed by both parties. - - -Questions or comments -===================== - -We welcome comments, questions, concerns, or suggestions. Please send -us a message on our contact page at legal@taler-systems.com. diff --git a/contrib/tos/en/0.xml b/contrib/tos/en/0.xml deleted file mode 100644 index 7f42db04..00000000 --- a/contrib/tos/en/0.xml +++ /dev/null @@ -1,323 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!DOCTYPE document PUBLIC "+//IDN docutils.sourceforge.net//DTD Docutils Generic//EN//XML" "http://docutils.sourceforge.net/docs/ref/docutils.dtd"> -<!-- Generated by Docutils 0.16 --> -<document source="/home/grothoff/research/taler/exchange/contrib/tos/tos.rst"> - <section ids="terms-of-service" names="terms\ of\ service"> - <title>Terms Of Service</title> - <paragraph>Last Updated: 09.06.2022</paragraph> - <paragraph>Welcome! The ICE research center of the Bern University of Applied Sciences - in Switzerland (“we,” “our,” or “us”) provides an experimental payment service - through our Internet presence (collectively the “Services”). Before using our - Services, please read the Terms of Service (the “Terms” or the “Agreement”) - carefully.</paragraph> - <section ids="this-is-research" names="this\ is\ research"> - <title>This is research</title> - <paragraph>This is a research experiment. Any funds wired to our Bitcoin address are - considered a donation to our research group. We may use them to enable - payments following the GNU Taler protocol, or simply keep them at our - discretion. The service is experimental and may also be discontinued at - any time, in which case all remaining funds will definitively be kept by - the research group.</paragraph> - </section> - <section ids="overview" names="overview"> - <title>Overview</title> - <paragraph>This section provides a brief summary of the highlights of this - Agreement. Please note that when you accept this Agreement, you are accepting - all of the terms and conditions and not just this section. We and possibly - other third parties provide Internet services which interact with the Taler - Wallet’s self-hosted personal payment application. When using the Taler Wallet - to interact with our Services, you are agreeing to our Terms, so please read - carefully.</paragraph> - <section ids="highlights" names="highlights:"> - <title>Highlights:</title> - <block_quote> - <bullet_list bullet="•"> - <list_item> - <paragraph>You are responsible for keeping the data in your Taler Wallet at all times - under your control. Any losses arising from you not being in control of - your private information are your problem.</paragraph> - </list_item> - <list_item> - <paragraph>We may transfer funds we receive from our users to any legal - recipient to the best of our ability within the limitations of the law and - our implementation. However, the Services offered today are highly - experimental and the set of recipients of funds is severely restricted. - Again, we stress this is a research experiment and technically all funds - held by the exchange are owned by the research group of the university.</paragraph> - </list_item> - <list_item> - <paragraph>For our Services, we may charge transaction fees. The specific fee structure - is provided based on the Taler protocol and should be shown to you when you - withdraw electronic coins using a Taler Wallet. You agree and understand - that the Taler protocol allows for the fee structure to change.</paragraph> - </list_item> - <list_item> - <paragraph>You agree to not intentionally overwhelm our systems with requests and - follow responsible disclosure if you find security issues in our services.</paragraph> - </list_item> - <list_item> - <paragraph>We cannot be held accountable for our Services not being available due to - any circumstances. If we modify or terminate our services, - we may give you the opportunity to recover your funds. However, - given the experimental state of the Services today, this may not be - possible. You are strongly advised to limit your use of the Service - to small-scale experiments expecting total loss of all funds.</paragraph> - </list_item> - </bullet_list> - </block_quote> - <paragraph>These terms outline approved uses of our Services. The Services and these - Terms are still at an experimental stage. If you have any questions or - comments related to this Agreement, please send us a message to - <reference refuri="mailto:ice@bfh.ch">ice@bfh.ch</reference>. If you do not agree to this Agreement, you must not - use our Services.</paragraph> - </section> - </section> - <section ids="how-you-accept-this-policy" names="how\ you\ accept\ this\ policy"> - <title>How you accept this policy</title> - <paragraph>By sending funds to us (to top-up your Taler Wallet), you acknowledge that you - have read, understood, and agreed to these Terms. We reserve the right to - change these Terms at any time. If you disagree with the change, we may in the - future offer you with an easy option to recover your unspent funds. However, - in the current experimental period you acknowledge that this feature is not - yet available, resulting in your funds being lost unless you accept the new - Terms. If you continue to use our Services other than to recover your unspent - funds, your continued use of our Services following any such change will - signify your acceptance to be bound by the then current Terms. Please check - the effective date above to determine if there have been any changes since you - have last reviewed these Terms.</paragraph> - </section> - <section ids="services" names="services"> - <title>Services</title> - <paragraph>We will try to transfer funds that we receive from users to any legal - recipient to the best of our ability and within the limitations of the - law. However, the Services offered today are highly experimental and the set - of recipients of funds is severely restricted. The Taler Wallet can be loaded - by exchanging fiat or cryptocurrencies against electronic coins. We are - providing this exchange service. Once your Taler Wallet is loaded with - electronic coins they can be spent for purchases if the seller is accepting - Taler as a means of payment. We are not guaranteeing that any seller is - accepting Taler at all or a particular seller. The seller or recipient of - deposits of electronic coins must specify the target account, as per the - design of the Taler protocol. They are responsible for following the protocol - and specifying the correct bank account, and are solely liable for any losses - that may arise from specifying the wrong account. We may allow the government - to link wire transfers to the underlying contract hash. It is the - responsibility of recipients to preserve the full contracts and to pay - whatever taxes and charges may be applicable. Technical issues may lead to - situations where we are unable to make transfers at all or lead to incorrect - transfers that cannot be reversed. We may refuse to execute transfers if the - transfers are prohibited by a competent legal authority and we are ordered to - do so.</paragraph> - <paragraph>When using our Services, you agree to not take any action that intentionally - imposes an unreasonable load on our infrastructure. If you find security - problems in our Services, you agree to first report them to - <reference refuri="mailto:security@taler-systems.com">security@taler-systems.com</reference> and grant us the right to publish your report. We - warrant that we will ourselves publicly disclose any issues reported within 3 - months, and that we will not prosecute anyone reporting security issues if - they did not exploit the issue beyond a proof-of-concept, and followed the - above responsible disclosure practice.</paragraph> - </section> - <section ids="fees" names="fees"> - <title>Fees</title> - <paragraph>You agree to pay the fees for exchanges and withdrawals completed via the - Taler Wallet (“Fees”) as defined by us, which we may change from time to - time. With the exception of wire transfer fees, Taler transaction fees are set - for any electronic coin at the time of withdrawal and fixed throughout the - validity period of the respective electronic coin. Your wallet should obtain - and display applicable fees when withdrawing funds. Fees for coins obtained as - change may differ from the fees applicable to the original coin. Wire transfer - fees that are independent from electronic coins may change annually. You - authorize us to charge or deduct applicable fees owed in connection with - deposits, exchanges and withdrawals following the rules of the Taler protocol. - We reserve the right to provide different types of rewards to users either in - the form of discount for our Services or in any other form at our discretion - and without prior notice to you.</paragraph> - </section> - <section ids="eligibility-and-financial-self-responsibility" names="eligibility\ and\ financial\ self-responsibility"> - <title>Eligibility and Financial self-responsibility</title> - <paragraph>To be eligible to use our Services, you must be able to form legally binding - contracts or have the permission of your legal guardian. By using our - Services, you represent and warrant that you meet all eligibility requirements - that we outline in these Terms.</paragraph> - <paragraph>You will be responsible for maintaining the availability, integrity and - confidentiality of the data stored in your wallet. When you setup a Taler - Wallet, you are strongly advised to follow the precautionary measures offered - by the software to minimize the chances to losse access to or control over - your Wallet data. We will not be liable for any loss or damage arising from - your failure to comply with this paragraph.</paragraph> - </section> - <section ids="copyrights-and-trademarks" names="copyrights\ and\ trademarks"> - <title>Copyrights and trademarks</title> - <paragraph>The Taler Wallet is released under the terms of the GNU General Public License - (GNU GPL). You have the right to access, use, and share the Taler Wallet, in - modified or unmodified form. However, the GPL is a strong copyleft license, - which means that any derivative works must be distributed under the same - license terms as the original software. If you have any questions, you should - review the GNU GPL’s full terms and conditions at - <reference refuri="https://www.gnu.org/licenses/gpl-3.0.en.html">https://www.gnu.org/licenses/gpl-3.0.en.html</reference>. “Taler” itself is a trademark - of Taler Systems SA. You are welcome to use the name in relation to processing - payments using the Taler protocol, assuming your use is compatible with an - official release from the GNU Project that is not older than two years.</paragraph> - </section> - <section ids="limitation-of-liability-disclaimer-of-warranties" names="limitation\ of\ liability\ &\ disclaimer\ of\ warranties"> - <title>Limitation of liability & disclaimer of warranties</title> - <paragraph>You understand and agree that we have no control over, and no duty to take any - action regarding: Failures, disruptions, errors, or delays in processing that - you may experience while using our Services; The risk of failure of hardware, - software, and Internet connections; The risk of malicious software being - introduced or found in the software underlying the Taler Wallet; The risk that - third parties may obtain unauthorized access to information stored within your - Taler Wallet, including, but not limited to your Taler Wallet coins or backup - encryption keys. You release us from all liability related to any losses, - damages, or claims arising from:</paragraph> - <enumerated_list enumtype="loweralpha" prefix="(" suffix=")"> - <list_item> - <paragraph>user error such as forgotten passwords, incorrectly constructed - transactions;</paragraph> - </list_item> - <list_item> - <paragraph>server failure or data loss;</paragraph> - </list_item> - <list_item> - <paragraph>unauthorized access to the Taler Wallet application;</paragraph> - </list_item> - <list_item> - <paragraph>bugs or other errors in the Taler Wallet software; and</paragraph> - </list_item> - <list_item> - <paragraph>any unauthorized third party activities, including, but not limited to, - the use of viruses, phishing, brute forcing, or other means of attack - against the Taler Wallet. We make no representations concerning any - Third Party Content contained in or accessed through our Services.</paragraph> - </list_item> - </enumerated_list> - <paragraph>Any other terms, conditions, warranties, or representations associated with - such content, are solely between you and such organizations and/or - individuals.</paragraph> - <paragraph>To the fullest extent permitted by applicable law, in no event will we or any - of our officers, directors, representatives, agents, servants, counsel, - employees, consultants, lawyers, and other personnel authorized to act, - acting, or purporting to act on our behalf (collectively the “Taler Parties”) - be liable to you under contract, tort, strict liability, negligence, or any - other legal or equitable theory, for:</paragraph> - <enumerated_list enumtype="loweralpha" prefix="(" suffix=")"> - <list_item> - <paragraph>any lost profits, data loss, cost of procurement of substitute goods or - services, or direct, indirect, incidental, special, punitive, compensatory, - or consequential damages of any kind whatsoever resulting from:</paragraph> - </list_item> - </enumerated_list> - <block_quote> - <enumerated_list enumtype="lowerroman" prefix="(" suffix=")"> - <list_item> - <paragraph>your use of, or conduct in connection with, our services;</paragraph> - </list_item> - <list_item> - <paragraph>any unauthorized use of your wallet and/or private key due to your - failure to maintain the confidentiality of your wallet;</paragraph> - </list_item> - <list_item> - <paragraph>any interruption or cessation of transmission to or from the services; or</paragraph> - </list_item> - <list_item> - <paragraph>any bugs, viruses, trojan horses, or the like that are found in the Taler - Wallet software or that may be transmitted to or through our services by - any third party (regardless of the source of origination), or</paragraph> - </list_item> - </enumerated_list> - </block_quote> - <enumerated_list enumtype="loweralpha" prefix="(" start="2" suffix=")"> - <list_item> - <paragraph>any direct damages.</paragraph> - </list_item> - </enumerated_list> - <paragraph>These limitations apply regardless of legal theory, whether based on tort, - strict liability, breach of contract, breach of warranty, or any other legal - theory, and whether or not we were advised of the possibility of such - damages. Some jurisdictions do not allow the exclusion or limitation of - liability for consequential or incidental damages, so the above limitation may - not apply to you.</paragraph> - <paragraph>Our services are provided “as is” and without warranty of any kind. To the - maximum extent permitted by law, we disclaim all representations and - warranties, express or implied, relating to the services and underlying - software or any content on the services, whether provided or owned by us or by - any third party, including without limitation, warranties of merchantability, - fitness for a particular purpose, title, non-infringement, freedom from - computer virus, and any implied warranties arising from course of dealing, - course of performance, or usage in trade, all of which are expressly - disclaimed. In addition, we do not represent or warrant that the content - accessible via the services is accurate, complete, available, current, free of - viruses or other harmful components, or that the results of using the services - will meet your requirements. Some states do not allow the disclaimer of - implied warranties, so the foregoing disclaimers may not apply to you. This - paragraph gives you specific legal rights and you may also have other legal - rights that vary from state to state.</paragraph> - </section> - <section ids="indemnity-and-time-limitation-on-claims-and-termination" names="indemnity\ and\ time\ limitation\ on\ claims\ and\ termination"> - <title>Indemnity and Time limitation on claims and Termination</title> - <paragraph>To the extent permitted by applicable law, you agree to defend, indemnify, and - hold harmless the Taler Parties from and against any and all claims, damages, - obligations, losses, liabilities, costs or debt, and expenses (including, but - not limited to, attorney’s fees) arising from: (a) your use of and access to - the Services; (b) any feedback or submissions you provide to us concerning the - Taler Wallet; (c) your violation of any term of this Agreement; or (d) your - violation of any law, rule, or regulation, or the rights of any third party.</paragraph> - <paragraph>You agree that any claim you may have arising out of or related to your - relationship with us must be filed within one year after such claim arises, - otherwise, your claim in permanently barred.</paragraph> - <paragraph>In the event of termination concerning your use of our Services, your - obligations under this Agreement will still continue.</paragraph> - </section> - <section ids="discontinuance-of-services-and-force-majeure" names="discontinuance\ of\ services\ and\ force\ majeure"> - <title>Discontinuance of services and Force majeure</title> - <paragraph>We may, in our sole discretion and without cost to you, with or without prior - notice, and at any time, modify or discontinue, temporarily or permanently, - any portion of our Services. We will use the Taler protocol’s provisions to - notify Wallets if our Services are to be discontinued. It is your - responsibility to ensure that the Taler Wallet is online at least once every - three months to observe these notifications. We shall not be held responsible - or liable for any loss of funds in the event that we discontinue or depreciate - the Services and your Taler Wallet fails to transfer out the coins within a - three months notification period.</paragraph> - <paragraph>We shall not be held liable for any delays, failure in performance, or - interruptions of service which result directly or indirectly from any cause or - condition beyond our reasonable control, including but not limited to: any - delay or failure due to any act of God, act of civil or military authorities, - act of terrorism, civil disturbance, war, strike or other labor dispute, fire, - interruption in telecommunications or Internet services or network provider - services, failure of equipment and/or software, other catastrophe, or any - other occurrence which is beyond our reasonable control and shall not affect - the validity and enforceability of any remaining provisions.</paragraph> - </section> - <section ids="governing-law-waivers-severability-and-assignment" names="governing\ law,\ waivers,\ severability\ and\ assignment"> - <title>Governing law, Waivers, Severability and Assignment</title> - <paragraph>No matter where you’re located, the laws of Switzerland will govern these - Terms. If any provisions of these Terms are inconsistent with any applicable - law, those provisions will be superseded or modified only to the extent such - provisions are inconsistent. The parties agree to submit to the ordinary - courts in Bern, Switzerland for exclusive jurisdiction of any dispute - arising out of or related to your use of the Services or your breach of these - Terms.</paragraph> - <paragraph>Our failure to exercise or delay in exercising any right, power, or privilege - under this Agreement shall not operate as a waiver; nor shall any single or - partial exercise of any right, power, or privilege preclude any other or - further exercise thereof.</paragraph> - <paragraph>You agree that we may assign any of our rights and/or transfer, sub-contract, - or delegate any of our obligations under these Terms.</paragraph> - <paragraph>If it turns out that any part of this Agreement is invalid, void, or for any - reason unenforceable, that term will be deemed severable and limited or - eliminated to the minimum extent necessary.</paragraph> - <paragraph>This Agreement sets forth the entire understanding and agreement as to the - subject matter hereof and supersedes any and all prior discussions, - agreements, and understandings of any kind (including, without limitation, any - prior versions of this Agreement) and every nature between us. Except as - provided for above, any modification to this Agreement must be in writing and - must be signed by both parties.</paragraph> - </section> - <section ids="questions-or-comments" names="questions\ or\ comments"> - <title>Questions or comments</title> - <paragraph>We welcome comments, questions, concerns, or suggestions. Please send us a - message on our contact page at <reference refuri="mailto:legal@taler-systems.com">legal@taler-systems.com</reference>.</paragraph> - </section> - </section> -</document> diff --git a/contrib/tos/locale/de/LC_MESSAGES/tos.po b/contrib/tos/locale/de/LC_MESSAGES/tos.po deleted file mode 100644 index e821c9c1..00000000 --- a/contrib/tos/locale/de/LC_MESSAGES/tos.po +++ /dev/null @@ -1,241 +0,0 @@ -# SOME DESCRIPTIVE TITLE. -# Copyright (C) 2014-2020 Taler Systems SA (GPLv3+ or GFDL 1.3+) -# This file is distributed under the same license as the tos package. -# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR. -# -#, fuzzy -msgid "" -msgstr "" -"Project-Id-Version: tos 0\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2021-09-30 21:42+0200\n" -"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" -"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" -"Language-Team: LANGUAGE <LL@li.org>\n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" - -#: ../../tos.rst:2 -msgid "Terms Of Service" -msgstr "" - -#: ../../tos.rst:4 -msgid "Last Updated: 12.4.2019" -msgstr "" - -#: ../../tos.rst:6 -msgid "Welcome! Taler Systems SA (“we,” “our,” or “us”) provides a payment service through our Internet presence (collectively the “Services”). Before using our Services, please read the Terms of Service (the “Terms” or the “Agreement”) carefully." -msgstr "" - -#: ../../tos.rst:12 -msgid "Overview" -msgstr "" - -#: ../../tos.rst:14 -msgid "This section provides a brief summary of the highlights of this Agreement. Please note that when you accept this Agreement, you are accepting all of the terms and conditions and not just this section. We and possibly other third parties provide Internet services which interact with the Taler Wallet’s self-hosted personal payment application. When using the Taler Wallet to interact with our Services, you are agreeing to our Terms, so please read carefully." -msgstr "" - -#: ../../tos.rst:23 -msgid "Highlights:" -msgstr "" - -#: ../../tos.rst:25 -msgid "You are responsible for keeping the data in your Taler Wallet at all times under your control. Any losses arising from you not being in control of your private information are your problem." -msgstr "" - -#: ../../tos.rst:28 -msgid "We will try to transfer funds we hold in escrow for our users to any legal recipient to the best of our ability within the limitations of the law and our implementation. However, the Services offered today are highly experimental and the set of recipients of funds is severely restricted." -msgstr "" - -#: ../../tos.rst:32 -msgid "For our Services, we may charge transaction fees. The specific fee structure is provided based on the Taler protocol and should be shown to you when you withdraw electronic coins using a Taler Wallet. You agree and understand that the Taler protocol allows for the fee structure to change." -msgstr "" - -#: ../../tos.rst:36 -msgid "You agree to not intentionally overwhelm our systems with requests and follow responsible disclosure if you find security issues in our services." -msgstr "" - -#: ../../tos.rst:38 -msgid "We cannot be held accountable for our Services not being available due to circumstances beyond our control. If we modify or terminate our services, we will try to give you the opportunity to recover your funds. However, given the experimental state of the Services today, this may not be possible. You are strongly advised to limit your use of the Service to small-scale experiments expecting total loss of all funds." -msgstr "" - -#: ../../tos.rst:45 -msgid "These terms outline approved uses of our Services. The Services and these Terms are still at an experimental stage. If you have any questions or comments related to this Agreement, please send us a message to legal@taler-systems.com. If you do not agree to this Agreement, you must not use our Services." -msgstr "" - -#: ../../tos.rst:52 -msgid "How you accept this policy" -msgstr "" - -#: ../../tos.rst:54 -msgid "By sending funds to us (to top-up your Taler Wallet), you acknowledge that you have read, understood, and agreed to these Terms. We reserve the right to change these Terms at any time. If you disagree with the change, we may in the future offer you with an easy option to recover your unspent funds. However, in the current experimental period you acknowledge that this feature is not yet available, resulting in your funds being lost unless you accept the new Terms. If you continue to use our Services other than to recover your unspent funds, your continued use of our Services following any such change will signify your acceptance to be bound by the then current Terms. Please check the effective date above to determine if there have been any changes since you have last reviewed these Terms." -msgstr "" - -#: ../../tos.rst:67 -msgid "Services" -msgstr "" - -#: ../../tos.rst:69 -msgid "We will try to transfer funds that we hold in escrow for our users to any legal recipient to the best of our ability and within the limitations of the law and our implementation. However, the Services offered today are highly experimental and the set of recipients of funds is severely restricted. The Taler Wallet can be loaded by exchanging fiat currencies against electronic coins. We are providing this exchange service. Once your Taler Wallet is loaded with electronic coins they can be spent for purchases if the seller is accepting Taler as a means of payment. We are not guaranteeing that any seller is accepting Taler at all or a particular seller. The seller or recipient of deposits of electronic coins must specify the target account, as per the design of the Taler protocol. They are responsible for following the protocol and specifying the correct bank account, and are solely liable for any losses that may arise from specifying the wrong account. We will allow the government to link wire transfers to the underlying contract hash. It is the responsibility of recipients to preserve the full contracts and to pay whatever taxes and charges may be applicable. Technical issues may lead to situations where we are unable to make transfers at all or lead to incorrect transfers that cannot be reversed. We will only refuse to execute transfers if the transfers are prohibited by a competent legal authority and we are ordered to do so." -msgstr "" - -#: ../../tos.rst:90 -msgid "When using our Services, you agree to not take any action that intentionally imposes an unreasonable load on our infrastructure. If you find security problems in our Services, you agree to first report them to security@taler-systems.com and grant us the right to publish your report. We warrant that we will ourselves publicly disclose any issues reported within 3 months, and that we will not prosecute anyone reporting security issues if they did not exploit the issue beyond a proof-of-concept, and followed the above responsible disclosure practice." -msgstr "" - -#: ../../tos.rst:101 -msgid "Fees" -msgstr "" - -#: ../../tos.rst:103 -msgid "You agree to pay the fees for exchanges and withdrawals completed via the Taler Wallet (\"Fees\") as defined by us, which we may change from time to time. With the exception of wire transfer fees, Taler transaction fees are set for any electronic coin at the time of withdrawal and fixed throughout the validity period of the respective electronic coin. Your wallet should obtain and display applicable fees when withdrawing funds. Fees for coins obtained as change may differ from the fees applicable to the original coin. Wire transfer fees that are independent from electronic coins may change annually. You authorize us to charge or deduct applicable fees owed in connection with deposits, exchanges and withdrawals following the rules of the Taler protocol. We reserve the right to provide different types of rewards to users either in the form of discount for our Services or in any other form at our discretion and without prior notice to you." -msgstr "" - -#: ../../tos.rst:118 -msgid "Eligibility and Financial self-responsibility" -msgstr "" - -#: ../../tos.rst:120 -msgid "To be eligible to use our Services, you must be able to form legally binding contracts or have the permission of your legal guardian. By using our Services, you represent and warrant that you meet all eligibility requirements that we outline in these Terms." -msgstr "" - -#: ../../tos.rst:125 -msgid "You will be responsible for maintaining the availability, integrity and confidentiality of the data stored in your wallet. When you setup a Taler Wallet, you are strongly advised to follow the precautionary measures offered by the software to minimize the chances to losse access to or control over your Wallet data. We will not be liable for any loss or damage arising from your failure to comply with this paragraph." -msgstr "" - -#: ../../tos.rst:133 -msgid "Copyrights and trademarks" -msgstr "" - -#: ../../tos.rst:135 -msgid "The Taler Wallet is released under the terms of the GNU General Public License (GNU GPL). You have the right to access, use, and share the Taler Wallet, in modified or unmodified form. However, the GPL is a strong copyleft license, which means that any derivative works must be distributed under the same license terms as the original software. If you have any questions, you should review the GNU GPL’s full terms and conditions at https://www.gnu.org/licenses/gpl-3.0.en.html. “Taler” itself is a trademark of Taler Systems SA. You are welcome to use the name in relation to processing payments using the Taler protocol, assuming your use is compatible with an official release from the GNU Project that is not older than two years." -msgstr "" - -#: ../../tos.rst:148 -msgid "Limitation of liability & disclaimer of warranties" -msgstr "" - -#: ../../tos.rst:150 -msgid "You understand and agree that we have no control over, and no duty to take any action regarding: Failures, disruptions, errors, or delays in processing that you may experience while using our Services; The risk of failure of hardware, software, and Internet connections; The risk of malicious software being introduced or found in the software underlying the Taler Wallet; The risk that third parties may obtain unauthorized access to information stored within your Taler Wallet, including, but not limited to your Taler Wallet coins or backup encryption keys. You release us from all liability related to any losses, damages, or claims arising from:" -msgstr "" - -#: ../../tos.rst:160 -msgid "user error such as forgotten passwords, incorrectly constructed transactions;" -msgstr "" - -#: ../../tos.rst:162 -msgid "server failure or data loss;" -msgstr "" - -#: ../../tos.rst:163 -msgid "unauthorized access to the Taler Wallet application;" -msgstr "" - -#: ../../tos.rst:164 -msgid "bugs or other errors in the Taler Wallet software; and" -msgstr "" - -#: ../../tos.rst:165 -msgid "any unauthorized third party activities, including, but not limited to, the use of viruses, phishing, brute forcing, or other means of attack against the Taler Wallet. We make no representations concerning any Third Party Content contained in or accessed through our Services." -msgstr "" - -#: ../../tos.rst:170 -msgid "Any other terms, conditions, warranties, or representations associated with such content, are solely between you and such organizations and/or individuals." -msgstr "" - -#: ../../tos.rst:174 -msgid "To the fullest extent permitted by applicable law, in no event will we or any of our officers, directors, representatives, agents, servants, counsel, employees, consultants, lawyers, and other personnel authorized to act, acting, or purporting to act on our behalf (collectively the “Taler Parties”) be liable to you under contract, tort, strict liability, negligence, or any other legal or equitable theory, for:" -msgstr "" - -#: ../../tos.rst:181 -msgid "any lost profits, data loss, cost of procurement of substitute goods or services, or direct, indirect, incidental, special, punitive, compensatory, or consequential damages of any kind whatsoever resulting from:" -msgstr "" - -#: ../../tos.rst:185 -msgid "your use of, or conduct in connection with, our services;" -msgstr "" - -#: ../../tos.rst:186 -msgid "any unauthorized use of your wallet and/or private key due to your failure to maintain the confidentiality of your wallet;" -msgstr "" - -#: ../../tos.rst:188 -msgid "any interruption or cessation of transmission to or from the services; or" -msgstr "" - -#: ../../tos.rst:189 -msgid "any bugs, viruses, trojan horses, or the like that are found in the Taler Wallet software or that may be transmitted to or through our services by any third party (regardless of the source of origination), or" -msgstr "" - -#: ../../tos.rst:193 -msgid "any direct damages." -msgstr "" - -#: ../../tos.rst:195 -msgid "These limitations apply regardless of legal theory, whether based on tort, strict liability, breach of contract, breach of warranty, or any other legal theory, and whether or not we were advised of the possibility of such damages. Some jurisdictions do not allow the exclusion or limitation of liability for consequential or incidental damages, so the above limitation may not apply to you." -msgstr "" - -#: ../../tos.rst:202 -msgid "Our services are provided \"as is\" and without warranty of any kind. To the maximum extent permitted by law, we disclaim all representations and warranties, express or implied, relating to the services and underlying software or any content on the services, whether provided or owned by us or by any third party, including without limitation, warranties of merchantability, fitness for a particular purpose, title, non-infringement, freedom from computer virus, and any implied warranties arising from course of dealing, course of performance, or usage in trade, all of which are expressly disclaimed. In addition, we do not represent or warrant that the content accessible via the services is accurate, complete, available, current, free of viruses or other harmful components, or that the results of using the services will meet your requirements. Some states do not allow the disclaimer of implied warranties, so the foregoing disclaimers may not apply to you. This paragraph gives you specific legal rights and you may also have other legal rights that vary from state to state." -msgstr "" - -#: ../../tos.rst:219 -msgid "Indemnity and Time limitation on claims and Termination" -msgstr "" - -#: ../../tos.rst:221 -msgid "To the extent permitted by applicable law, you agree to defend, indemnify, and hold harmless the Taler Parties from and against any and all claims, damages, obligations, losses, liabilities, costs or debt, and expenses (including, but not limited to, attorney’s fees) arising from: (a) your use of and access to the Services; (b) any feedback or submissions you provide to us concerning the Taler Wallet; (c) your violation of any term of this Agreement; or (d) your violation of any law, rule, or regulation, or the rights of any third party." -msgstr "" - -#: ../../tos.rst:229 -msgid "You agree that any claim you may have arising out of or related to your relationship with us must be filed within one year after such claim arises, otherwise, your claim in permanently barred." -msgstr "" - -#: ../../tos.rst:233 -msgid "In the event of termination concerning your use of our Services, your obligations under this Agreement will still continue." -msgstr "" - -#: ../../tos.rst:238 -msgid "Discontinuance of services and Force majeure" -msgstr "" - -#: ../../tos.rst:240 -msgid "We may, in our sole discretion and without cost to you, with or without prior notice, and at any time, modify or discontinue, temporarily or permanently, any portion of our Services. We will use the Taler protocol’s provisions to notify Wallets if our Services are to be discontinued. It is your responsibility to ensure that the Taler Wallet is online at least once every three months to observe these notifications. We shall not be held responsible or liable for any loss of funds in the event that we discontinue or depreciate the Services and your Taler Wallet fails to transfer out the coins within a three months notification period." -msgstr "" - -#: ../../tos.rst:250 -msgid "We shall not be held liable for any delays, failure in performance, or interruptions of service which result directly or indirectly from any cause or condition beyond our reasonable control, including but not limited to: any delay or failure due to any act of God, act of civil or military authorities, act of terrorism, civil disturbance, war, strike or other labor dispute, fire, interruption in telecommunications or Internet services or network provider services, failure of equipment and/or software, other catastrophe, or any other occurrence which is beyond our reasonable control and shall not affect the validity and enforceability of any remaining provisions." -msgstr "" - -#: ../../tos.rst:262 -msgid "Governing law, Waivers, Severability and Assignment" -msgstr "" - -#: ../../tos.rst:264 -msgid "No matter where you’re located, the laws of Switzerland will govern these Terms. If any provisions of these Terms are inconsistent with any applicable law, those provisions will be superseded or modified only to the extent such provisions are inconsistent. The parties agree to submit to the ordinary courts in Zurich, Switzerland for exclusive jurisdiction of any dispute arising out of or related to your use of the Services or your breach of these Terms." -msgstr "" - -#: ../../tos.rst:272 -msgid "Our failure to exercise or delay in exercising any right, power, or privilege under this Agreement shall not operate as a waiver; nor shall any single or partial exercise of any right, power, or privilege preclude any other or further exercise thereof." -msgstr "" - -#: ../../tos.rst:277 -msgid "You agree that we may assign any of our rights and/or transfer, sub-contract, or delegate any of our obligations under these Terms." -msgstr "" - -#: ../../tos.rst:280 -msgid "If it turns out that any part of this Agreement is invalid, void, or for any reason unenforceable, that term will be deemed severable and limited or eliminated to the minimum extent necessary." -msgstr "" - -#: ../../tos.rst:284 -msgid "This Agreement sets forth the entire understanding and agreement as to the subject matter hereof and supersedes any and all prior discussions, agreements, and understandings of any kind (including, without limitation, any prior versions of this Agreement) and every nature between us. Except as provided for above, any modification to this Agreement must be in writing and must be signed by both parties." -msgstr "" - -#: ../../tos.rst:293 -msgid "Questions or comments" -msgstr "" - -#: ../../tos.rst:295 -msgid "We welcome comments, questions, concerns, or suggestions. Please send us a message on our contact page at legal@taler-systems.com." -msgstr "" diff --git a/contrib/uncrustify_precommit b/contrib/uncrustify_precommit index 24873330..c10bc267 100755 --- a/contrib/uncrustify_precommit +++ b/contrib/uncrustify_precommit @@ -1,11 +1,10 @@ #!/bin/sh # use as .git/hooks/pre-commit - exec 1>&2 RET=0 -changed=$(git diff --cached --name-only) +changed=$(git diff --cached --name-only | grep -v mustach | grep -v templating/test./) crustified="" for f in $changed; @@ -29,7 +28,7 @@ done if [ $RET = 1 ]; then echo "Run" - echo "uncrustify --no-backup -c uncrustify.cfg ${crustified}" + echo "uncrustify --replace -c uncrustify.cfg ${crustified}" echo "before committing." fi exit $RET diff --git a/contrib/update-pp.sh b/contrib/update-pp.sh index db31ba18..728216c5 100755 --- a/contrib/update-pp.sh +++ b/contrib/update-pp.sh @@ -14,7 +14,8 @@ cd pp for l in $@ do mkdir -p $l - echo Generating PP for language $l + echo "Generating PP for language $l" + cat conf.py.in | sed -e "s/%VERSION%/$VERSION/g" > conf.py # 'f' is for the supported formats, note that the 'make' target # MUST match the file extension. for f in html txt pdf epub xml @@ -22,7 +23,16 @@ do rm -rf _build echo " Generating format $f" make -e SPHINXOPTS="-D language='$l'" $f >>sphinx.log 2>>sphinx.err < /dev/null - mv _build/$f/pp.$f $l/${VERSION}.$f + if test $f = "html" + then + htmlark -o $l/${VERSION}.$f _build/$f/${VERSION}.$f + else + mv _build/$f/${VERSION}.$f $l/${VERSION}.$f + fi + if test $f = "txt" + then + cp $l/${VERSION}.$f $l/${VERSION}.md + fi done done cd .. diff --git a/contrib/update-tos.sh b/contrib/update-tos.sh index 47d3af77..dcf9e391 100755 --- a/contrib/update-tos.sh +++ b/contrib/update-tos.sh @@ -14,7 +14,8 @@ cd tos for l in $@ do mkdir -p $l - echo Generating TOS for language $l + echo "Generating TOS for language $l" + cat conf.py.in | sed -e "s/%VERSION%/$VERSION/g" > conf.py # 'f' is for the supported formats, note that the 'make' target # MUST match the file extension. for f in html txt pdf epub xml @@ -22,7 +23,17 @@ do rm -rf _build echo " Generating format $f" make -e SPHINXOPTS="-D language='$l'" $f >>sphinx.log 2>>sphinx.err < /dev/null - mv _build/$f/tos.$f $l/${VERSION}.$f + if test $f = "html" + then + htmlark -o $l/${VERSION}.$f _build/$f/${VERSION}.$f + else + mv _build/$f/${VERSION}.$f $l/${VERSION}.$f + fi + if test $f = "txt" + then + cp $l/${VERSION}.$f $l/${VERSION}.md + fi done done cd .. +echo "Success" diff --git a/debian/changelog b/debian/changelog index c151d9ba..401827f0 100644 --- a/debian/changelog +++ b/debian/changelog @@ -1,3 +1,57 @@ +taler-exchange (0.9.3-1) unstable; urgency=low + + * Actual v0.9.3 release. + + -- Christian Grothoff <grothoff@gnu.org> Wed, 27 Sep 2023 03:50:12 +0200 + +taler-exchange (0.9.3) unstable; urgency=low + + * First work towards packaging v0.9.3. + + -- Christian Grothoff <grothoff@gnu.org> Thu, 7 Sep 2023 23:50:12 +0200 + +taler-exchange (0.9.2-3) unstable; urgency=low + + * Improvements to timeout handling when DB is not available yet. + + -- Florian Dold <dold@taler.net> Tue, 14 Mar 2023 12:30:15 +0100 + +taler-exchange (0.9.2-2) unstable; urgency=low + + * Further improvements to Debian package. + + -- Christian Grothoff <grothoff@gnu.org> Sat, 3 Mar 2023 23:50:12 +0200 + +taler-exchange (0.9.2-1) unstable; urgency=low + + * Minor improvements to Debian package, also adds age-withdraw REST APIs. + + -- Christian Grothoff <grothoff@gnu.org> Sat, 3 Mar 2023 13:50:12 +0200 + +taler-exchange (0.9.2) unstable; urgency=low + + * Packaging latest release. + + -- Christian Grothoff <grothoff@gnu.org> Tue, 21 Feb 2023 13:50:12 +0200 + +taler-exchange (0.9.1) unstable; urgency=low + + * Packaging latest release. + + -- Christian Grothoff <grothoff@gnu.org> Tue, 17 Jan 2023 11:50:12 +0200 + +taler-exchange (0.9.0) unstable; urgency=low + + * Packaging latest release. + + -- Christian Grothoff <grothoff@gnu.org> Sat, 5 Nov 2022 11:50:12 +0200 + +taler-exchange (0.8.99-2) unstable; urgency=low + + * Packaging latest pre-release from Git. + + -- Christian Grothoff <grothoff@gnu.org> Mon, 26 Sep 2022 09:50:12 +0200 + taler-exchange (0.8.99-1) unstable; urgency=low * Updating to latest pre-release from Git. diff --git a/debian/control b/debian/control index 3f55173e..d4ba9f5b 100644 --- a/debian/control +++ b/debian/control @@ -7,17 +7,18 @@ Build-Depends: automake (>=1.11.1), autopoint, bash, + gcc-12, debhelper-compat (= 12), gettext, - libgnunet-dev (>=0.17.1), + libgnunet-dev (>=0.20), libcurl4-gnutls-dev (>=7.35.0) | libcurl4-openssl-dev (>= 7.35.0), libgcrypt20-dev (>=1.8), libgnutls28-dev (>=3.2.12), libidn2-dev, - libjansson-dev, + libjansson-dev (>= 2.13), libltdl-dev (>=2.2), libmicrohttpd-dev (>=0.9.71), - libpq-dev (>=13), + libpq-dev (>=15), libsodium-dev (>=1.0.11), libunistring-dev (>=0.9.2), python3-jinja2, @@ -39,7 +40,15 @@ Depends: netbase, ${misc:Depends}, ${shlibs:Depends} -Description: libraries to talk to a GNU Taler exchange +Recommends: + python3-sphinx, + python3-sphinx-rtd-theme +Description: Libraries to talk to a GNU Taler exchange. + The package also contains various files fundamental + to all GNU Taler installations, such as the + taler-config configuration command-line tool, + various base configuration files and associated + documentation. Package: taler-exchange-database Architecture: any @@ -50,7 +59,10 @@ Depends: netbase, ${misc:Depends}, ${shlibs:Depends} -Description: programs and libraries to manage a GNU Taler exchange database +Description: Programs and libraries to manage a GNU Taler exchange database. + This package contains only the code to setup the + (Postgresql) database interaction (taler-exchange-dbinit + and associated resource files). Package: taler-exchange Architecture: any @@ -63,13 +75,28 @@ Depends: lsb-base, netbase, ucf, - dbconfig-pgsql | dbconfig-no-thanks, ${misc:Depends}, ${shlibs:Depends} Recommends: taler-exchange-offline (= ${binary:Version}), - postgresql (>=13.0) -Description: GNU's payment system operator + apache2 | nginx | httpd, + postgresql (>=15.0) +Description: GNU's payment system operator. + GNU Taler is the privacy-preserving digital payment + system from the GNU project. This package contains the + core logic that must be run by the payment service + provider or bank to offer payments to consumers and + merchants. At least one exchange must be operated + per currency. + In addition to the core logic, an exchange operator + must also have a system running the "offline" logic + which is packaged as taler-exchange-offline. It is + recommended to keep the "offline" logic on a system + that is never connected to the Internet. However, it |