16.62. taler-mdb.conf(5)¶
16.62.1. Name¶
taler-mdb.conf - Taler-mdb configuration file
16.62.2. Description¶
The configuration file is line-oriented. Blank lines and whitespace at the
beginning and end of a line are ignored. Comments start with #
or %
in the first column (after any beginning-of-line whitespace) and go to the end
of the line.
The file is split into sections. Every section begins with [SECTIONNAME]
and contains a number of options of the form OPTION=VALUE
. There may be
whitespace around the =
(equal sign). Section names and options are
case-insensitive.
The values, however, are case-sensitive. In particular, boolean values are
one of YES
or NO
. Values can include whitespace by surrounding the
entire value with "
(double quote). Note, however, that there are no
escape characters in such strings; all characters between the double quotes
(including other double quotes) are taken verbatim.
Values that represent a time duration are represented as a series
of one or more NUMBER UNIT
pairs, e.g. 60 s
, 4 weeks 1 day
,
5 years 2 minutes
.
Values that represent an amount are in the usual amount syntax:
CURRENCY:VALUE.FRACTION
, e.g. EUR:1.50
.
The FRACTION
portion may extend up to 8 places.
Values that represent filenames can begin with a /bin/sh
-like variable
reference. This can be simple, such as $TMPDIR/foo
, or complex, such as
${TMPDIR:-${TMP:-/tmp}}/foo
. The variables are expanded either using
key-values from the [PATHS]
section (see below) or from the environment
(getenv()
). The values from [PATHS]
take precedence over those from
the environment. If the variable name is found in neither [PATHS]
nor the
environment, a warning is printed and the value is left unchanged. Variables (including those from the environment) are expanded recursively, so if FOO=$BAR
and BAR=buzz
then the result is FOO=buzz
. Recursion is bounded to at most 128 levels to avoid undefined behavior for mutually recursive expansions like if BAR=$FOO
in the example above.
The [PATHS]
section is special in that it contains paths that can be
referenced using $
in other configuration values that specify
filenames. Note that configuration options that are not specifically
retrieved by the application as filenames will not see “$”-expressions
expanded. To expand $
-expressions when using taler-config
, you must pass
the -f
command-line option.
The system automatically pre-populates the [PATHS]
section with a few values
at run-time (in addition to the values that are in the actual configuration
file and automatically overwriting those values if they are present).
These automatically generated values refer to installation properties
from GNU autoconf. The
values are usually dependent on an INSTALL_PREFIX
which is determined by
the --prefix
option given to configure. The canonical values are:
LIBEXECDIR = $INSTALL_PREFIX/taler/libexec/
DOCDIR = $INSTALL_PREFIX/share/doc/taler/
ICONDIR = $INSTALL_PREFIX/share/icons/
LOCALEDIR = $INSTALL_PREFIX/share/locale/
PREFIX = $INSTALL_PREFIX/
BINDIR = $INSTALL_PREFIX/bin/
LIBDIR = $INSTALL_PREFIX/lib/taler/
DATADIR = $INSTALL_PREFIX/share/taler/
Note that on some platforms, the given paths may differ depending on how the system was compiled or installed, the above are just the canonical locations of the various resources. These automatically generated values are never written to disk.
Files containing default values for many of the options described below
are installed under $TALER_MDB_PREFIX/share/taler-exchange/config.d/
.
The configuration file given with -c to Taler binaries
overrides these defaults.
A configuration file may include another, by using the @INLINE@
directive,
for example, in main.conf
, you could write @INLINE@ sub.conf
to
include the entirety of sub.conf
at that point in main.conf
.
16.62.2.1. Taler-mdb Options¶
Taler-mdb is a component to run GNU Taler as a payment system on vending machines using the multi-drop bus protocol. These options are thus not useful for most users. Note that right now, the cancel button is hard-coded to be using GPIO pin 23.
- ADVERTISEMENT_COMMAND
Program to run while not vending, possibly useful to show advertisements on the screen (optional).
- ESSID
ESSID to advertise to wallets for use as an open WiFi to make payments (optional).
- FULFILLMENT_MSG
Message shown to users by their wallets upon successful payment. If “${PRODUCT_DESCRIPTION}” appears in the message, it will be replaced with the description of the product that was sold.
- BACKEND_BASE_URL
Base URL (possibly including instance) for the Taler merchant backend used to process payments.
- BACKEND_AUTHORIZATION
Full HTTP “Authorization” header (usually with a Bearer token) to be send to the merchant backend for authorization of requests. Mandatory.
- FRAMEBUFFER_BACKLIGHT
Name of the file used to control brightness of the display. Optional. Defaults to “/sys/class/backlight/soc:backlight/brightness” if not given.
- FRAMEBUFFER_DEVICE
Name of the framebuffer device to use. Defaults to “/dev/fb1” if not given.
- UART_DEVICE
Name of the UART device to use. Defaults to “/dev/ttyAMA0” if not given.
- FAIL_COMMAND
Command to run by taler-mdb to display a failure to the user. If not given, errors will not be properly shown. Should usually be set to “taler-mdb-show.sh”.
- FAIL_HELPER
Command used by taler-mdb-network-check.sh to run to display a failure to the user. If not given, errors will not be properly shown. Should usually be set to “taler-mdb-show.sh”.
Each products being sold must be configured in a section where the name starts with “product-“. In these sections, the options that must be provided are:
- NUMBER
Number identifying the slot in the vending machine that corresponds to this product.
- INSTANCE
Instance to use for the payment. Optional. If not given, the BACKEND_BASE_URL from “[taler-mdb]” will be used.
- BACKEND_AUTHORIZATION
Full HTTP “Authorization” header (usually with a Bearer token) to be send to the merchant backend for authorization of requests. Optional, will use global BACKEND_AUTHORIZATION setting from “[taler-mdb]” if missing.
- DESCRIPTION
Human-readable description of the product. Use “empty” if the product is known to be sold out (only effective if selling out is enabled via command-line).
- PRICE
Actual price of the product, as a Taler amount (“$CURRENCY:$VALUE.$FRACTION”).
- KEY
Key used to select the product from the console during testing. Optional.
- THUMBNAIL
Name of a filename with a preview image of the product to be given to the wallet. Optional. Only “.png”, “.jpg”, “.jpeg” and “.svg” are supported at this time.
16.62.3. SEE ALSO¶
taler-mdb(1), taler-mdb-qr-show(1), taler-mdb-display(1)
16.62.4. BUGS¶
Report bugs by using https://bugs.taler.net/ or by sending electronic mail to <taler@gnu.org>.