merchant

Merchant backend to process payments, run by merchants
Log | Files | Refs | Submodules | README | LICENSE

commit 1619de6bfd433b6b8a597a4e8b415d3414d450f6
parent b3911a3460dd2198109a71827b28cc4dd8ac1f10
Author: Christian Grothoff <grothoff@gnunet.org>
Date:   Fri,  1 May 2026 15:22:15 +0200

misc debian package fixes, should fix #11372

Diffstat:
Mdebian/rules | 1+
Mdebian/taler-merchant.postinst | 25++++++++++++++++++-------
Mdebian/taler-merchant.taler-merchant-dbinit-gc.timer | 1+
Mdebian/taler-merchant.taler-merchant-donaukeyupdate.service | 2+-
Mdebian/taler-merchant.taler-merchant-httpd.service | 2--
Mdebian/taler-merchant.taler-merchant.target | 1+
6 files changed, 22 insertions(+), 10 deletions(-)

diff --git a/debian/rules b/debian/rules @@ -42,6 +42,7 @@ override_dh_installsystemd: dh_installsystemd -ptaler-merchant --name=taler-merchant-report-generator --no-start --no-enable dh_installsystemd -ptaler-merchant --name=taler-merchant-webhook --no-start --no-enable dh_installsystemd -ptaler-merchant --name=taler-merchant-wirewatch --no-start --no-enable + dh_installsystemd -ptaler-merchant --name=taler-merchant-dbinit-gc --no-start --no-enable dh_installsystemd -ptaler-merchant --name=taler-merchant --no-start --no-enable # final invocation to generate daemon reload dh_installsystemd diff --git a/debian/taler-merchant.postinst b/debian/taler-merchant.postinst @@ -2,9 +2,10 @@ set -e -MARKER="/run/taler-merchant/.was-enabled" +# Use $HOME instead of $TMP to survive reboots with 'bad' timing. +MARKER="/var/lib/taler-merchant/.was-enabled" -SERVICES="taler-merchant-depositcheck taler-merchant-exchangekeyupdate taler-merchant-donaukeyupdate taler-merchant-httpd taler-merchant-kychcekc taler-merchant-reconciliation taler-merchant-report-generator taler-merchant-webhook taler-merchant-wirewatch" +SERVICES="taler-merchant-depositcheck taler-merchant-exchangekeyupdate taler-merchant-donaukeyupdate taler-merchant-httpd taler-merchant-kyccheck taler-merchant-reconciliation taler-merchant-report-generator taler-merchant-webhook taler-merchant-wirewatch" if [ -d /run/systemd/system ]; then @@ -14,7 +15,7 @@ if [ "$1" = "remove" ]; then if [ -x "/usr/bin/deb-systemd-helper" ]; then - for SERVICE in "$SERVICES" + for SERVICE in $SERVICES do deb-systemd-helper mask "${SERVICE}.service" >/dev/null || true done @@ -26,7 +27,7 @@ if [ "$1" = "purge" ]; then if [ -x "/usr/bin/deb-systemd-helper" ]; then - for SERVICE in "$SERVICES" + for SERVICE in $SERVICES do deb-systemd-helper purge "${SERVICE}.service" >/dev/null || true deb-systemd-helper unmask "${SERVICE}.service" >/dev/null || true @@ -69,13 +70,23 @@ configure) /usr/bin/taler-merchant-dbinit >/dev/null 2>&1 || true fi + # remove manual enables, only the target should be enabled! + for s in taler-merchant-httpd taler-merchant-depositcheck \ + taler-merchant-exchangekeyupdate taler-merchant-donaukeyupdate \ + taler-merchant-kyccheck taler-merchant-reconciliation \ + taler-merchant-report-generator taler-merchant-webhook \ + taler-merchant-wirewatch; + do + deb-systemd-helper disable "${s}.service" >/dev/null || true + done + if [ -f "$MARKER" ] && grep -q "enabled" "$MARKER"; then - echo "taler-merchant-httpd was previously enabled, running DB config." + echo "taler-merchant-httpd was previously enabled, running DB config." - systemctl enable --now taler-merchant.target || true + systemctl enable --now taler-merchant.target || true else - echo "Not enabling or starting Taler merchant services (marker not found or was 'disabled')." + echo "Not enabling or starting Taler merchant services (marker not found or was 'disabled')." fi # Cleanup marker file diff --git a/debian/taler-merchant.taler-merchant-dbinit-gc.timer b/debian/taler-merchant.taler-merchant-dbinit-gc.timer @@ -1,5 +1,6 @@ [Unit] Description=Run taler-merchant-dbinit-gc daily +PartOf=taler-merchant.target [Timer] # First time 1h after boot diff --git a/debian/taler-merchant.taler-merchant-donaukeyupdate.service b/debian/taler-merchant.taler-merchant-donaukeyupdate.service @@ -1,7 +1,7 @@ [Unit] Description=GNU Taler merchant donau configuration data download service After=postgresql.service -ConditionPathExists=/usr/bin/taler-merchant-donaukeyupdate +PartOf=taler-merchant.target [Service] User=taler-merchant-httpd diff --git a/debian/taler-merchant.taler-merchant-httpd.service b/debian/taler-merchant.taler-merchant-httpd.service @@ -18,5 +18,3 @@ StandardOutput=journal StandardError=journal EnvironmentFile=-/etc/taler-merchant/secrets/tan-helper-secrets.env -[Install] -WantedBy=multi-user.target diff --git a/debian/taler-merchant.taler-merchant.target b/debian/taler-merchant.taler-merchant.target @@ -11,6 +11,7 @@ Wants=taler-merchant-reconciliation.service Wants=taler-merchant-report-generator.service Wants=taler-merchant-webhook.service Wants=taler-merchant-wirewatch.service +Wants=taler-merchant-dbinit-gc.timer [Install] WantedBy=multi-user.target