taler-mdb

GNU Taler Extensions and Integrations
Log | Files | Refs | Submodules | README | LICENSE

commit 495b10e34d19319186494d83b0dbb5ec3dde4dc9
parent 9afe2f07bf4405aa4645bdaeb294d15c1c3f94a6
Author: Christian Grothoff <christian@grothoff.org>
Date:   Sat, 13 Jan 2024 15:44:05 +0100

misc improvements for error handling

Diffstat:
M.gitignore | 2++
Mcontrib/taler-mdb-network-check.sh | 7+++----
Dcontrib/taler-mdb.service | 18------------------
Mdebian/changelog | 8++++++++
Mdebian/control | 8++++----
Mdebian/etc/taler-mdb.conf | 24++++++++++++------------
Ddebian/taler-mdb.config | 10----------
Ddebian/taler-mdb.postinst | 48------------------------------------------------
Adebian/taler-mdb.service | 12++++++++++++
9 files changed, 41 insertions(+), 96 deletions(-)

diff --git a/.gitignore b/.gitignore @@ -27,3 +27,5 @@ build uncrustify.cfg debian/taler-mdb/ debian/taler-mdb.debhelper.log +config.guess +config.sub diff --git a/contrib/taler-mdb-network-check.sh b/contrib/taler-mdb-network-check.sh @@ -58,9 +58,6 @@ while getopts ':c:f:ht:' OPTION; do # shellcheck disable=SC2016 echo ' -t $HOSTNAME -- target hostname (required)' ;; - t) - BACKEND_HOSTNAME="$OPTARG" - ;; ?) exit_fail "Unrecognized command line option" ;; @@ -117,6 +114,9 @@ trap childdeath SIGCHLD # shellcheck disable=SC2120 function check_network() { + DEF_BACKEND=$(taler-config -c "$CONF" -s "taler-mdb" -o "BACKEND_BASE_URL") + BACKEND_HOSTNAME=$(echo "$DEF_BACKEND" | awk -F/ '{print $3}') + DNS_HOST=$(grep nameserver /etc/resolv.conf | awk '{print $2}') if ! ping -c1 "$DNS_HOST" &> /dev/null then @@ -134,7 +134,6 @@ function check_network() return fi - DEF_BACKEND=$(taler-config -c "$CONF" -s "taler-mdb" -o "BACKEND_BASE_URL") if echo "$DEF_BACKEND" | grep "https://" > /dev/null then if ! wget --no-check-certificate "${DEF_BACKEND}config" -O /dev/null &> /dev/null diff --git a/contrib/taler-mdb.service b/contrib/taler-mdb.service @@ -1,18 +0,0 @@ -[Unit] -Description=Start the taler-mdb application to communicate with the VMC -#After=taler-mdb.target -After=network-online.target - -[Service] -WorkingDirectory=/home/pi/taler-mdb -#ExecStart=/home/pi/taler-mdb/src/taler-mdb -t -c /home/pi/taler-mdb/taler.conf -L INFO -ExecStart=/home/pi/showIPoverQR.sh -StandardOutput=inherit -StandardError=inherit -Restart=always -RestartSec=10 -User=root - -[Install] -WantedBy=multi-user.target - diff --git a/debian/changelog b/debian/changelog @@ -1,3 +1,11 @@ +taler-mdb (0.9.4-1) unstable; urgency=low + + * Removing unnecessary build dependencies. + * Improving systemd service file packaging. + * Added logic to test network connectivity before launching taler-mdb. + + -- Christian Grothoff <grothoff@gnu.org> Sat, 13 Jan 2024 13:50:12 +0200 + taler-mdb (0.9.4) unstable; urgency=low * First work towards packaging v0.9.4. diff --git a/debian/control b/debian/control @@ -7,21 +7,19 @@ Build-Depends: automake (>=1.11.1), autopoint, debhelper-compat (= 13), - gettext, libgnunet-dev (>= 0.20), libnfc-dev, libtalerexchange-dev (>= 0.9.3), libtalermerchant-dev (>= 0.9.3), libpq-dev (>=13), - libsqlite3-dev (>=3.8), po-debconf, zlib1g-dev Build-Conflicts: autoconf2.13, automake1.4 Standards-Version: 4.5.0 -Vcs-Git: https://salsa.debian.org/debian/taler-merchant.git -Vcs-browser: https://salsa.debian.org/debian/taler-merchant +Vcs-Git: https://salsa.debian.org/debian/taler-mdb.git +Vcs-browser: https://salsa.debian.org/debian/taler-mdb Homepage: https://taler.net/ Package: taler-mdb @@ -36,4 +34,6 @@ Depends: netbase, ${misc:Depends}, ${shlibs:Depends} +Recommends: + bind9-dnsutils Description: GNU's payment system multi-drop-bus integration. diff --git a/debian/etc/taler-mdb.conf b/debian/etc/taler-mdb.conf @@ -1,18 +1,14 @@ # This is a reference configuration. Adjust to your needs! -[taler] -# Which currency do we use? Must match products at the end! -CURRENCY = KUDOS - [taler-mdb] # Where is our backend? -BACKEND-BASE-URL = http://backend.demo.taler.net/ +BACKEND_BASE_URL = http://backend.demo.taler.net/ # Secret key to talk to *all* instances we use. -BACKEND-AUTHORIZATION = ApiKey Sandbox +BACKEND_AUTHORIZATION = "Bearer secret-token:sandbox" # Message to diplay after purchase is completed, -fulfillment-msg = Enjoy your ${PRODUCT_DESCRIPTION} +FULFILLMENT_MSG = Enjoy your ${PRODUCT_DESCRIPTION} # Name of the UART where the MDB connector is reachable. UART_DEVICE = /dev/ttyAMA0 @@ -30,14 +26,18 @@ ESSID = snack #If sold out is enabled, products with description "empty" will be registered as sold out. # Use different "product-" section names for the various products. + [product-sample] # Text to show to the user -description = sample-text +DESCRIPTION = sample-text # How much to charge -price = KUDOS:0.1 +PRICE = KUDOS:0.1 # MDB bus number -number = 31 +NUMBER = 31 + # Optional: use another instance -# instance = http://backend.test.taler.net/instances/foo/ -# NOTE: authorization key of that instance MUST match the one from [taler-mdb]! +# INSTANCE = http://backend.test.taler.net/instances/foo/ + +# Secret key to talk to this instance. +# BACKEND_AUTHORIZATION = "Bearer secret-token:sandbox" diff --git a/debian/taler-mdb.config b/debian/taler-mdb.config @@ -1,10 +0,0 @@ -#!/bin/sh - -set -e - -. /usr/share/debconf/confmodule - -db_input medium taler-mdb/autostart || true -db_go - -db_stop diff --git a/debian/taler-mdb.postinst b/debian/taler-mdb.postinst @@ -1,48 +0,0 @@ -#!/bin/bash - -set -e - -. /usr/share/debconf/confmodule - -case "${1}" in - configure) - db_version 2.0 - - db_get taler-mdb/autostart - _AUTOSTART="${RET}" # boolean - - db_stop - -cat > "/etc/systemd/system/taler-mdb.service" <<EOF -[Unit] -Description=GNU Taler Multi-Drop-Bus application - -[Service] -EnvironmentFile=/etc/default/taler-mdb -User=root -Type=simple -Restart=on-failure -ExecStart=/usr/bin/taler-mdb -c /etc/taler-mdb.conf -EOF - - systemctl daemon-reload - - - # Cleaning - echo "All done." - - ;; - - abort-upgrade|abort-remove|abort-deconfigure) - - ;; - - *) - echo "postinst called with unknown argument \`${1}'" >&2 - exit 1 - ;; -esac - -#DEBHELPER# - -exit 0 diff --git a/debian/taler-mdb.service b/debian/taler-mdb.service @@ -0,0 +1,12 @@ +[Unit] +Description=GNU Taler Multi-Drop-Bus application + +[Service] +User=root +Type=simple +Restart=on-failure +ExecStart=/usr/bin/taler-mdb-network-check.sh -c /etc/taler-mdb.conf -f "FIXME-show-message-cmd" /usr/bin/taler-mdb -c /etc/taler-mdb.conf +StandardOutput=inherit +StandardError=inherit +Restart=always +RestartSec=10