commit 60d5ea0f444d65021cb452063207e2a1acc24b13
parent 7b3eff948255f815ecc5e9878f3823fb3cc06bba
Author: Martin Schanzenbach <schanzen@gnunet.org>
Date: Thu, 18 May 2023 15:49:47 +0200
update taler exchange
Diffstat:
1 file changed, 169 insertions(+), 3 deletions(-)
diff --git a/rpmbuild/SPECS/taler-exchange.spec b/rpmbuild/SPECS/taler-exchange.spec
@@ -24,21 +24,80 @@ BuildRequires: libsodium-devel
BuildRequires: libargon2-devel
BuildRequires: jansson-devel
BuildRequires: libpq-devel
+BuildRequires: gnupg2
Recommends: postgresql-server
+Recommends: taler-exchange-offline
BuildRequires: libmicrohttpd-devel
BuildRequires: libgnunetpq-devel
BuildRequires: python3-jinja2
%description
-GNU Taler is an open protocol for an electronic payment system with a free software reference implementation. GNU Taler offers secure, fast and easy payment processing using well understood cryptographic techniques. GNU Taler allows customers to remain anonymous, while ensuring that merchants can be held accountable by governments. Hence, GNU Taler is compatible with anti-money-laundering (AML) and know-your-customer (KYC) regulation, as well as data protection regulation (such as GDPR).
+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
+is also possible to run the "offline" logic directly
+on the production system, especially for testing.
+Finally, an exchange operator should also be prepared
+to run a taler-auditor.
-GNU Taler is not yet production-ready, after following this manual you will have a backend that can process payments in “KUDOS”, but not regular currencies. This is not so much because of limitations in the backend, but because we are not aware of a Taler exchange operator offering regular currencies today.
%package devel
Summary: Taler exchange development headers
%description devel
Files needed to develop Taler exchange applications and services.
+%package offline
+Requires: libtalerexchange%{?_isa} = %{version}-%{release}
+Summary: Tools for managing the GNU Taler exchange offline keys
+%description offline
+A GNU Taler exchange uses an offline key to sign its online
+keys, fee structure, bank routing information and other meta
+data. The offline signing key is the root of the Taler PKI
+that is then embedded in consumer wallets and merchant backends.
+This package includes the tool to download material to sign
+from the exchange, create signatures, and upload the resulting
+signatures to the exchange.
+
+
+%package database
+Summary: Programs and libraries to manage a GNU Taler exchange database.
+%description database
+This package contains only the code to setup the (Postgresql) database interaction (taler-exchange-dbinit and associated resource files).
+
+%package -n libtalerexchange
+Summary: Libraries to talk to a GNU Taler exchange
+%description -n libtalerexchange
+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 -n libtalerexchange-devel
+Requires: libtalerexchange%{?_isa} = %{version}-%{release}
+Summary: Development files to talk to a GNU Taler exchange
+%description -n libtalerexchange-devel
+Libraries to talk to a GNU Taler exchange (development).
+
+%package -n taler-auditor
+Requires: libtalerexchange%{?_isa} = %{version}-%{release}
+Requires: taler-exchange-database%{?_isa} = %{version}-%{release}
+Summary: GNU's payment system auditor.
+%description -n taler-auditor
+GNU Taler is the privacy-preserving digital payment
+system from the GNU project. This package contains the
+auditor logic. It verifies that the taler-exchange run
+by a payment service provider is correctly performing
+its bank transactions and thus has the correct balance
+in its escrow account. Each exchange operator is
+expected to make use of one or more auditors as part
+of its regulatory compliance.
+
%prep
echo "%SHA512SUM0 %SOURCE0" | sha512sum -c -
%{gpgverify} --keyring='%{SOURCE2}' --signature='%{SOURCE1}' --data='%{SOURCE0}'
@@ -46,12 +105,15 @@ echo "%SHA512SUM0 %SOURCE0" | sha512sum -c -
%autosetup
%build
-%configure --with-gnunet=%{_prefix}
+%configure
%{make_build}
%install
make install DESTDIR=%{buildroot}
%find_lang %{name}
+install debian/etc-libtalerexchange/* etc/
+install debian/etc-taler-auditor/* etc/
+install debian/etc-taler-exchange/* etc/
#install -Dm644 "contrib/packages/fedora/%{name}.service" "%{buildroot}/%{_unitdir}/%{name}.service"
#install -Dm644 "contrib/packages/fedora/%{name}-user.service" "%{buildroot}/%{_userunitdir}/%{name}-user.service"
#install -Dm644 "contrib/packages/fedora/gnunet-system.conf" %{buildroot}/%{_sysconfdir}/gnunet.conf
@@ -72,6 +134,110 @@ make check
%files
# AGPLv3
+%{_bindir}/taler-exchange-aggregator
+%{_bindir}/taler-exchange-closer
+%{_bindir}/taler-exchange-dbinit
+%{_bindir}/taler-exchange-drain
+%{_bindir}/taler-exchange-expire
+%{_bindir}/taler-exchange-httpd
+%{_bindir}/taler-exchange-router
+%{_bindir}/taler-exchange-secmod-cs
+%{_bindir}/taler-exchange-secmod-eddsa
+%{_bindir}/taler-exchange-secmod-rsa
+%{_bindir}/taler-exchange-transfer
+%{_bindir}/taler-exchange-wirewatch
+%{_bindir}/taler-exchange-wire-gateway-client
+%{_libdir}/*/taler/libtaler_plugin_kyclogic_*.so
+%{_libdir}/*/taler/libtaler_extension_*.so
+%{_mandir}/man1/taler-exchange-aggregator*
+%{_mandir}/man1/taler-exchange-closer*
+%{_mandir}/man1/taler-exchange-dbinit*
+%{_mandir}/man1/taler-exchange-drain*
+%{_mandir}/man1/taler-exchange-expire*
+%{_mandir}/man1/taler-exchange-httpd*
+%{_mandir}/man1/taler-exchange-router*
+%{_mandir}/man1/taler-exchange-secmod-eddsa*
+%{_mandir}/man1/taler-exchange-secmod-rsa*
+%{_mandir}/man1/taler-exchange-secmod-cs*
+%{_mandir}/man1/taler-exchange-transfer*
+%{_mandir}/man1/taler-exchange-wirewatch*
+%{_mandir}/man1/taler-bank*
+%{_mandir}/man1/taler-exchange-wire-gateway-client*
+%{_infodir}/taler-bank*
+%{_infodir}/taler-exchange*
+%{_datadir}/taler/config.d/*
+%{_datadir}/taler/exchange/templates/*.must
+
+# FIXME configuration files in /etc/taler
+
+%{_datadir}/taler/exchange/pp/*/*
+%{_datadir}/taler/exchange/tos/*/*
+
+%files -n libtalerexchange
+%{_libdir}/*/libtaler*.so.*
+# FIXME: All this should eventually go into taler-base.
+%{_datadir}/taler/config.d/paths.conf
+%{_datadir}/taler/config.d/taler.conf
+%{_bindir}/taler-config
+%{_mandir}/man5/taler.conf.5
+%{_mandir}/man1/taler-config*
+
+%files -n libtalerexchange-devel
+# Benchmarks, only install them for the dev package.
+%{_bindir}/taler-aggregator-benchmark
+%{_bindir}/taler-exchange-benchmark
+%{_bindir}/taler-fakebank-run
+%{_bindir}/taler-bank-benchmark
+%{_bindir}/taler-exchange-kyc-tester
+# Only used in test cases. Maybe these
+# shouldn't even be installed?
+%{_bindir}/taler-nexus-prepare
+%{_bindir}/taler-bank-manage-testing
+# Man pages
+%{_mandir}/man1/taler-exchange-kyc-tester*
+# Headers
+%{_includedir}/taler/*
+# Plain .so symlinks
+%{_libdir}/*/libtaler*.so
+# Testing libraries
+%{_libdir}/*/libtalertesting.so.*
+%{_libdir}/*/libtalerfakebank.so.*
+%{_libdir}/*/libtalertesting.so
+%{_libdir}/*/libtalerfakebank.so
+# Documentation
+%{_mandir}/man1/taler-exchange-benchmark*
+%{_infodir}/taler-developer-manual*
+
+%files -n taler-auditor
+%{_bindir}/taler-auditor
+%{_bindir}/taler-auditor-dbinit
+%{_bindir}/taler-auditor-exchange
+%{_bindir}/taler-auditor-httpd
+%{_bindir}/taler-auditor-offline
+%{_bindir}/taler-auditor-sync
+%{_bindir}/taler-helper-auditor-*
+%{_bindir}/*/taler/libtaler_plugin_auditor*.so
+%{_bindir}/*/libauditor*
+%{_bindir}/*/libtalerauditordb*
+%{_mandir}/man1/taler-auditor*
+%{_mandir}/man1/taler-helper-auditor*
+%{_infodir}/taler-auditor*
+%{_datadir}/taler/config.d/auditor*
+%{_datadir}/taler/sql/auditor/*
+# FIXME Configuration
+%{_datadir}/taler/exchange/auditor-report.tex.j2
+
+%files database
+%{_bindir}/taler-exchange-dbinit
+%{_libdir}/*/taler/libtaler_plugin_exchange*.so
+%{_mandir}/man1/taler-exchange-dbinit.1
+%{_datadir}/taler/sql/exchange/*
+%{_datadir}/taler/config.d/exchangedb.conf
+%{_datadir}/taler/config.d/exchangedb-postgres.conf
+
+%files offline
+%{_bindir}/taler-exchange-offline
+%{_mandir}/man1/taler-exchange-offline*
#%files doc