Source: taler-exchange
Section: net
Priority: optional
Maintainer: Christian Grothoff <grothoff@gnu.org>
Build-Depends:
 meson,
 ninja-build,
 bash,
 gcc,
 debhelper-compat (= 12),
 gettext,
 libgnunet-dev (>=0.28.1~dev4),
 libcurl4-gnutls-dev (>=7.35.0) | libcurl4-openssl-dev (>= 7.35.0),
 libgcrypt20-dev (>=1.8),
 libgnutls28-dev (>=3.2.12),
 libjansson-dev (>= 2.13),
 libltdl-dev (>=2.2),
 libmicrohttpd-dev (>=1.0.1),
 libpq-dev (>=15),
 libsodium-dev (>=1.0.11),
 libunistring-dev (>=0.9.2),
 po-debconf,
 texinfo (>=5.2),
 zlib1g-dev
Standards-Version: 4.5.0
Vcs-Git: https://salsa.debian.org/debian/taler-exchange.git
Vcs-Browser: https://salsa.debian.org/debian/taler-exchange
Homepage: https://taler.net/

Package: libtalerexchange
Architecture: any
Pre-Depends:
 ${misc:Pre-Depends}
Depends:
 lsb-base,
 netbase,
 ${misc:Depends},
 ${shlibs:Depends}
Description: shared libraries to talk to a GNU Taler exchange
 GNU Taler is the privacy-preserving digital payment system from the GNU
 project. This package contains the shared C libraries used by clients
 and services to interact with a Taler exchange via its REST API, to parse
 and verify exchange-issued cryptographic objects (denomination keys,
 signing keys, deposit confirmations, ...) and to handle Taler amounts.
 .
 Also included is taler-exchange-config, the command-line tool to read
 and edit Taler configuration files, along with the base configuration
 fragments and documentation shared by all Taler exchange components.
 Every other taler-exchange-* and taler-auditor* package depends on this
 one.

Package: taler-terms-generator
Architecture: any
Pre-Depends:
 ${misc:Pre-Depends}
Depends:
 libtalerexchange,
 lsb-base,
 pandoc,
 groff,
 ghostscript,
 ${misc:Depends}
Description: generator for GNU Taler terms of service and privacy policy
 taler-terms-generator converts a reStructuredText source document into
 the bundle of HTML, Markdown, plain-text, EPUB and PDF renderings (and
 multiple languages) that a Taler service expects to find on disk in
 order to answer the /terms and /pp REST endpoints with the appropriate
 content negotiation.
 .
 It is useful for GNU Taler exchange, merchant and auditor operators who
 wish to publish or update their legal documents. Pandoc, groff and
 Ghostscript are pulled in as runtime dependencies to perform the
 conversions.

Package: taler-exchange-database
Architecture: any
Pre-Depends:
 ${misc:Pre-Depends}
Depends:
 lsb-base,
 netbase,
 ${misc:Depends},
 ${shlibs:Depends}
Description: database initialisation tool for the GNU Taler exchange
 GNU Taler is the privacy-preserving digital payment system from the GNU
 project. This package contains taler-exchange-dbinit together with the
 SQL resource files it loads. The tool creates the schema, indices,
 customisation hooks and (optionally) the auditor notification triggers
 used by the exchange and the auditor in their PostgreSQL database, and
 supports incremental garbage collection and shard-lock recovery after
 crashes.
 .
 Both taler-exchange and taler-auditor depend on this package, as the
 two services share a database layout and the same setup tooling. A
 PostgreSQL server (>= 15) is required at runtime.

Package: taler-exchange
Architecture: any
Pre-Depends:
 ${misc:Pre-Depends}
Depends:
 libtalerexchange (= ${binary:Version}),
 taler-exchange-database (= ${binary:Version}),
 adduser,
 lsb-base,
 netbase,
 zstd,
 ucf,
 ${misc:Depends},
 ${shlibs:Depends}
Recommends:
  taler-exchange-offline (= ${binary:Version}),
  taler-terms-generator,
  taler-exchange-typst,
  taler-exchange-aml-webui,
  taler-exchange-kyc-webui,
  apache2 | nginx | httpd,
  robocop,
  postgresql (>=15.0)
Description: GNU Taler payment system - exchange operator daemons
 GNU Taler is the privacy-preserving digital payment system from the GNU
 project. The exchange is the central service operated by a payment
 service provider or bank to issue and redeem digital coins for a given
 currency; at least one exchange must be operated per currency.
 .
 This package ships the daemons required to run an exchange in
 production:
  * taler-exchange-httpd, the public REST frontend talked to by wallets
    and merchant backends;
  * taler-exchange-secmod-rsa, -cs and -eddsa, the security modules that
    hold the online signing keys and communicate with the HTTPD over
    UNIX-domain sockets;
  * taler-exchange-aggregator, -transfer, -wirewatch and -closer, which
    drive the interaction with the bank (aggregating deposits, executing
    outgoing wire transfers, observing incoming transfers, and refunding
    abandoned reserves);
  * taler-exchange-expire, -sanctionscheck and the KYC/AML pipeline
    helpers (taler-exchange-kyc-* converters and triggers).
 .
 Running an exchange additionally requires the air-gapped offline-signing
 tool packaged as taler-exchange-offline (recommended). It is also
 recommended to run a taler-auditor to check the operation and determine
 expected balance in the escrow account and profits from fees.

Package: taler-exchange-offline
Architecture: any
Pre-Depends:
 ${misc:Pre-Depends}
Depends:
 libtalerexchange (= ${binary:Version}),
 adduser,
 lsb-base,
 netbase,
 ${misc:Depends},
 ${shlibs:Depends}
Description: air-gapped signing tool for the GNU Taler exchange master key
 A GNU Taler exchange uses a long-term offline master key to sign its
 online signing keys, denomination keys, fee structure, bank account
 details, auditor and partner-exchange registrations, AML staff entries
 and key-revocation messages. The corresponding master public key forms
 the root of the Taler PKI embedded in consumer wallets and merchant
 backends, so the private key must be protected with great care.
 .
 This package contains taler-exchange-offline, the command-line tool
 used to set up the master key, download future signing material from a
 running exchange, inspect and sign it offline, and upload the resulting
 signatures back to the exchange. It is recommended to install
 this package on a dedicated machine that is never connected to the
 Internet; it also must be installed on some online system to
 download key material from the exchange and to upload signatures and
 configuration data to the exchange.

Package: taler-exchange-typst
Architecture: any
Depends:
 pdftk
Recommends:
 typst
Description: Typst templates for GNU Taler exchange PDF generation
 This package ships the Typst templates that the GNU Taler
 exchange uses to render PDF artefacts (such as receipts and reports)
 from structured data.
 .
 The pdftk dependency is required at runtime to assemble the resulting
 PDFs; the typst compiler itself is recommended but kept optional as
 distros still often lack a native Typst package and thus operators
 are likely to supply a locally built or vendored Typst compiler.

Package: taler-auditor
Architecture: any
Pre-Depends:
 ${misc:Pre-Depends}
Depends:
 libtalerexchange (= ${binary:Version}),
 taler-exchange-database (= ${binary:Version}),
 taler-auditor-webui,
 adduser,
 zstd,
 lsb-base,
 netbase,
 ${misc:Depends},
 ${shlibs:Depends}
Description: GNU Taler payment system - independent auditor
 GNU Taler is the privacy-preserving digital payment system from the GNU
 project. An auditor is an independent third party (or the exchange
 operator themselves) that verifies the correct operation
 of a Taler exchange: it checks all cryptographic signatures recorded in
 the exchange's database, recomputes balances, and reconciles the
 reported state against the bank account, alerting the operator to any
 inconsistencies and computing expected balance, revenue and risk
 exposure.
 .
 This package provides the taler-auditor incremental audit tool, the
 long-running taler-auditor-httpd REST service, the taler-auditor-sync
 helper that maintains a safe replica of the exchange database, and the
 corresponding helper daemons. The offline-signing tool used
 by the auditor is also included.

Package: libtalerexchange-dev
Section: libdevel
Architecture: any
Depends:
 libtalerexchange (= ${binary:Version}),
 libgnunet-dev (>=0.28.1~dev4),
 libgcrypt20-dev (>=1.8),
 libmicrohttpd-dev (>=1.0.1),
 ${misc:Depends},
 ${shlibs:Depends}
Description: GNU Taler exchange client libraries - development files
 This package contains the C header files, static libraries and
 pkg-config files needed to build software against the GNU Taler
 exchange client libraries shipped in libtalerexchange.
 .
 It also installs taler-fakebank-run, an in-memory implementation of the
 Taler Wire Gateway API used by the Taler test suite. The fake bank is
 not suitable for production use: all transaction state is kept in RAM
 and lost on shutdown.
