Name: taler-exchange Version: 0.9.2 Release: 1%{?dist} Summary: The Taler exchange service. License: AGPL-3.0-or-later URL: https://taler.net %global _disable_source_fetch 0 Source0: https://ftpmirror.gnu.org/gnu/taler/%{name}-%{version}.tar.gz Source1: https://ftpmirror.gnu.org/gnu/taler/%{name}-%{version}.tar.gz.sig Source2: https://grothoff.org/christian/grothoff.asc %global SHA512SUM0 3a7cb12aaa4229f0dd36e2015123757df14d7e7a30bdb0a9c23aa4ca562ca83966e3522d02b65d40092b051955bf2380a01f321d1acf283f6a55e5b609121122 BuildRequires: libtool BuildRequires: libtool-ltdl BuildRequires: libtool-ltdl-devel BuildRequires: autoconf BuildRequires: make BuildRequires: gettext BuildRequires: gcc BuildRequires: sqlite-devel BuildRequires: libunistring-devel BuildRequires: libcurl-devel BuildRequires: libgcrypt-devel BuildRequires: libsodium-devel BuildRequires: libargon2-devel BuildRequires: jansson-devel BuildRequires: libpq-devel BuildRequires: gnupg2 BuildRequires: zlib-devel Recommends: postgresql-server Recommends: taler-exchange-offline BuildRequires: libmicrohttpd-devel BuildRequires: libgnunetpq-devel BuildRequires: python3-jinja2 %description 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. %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}' %autosetup %build %configure %{make_build} %install make install DESTDIR=%{buildroot} #%find_lang %{name} # FIXME: Installing default configs. Those must be shipped in the tarball. #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 rm -f %{buildroot}%{_infodir}/dir %check # FIXME test builds require installed libtalerexchange. May be upstream bug. #make check %post #%systemd_post %{name}.service #%systemd_user_post %{name}-user.service %preun #%systemd_preun %{name}.service %postun #%systemd_postun_with_restart %{name}.service #%systemd_user_post %{name}-user.service %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-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}/man1/taler-config* %{_mandir}/man5/taler.conf.5.gz %{_libdir}/libtaler*.so.* %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 # 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-* %{_libdir}/taler/libtaler_plugin_auditor*.so %{_libdir}/libauditor* %{_libdir}/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 %{_datadir}/taler/sql/exchange/* %{_datadir}/taler/config.d/exchangedb.conf %{_datadir}/taler/config.d/exchangedb-postgres.conf %{_mandir}/man1/taler-exchange-dbinit.1.gz %files offline %{_bindir}/taler-exchange-offline %{_mandir}/*/taler-exchange-offline* #%files doc %changelog * Thu May 18 2023 Martin Schanzenbach - 0.9.2-1 - Initial package