commit 083965a0d97d3575c663e08d44922d5a52aea22d
parent e3c4651871b31c363f6b3f1d448f13848843463f
Author: Martin Schanzenbach <schanzen@gnunet.org>
Date: Sat, 21 Mar 2026 10:01:14 +0100
fix name of config file and makefile
Diffstat:
9 files changed, 395 insertions(+), 65 deletions(-)
diff --git a/Makefile.in b/Makefile.in
@@ -24,20 +24,19 @@ install: server
chmod +x ./contrib/taler-mailbox-dbconfig
install ./contrib/taler-mailbox-dbconfig ${DESTDIR}${bindir}
cp -r ./sql ${DESTDIR}${TALER_MAILBOX_HOME}/
- cp mailbox.conf.example ${DESTDIR}${TALER_MAILBOX_HOME}
+ cp taler-mailbox.conf.example ${DESTDIR}${TALER_MAILBOX_HOME}
-mkdir -p ${DESTDIR}${mandir}/man1
-mkdir -p ${DESTDIR}${mandir}/man5
- cp doc/man/taler-mailbox.1 ${DESTDIR}${mandir}/man1/
cp doc/man/taler-mailbox-config.1 ${DESTDIR}${mandir}/man1/
cp doc/man/taler-mailbox-httpd.1 ${DESTDIR}${mandir}/man1/
cp doc/man/taler-mailbox-dbinit.1 ${DESTDIR}${mandir}/man1/
- cp doc/man/mailbox.conf.5 ${DESTDIR}${mandir}/man5/
+ cp doc/man/taler-mailbox.conf.5 ${DESTDIR}${mandir}/man5/
uninstall:
-$(RM) ${DESTDIR}${bindir}/taler-mailbox*
-${RM} -r ${DESTDIR}${TALER_MAILBOX_HOME}
-${RM} -r ${DESTDIR}${mandir}/man1/taler-mailbox*
- -${RM} -r ${DESTDIR}${mandir}/man5/mailbox*
+ -${RM} -r ${DESTDIR}${mandir}/man5/taler-mailbox*
check:
diff --git a/cmd/mailbox-config/main.go b/cmd/mailbox-config/main.go
@@ -105,7 +105,7 @@ func main() {
fmt.Printf("%s %s", filepath.Base(fullName), version)
return
}
- cfgfile := path.Join(mailboxconfdir, "mailbox.conf")
+ cfgfile := path.Join(mailboxconfdir, "taler-mailbox.conf")
if len(*cfgFlag) != 0 {
cfg, err = ini.Load(*cfgFlag)
if err != nil {
diff --git a/cmd/mailbox-server/main.go b/cmd/mailbox-server/main.go
@@ -80,7 +80,7 @@ func main() {
fmt.Printf("%s %s", filepath.Base(fullName), version)
return
}
- cfgfile := path.Join(mailboxconfdir, "mailbox.conf")
+ cfgfile := path.Join(mailboxconfdir, "taler-mailbox.conf")
if len(*cfgFlag) != 0 {
cfgfile = *cfgFlag
}
diff --git a/doc/man/taler-mailbox-config.1 b/doc/man/taler-mailbox-config.1
@@ -0,0 +1,84 @@
+.\" Man page generated from reStructuredText.
+.
+.
+.nr rst2man-indent-level 0
+.
+.de1 rstReportMargin
+\\$1 \\n[an-margin]
+level \\n[rst2man-indent-level]
+level margin: \\n[rst2man-indent\\n[rst2man-indent-level]]
+-
+\\n[rst2man-indent0]
+\\n[rst2man-indent1]
+\\n[rst2man-indent2]
+..
+.de1 INDENT
+.\" .rstReportMargin pre:
+. RS \\$1
+. nr rst2man-indent\\n[rst2man-indent-level] \\n[an-margin]
+. nr rst2man-indent-level +1
+.\" .rstReportMargin post:
+..
+.de UNINDENT
+. RE
+.\" indent \\n[an-margin]
+.\" old: \\n[rst2man-indent\\n[rst2man-indent-level]]
+.nr rst2man-indent-level -1
+.\" new: \\n[rst2man-indent\\n[rst2man-indent-level]]
+.in \\n[rst2man-indent\\n[rst2man-indent-level]]u
+..
+.TH "TALER-MAILBOX-CONFIG" "1" "Mar 21, 2026" "1.0" "GNU Taler"
+.SH NAME
+taler-mailbox-config \- manipulate Taler mailbox configuration files
+.SH SYNOPSIS
+.sp
+\fBtaler\-mailbox\-config\fP
+[\fB\-c\fP\ \fIfilename\fP\ |\ \fB\-\-config=\fP\fIfilename\fP]
+[\fB\-h\fP\ |\ \fB\-\-help\fP]
+[\fB\-o\fP\ \fIoption\fP\ |\ \fB\-\-option=\fP\fIoption\fP]
+[\fB\-O\fP\ |\ \fB\-\-only\-value\fP]
+[\fB\-S\fP\ |\ \fB\-\-list\-sections\fP]
+[\fB\-s\fP\ \fIsection\fP\ |\ \fB\-\-section=\fP\fIsection\fP]
+[\fB\-v\fP\ |\ \fB\-\-version\fP]
+.SH DESCRIPTION
+.sp
+\fBtaler\-mailbox\-config\fP can be used to read or modify taler\-mailbox configuration files.
+.INDENT 0.0
+.TP
+\fB\-c\fP \fIFILENAME\fP | \fB\-\-config=\fP\fIFILENAME\fP
+Use the configuration file \fIFILENAME\fP\&.
+.TP
+\fB\-h\fP | \fB\-\-help\fP
+Print short help on options.
+.TP
+\fB\-o\fP \fIOPTION\fP | \fB\-\-option=\fP\fIOPTION\fP
+Which configuration option should be accessed or edited. Required to set a
+value. If not given, all values of a given section will be printed in the
+format \(dqOPTION = VALUE\(dq.
+.TP
+\fB\-O\fP | \fB\-\-only\-value\fP
+Print only the value(s), not the key(s).
+.TP
+\fB\-S\fP | \fB\-\-list\-sections\fP
+List available configuration sections for use with \fB\-\-section\fP\&.
+.TP
+\fB\-s\fP \fISECTION\fP | \fB\-\-section=\fP\fISECTION\fP
+Which configuration section should be accessed or edited.
+Required option.
+.TP
+\fB\-v\fP | \fB\-\-version\fP
+Print GNU Taler version number.
+.UNINDENT
+.SH SEE ALSO
+.sp
+taler\-mailbox\-dbinit(1), taler\-mailbox\-httpd(1), taler\-mailbox.conf(5).
+.SH BUGS
+.sp
+Report bugs by using \X'tty: link https://bugs.taler.net'\fI\%https://bugs.taler.net\fP\X'tty: link' or by sending electronic
+mail to <\X'tty: link mailto:taler@gnu.org'\fI\%taler@gnu.org\fP\X'tty: link'>.
+.SH AUTHOR
+GNU Taler contributors
+.SH COPYRIGHT
+2014-2025 Taler Systems SA (GPLv3+ or GFDL 1.3+)
+.\" Generated by docutils manpage writer.
+.
diff --git a/doc/man/taler-mailbox-dbinit.1 b/doc/man/taler-mailbox-dbinit.1
@@ -0,0 +1,68 @@
+.\" Man page generated from reStructuredText.
+.
+.
+.nr rst2man-indent-level 0
+.
+.de1 rstReportMargin
+\\$1 \\n[an-margin]
+level \\n[rst2man-indent-level]
+level margin: \\n[rst2man-indent\\n[rst2man-indent-level]]
+-
+\\n[rst2man-indent0]
+\\n[rst2man-indent1]
+\\n[rst2man-indent2]
+..
+.de1 INDENT
+.\" .rstReportMargin pre:
+. RS \\$1
+. nr rst2man-indent\\n[rst2man-indent-level] \\n[an-margin]
+. nr rst2man-indent-level +1
+.\" .rstReportMargin post:
+..
+.de UNINDENT
+. RE
+.\" indent \\n[an-margin]
+.\" old: \\n[rst2man-indent\\n[rst2man-indent-level]]
+.nr rst2man-indent-level -1
+.\" new: \\n[rst2man-indent\\n[rst2man-indent-level]]
+.in \\n[rst2man-indent\\n[rst2man-indent-level]]u
+..
+.TH "TALER-MAILBOX-DBINIT" "1" "Mar 21, 2026" "1.0" "GNU Taler"
+.SH NAME
+taler-mailbox-dbinit \- initialize the Taler mailbox database
+.SH SYNOPSIS
+.sp
+\fBtaler\-mailbox\-dbinit\fP
+[\fB\-c\fP\ \fIFILENAME\fP\ |\ \fB\-\-config=\fP\fIFILENAME\fP]
+[\fB\-h\fP\ |\ \fB\-\-help\fP]
+\fB\-v\fP\ |\ \fB\-\-version\fP]
+.SH DESCRIPTION
+.sp
+\fBtaler\-mailbox\-dbinit\fP is a command\-line tool to initialize the taler\-mailbox database.
+.sp
+Its options are as follows:
+.INDENT 0.0
+.TP
+\fB\-c\fP \fIFILENAME\fP | \fB\-\-config=\fP\fIFILENAME\fP
+Use the configuration and other resources for the taler\-mailbox commands
+to operate from \fIFILENAME\fP\&.
+.TP
+\fB\-h\fP | \fB\-\-help\fP
+Print short help on options.
+.TP
+\fB\-v\fP | \fB–version\fP
+Print version information.
+.UNINDENT
+.SH SEE ALSO
+.sp
+taler\-mailbox\-config(1), taler\-mailbox\-httpd(1), taler\-mailbox.conf(5).
+.SH BUGS
+.sp
+Report bugs by using \X'tty: link https://bugs.taler.net'\fI\%https://bugs.taler.net\fP\X'tty: link' or by sending electronic
+mail to <\X'tty: link mailto:taler@gnu.org'\fI\%taler@gnu.org\fP\X'tty: link'>.
+.SH AUTHOR
+GNU Taler contributors
+.SH COPYRIGHT
+2014-2025 Taler Systems SA (GPLv3+ or GFDL 1.3+)
+.\" Generated by docutils manpage writer.
+.
diff --git a/doc/man/taler-mailbox-httpd.1 b/doc/man/taler-mailbox-httpd.1
@@ -0,0 +1,72 @@
+.\" Man page generated from reStructuredText.
+.
+.
+.nr rst2man-indent-level 0
+.
+.de1 rstReportMargin
+\\$1 \\n[an-margin]
+level \\n[rst2man-indent-level]
+level margin: \\n[rst2man-indent\\n[rst2man-indent-level]]
+-
+\\n[rst2man-indent0]
+\\n[rst2man-indent1]
+\\n[rst2man-indent2]
+..
+.de1 INDENT
+.\" .rstReportMargin pre:
+. RS \\$1
+. nr rst2man-indent\\n[rst2man-indent-level] \\n[an-margin]
+. nr rst2man-indent-level +1
+.\" .rstReportMargin post:
+..
+.de UNINDENT
+. RE
+.\" indent \\n[an-margin]
+.\" old: \\n[rst2man-indent\\n[rst2man-indent-level]]
+.nr rst2man-indent-level -1
+.\" new: \\n[rst2man-indent\\n[rst2man-indent-level]]
+.in \\n[rst2man-indent\\n[rst2man-indent-level]]u
+..
+.TH "TALER-MAILBOX-HTTPD" "1" "Mar 21, 2026" "1.0" "GNU Taler"
+.SH NAME
+taler-mailbox-httpd \- provide the Taler mailbox HTTP interface
+.SH SYNOPSIS
+.sp
+\fBtaler\-mailbox\-httpd\fP
+[\fB\-c\fP\ \fIFILENAME\fP\ |\ \fB\-\-config=\fP\fIFILENAME\fP]
+[\fB\-h\fP\ |\ \fB\-\-help\fP]
+[\fB\-L\fP\ \fILOGLEVEL\fP\ |\ \fB\-\-log=\fP\fILOGLEVEL\fP]
+[\fB\-v\fP\ |\ \fB\-\-version\fP]
+.SH DESCRIPTION
+.sp
+\fBtaler\-mailbox\-httpd\fP is a command\-line tool to provide the taler\-mailbox HTTP interface.
+.sp
+Its options are as follows:
+.INDENT 0.0
+.TP
+\fB\-c\fP \fIFILENAME\fP | \fB\-\-config=\fP\fIFILENAME\fP
+Use the configuration and other resources for the taler\-mailbox commands
+to operate from \fIFILENAME\fP\&.
+.TP
+\fB\-h\fP | \fB\-\-help\fP
+Print short help on options.
+.TP
+\fB\-L\fP \fILOGLEVEL\fP | \fB\-\-log=\fP\fILOGLEVEL\fP
+Configure logging to use \fILOGLEVEL\fP\&.
+.TP
+\fB\-v\fP | \fB–version\fP
+Print version information.
+.UNINDENT
+.SH SEE ALSO
+.sp
+taler\-mailbox\-config(1), taler\-mailbox\-dbinit(1), taler\-mailbox.conf(5).
+.SH BUGS
+.sp
+Report bugs by using \X'tty: link https://bugs.taler.net'\fI\%https://bugs.taler.net\fP\X'tty: link' or by sending electronic
+mail to <\X'tty: link mailto:taler@gnu.org'\fI\%taler@gnu.org\fP\X'tty: link'>.
+.SH AUTHOR
+GNU Taler contributors
+.SH COPYRIGHT
+2014-2025 Taler Systems SA (GPLv3+ or GFDL 1.3+)
+.\" Generated by docutils manpage writer.
+.
diff --git a/doc/man/taler-mailbox.1 b/doc/man/taler-mailbox.1
@@ -1,59 +0,0 @@
-.\" This file is part of GNU Taler.
-.\" Copyright (C) 2025 GNU Taler
-.\"
-.\" Permission is granted to copy, distribute and/or modify this document
-.\" under the terms of the GNU Free Documentation License, Version 1.3 or
-.\" any later version published by the Free Software Foundation; with no
-.\" Invariant Sections, no Front-Cover Texts, and no Back-Cover Texts. A
-.\" copy of the license is included in the file
-.\" FDL-1.3.
-.\"
-.\" A copy of the license is also available from the Free Software
-.\" Foundation Web site at http://www.gnu.org/licenses/fdl.html}.
-.\"
-.\" Alternately, this document is also available under the General
-.\" Public License, version 3 or later, as published by the Free Software
-.\" Foundation. A copy of the license is included in the file
-.\" GPL3.
-.\"
-.\" A copy of the license is also available from the Free Software
-.\" Foundation Web site at http://www.gnu.org/licenses/gpl.html
-.\"
-.\" SPDX-License-Identifier: GPL3.0-or-later OR FDL1.3-or-later
-.\"
-.Dd April 26, 2025
-.Dt TALER-MAILBOX 1
-.Os
-.Sh NAME
-.Nm taler-mailbox
-.Nd The GNU Taler Mailbox Service
-.Sh SYNOPSIS
-.Nm
-.Op Fl c Ar FILENAME | Fl -config= Ns Ar FILENAME
-.Op Fl h | -help
-.Op Fl L Ar LOGLEVEL | Fl -loglevel= Ns Ar LOGLEVEL
-.Op Fl v | -version
-.Sh DESCRIPTION
-.Nm
-is used to send and receiver payment request messages for P2P payments.
-.Bl -tag -width indent
-.It Fl c Ar FILENAME | Fl -config= Ns Ar FILENAME
-Use the configuration file FILENAME.
-.It Fl h | -help
-Print short help on options.
-.It Fl L Ar LOGLEVEL | Fl -loglevel= Ns Ar LOGLEVEL
-Use LOGLEVEL for logging.
-Valid values are DEBUG, INFO, WARNING and ERROR.
-.It Fl v | -version
-Print version number.
-.El
-.Sh DIAGNOSTICS
-.Nm
-will return 0 on success.
-.\".Sh HISTORY
-.\".Sh AUTHORS
-.Sh BUGS
-Report bugs by using
-.Lk https://bugs.gnunet.org
-or by sending electronic mail to
-.Aq Mt gnunet-developers@gnu.org .
diff --git a/doc/man/taler-mailbox.conf.5 b/doc/man/taler-mailbox.conf.5
@@ -0,0 +1,166 @@
+.\" Man page generated from reStructuredText.
+.
+.
+.nr rst2man-indent-level 0
+.
+.de1 rstReportMargin
+\\$1 \\n[an-margin]
+level \\n[rst2man-indent-level]
+level margin: \\n[rst2man-indent\\n[rst2man-indent-level]]
+-
+\\n[rst2man-indent0]
+\\n[rst2man-indent1]
+\\n[rst2man-indent2]
+..
+.de1 INDENT
+.\" .rstReportMargin pre:
+. RS \\$1
+. nr rst2man-indent\\n[rst2man-indent-level] \\n[an-margin]
+. nr rst2man-indent-level +1
+.\" .rstReportMargin post:
+..
+.de UNINDENT
+. RE
+.\" indent \\n[an-margin]
+.\" old: \\n[rst2man-indent\\n[rst2man-indent-level]]
+.nr rst2man-indent-level -1
+.\" new: \\n[rst2man-indent\\n[rst2man-indent-level]]
+.in \\n[rst2man-indent\\n[rst2man-indent-level]]u
+..
+.TH "TALER-MAILBOX.CONF" "5" "Mar 21, 2026" "1.0" "GNU Taler"
+.SH NAME
+taler-mailbox.conf \- Taler mailbox configuration file
+.SH DESCRIPTION
+.sp
+The configuration file is line\-oriented. Blank lines and whitespace at the
+beginning and end of a line are ignored. Comments start with \fB#\fP or \fB%\fP
+in the first column (after any beginning\-of\-line whitespace) and go to the end
+of the line.
+.sp
+The file is split into sections. Every section begins with \fB[SECTIONNAME]\fP
+and contains a number of options of the form \fBOPTION=VALUE\fP\&. There may be
+whitespace around the \fB=\fP (equal sign). Section names and options are
+\fIcase\-insensitive\fP\&.
+.sp
+The values, however, are \fIcase\-sensitive\fP\&. In particular, boolean values are
+one of \fBYES\fP or \fBNO\fP\&. Values can include whitespace by surrounding the
+entire value with \fB\(dq\fP (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.
+.sp
+Values that represent a time duration are represented as a series
+of one or more \fBNUMBER UNIT\fP pairs, e.g. \fB60 s\fP, \fB4 weeks 1 day\fP,
+\fB5 years 2 minutes\fP\&.
+.sp
+Values that represent an amount are in the usual amount syntax:
+\fBCURRENCY:VALUE.FRACTION\fP, e.g. \fBEUR:1.50\fP\&.
+The \fBFRACTION\fP portion may extend up to 8 places.
+.sp
+Values that represent filenames can begin with a \fB/bin/sh\fP\-like variable
+reference. This can be simple, such as \fB$TMPDIR/foo\fP, or complex, such as
+\fB${TMPDIR:\-${TMP:\-/tmp}}/foo\fP\&. The variables are expanded either using
+key\-values from the \fB[PATHS]\fP section (see below) or from the environment
+(\fBgetenv()\fP). The values from \fB[PATHS]\fP take precedence over those from
+the environment. If the variable name is found in neither \fB[PATHS]\fP nor the
+environment, a warning is printed and the value is left unchanged. Variables (including those from the environment) are expanded recursively, so if \fBFOO=$BAR\fP and \fBBAR=buzz\fP then the result is \fBFOO=buzz\fP\&. Recursion is bounded to at most 128 levels to avoid undefined behavior for mutually recursive expansions like if \fBBAR=$FOO\fP in the example above.
+.sp
+The \fB[PATHS]\fP section is special in that it contains paths that can be
+referenced using \fB$\fP in other configuration values that specify
+\fIfilenames\fP\&. Note that configuration options that are not specifically
+retrieved by the application as \fIfilenames\fP will not see “$”\-expressions
+expanded. To expand \fB$\fP\-expressions when using \fBtaler\-config\fP, you must pass
+the \fB\-f\fP command\-line option.
+.sp
+The system automatically pre\-populates the \fB[PATHS]\fP 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 \X'tty: link https://www.gnu.org/prep/standards/html_node/Directory-Variables.html'\fI\%GNU autoconf\fP\X'tty: link'\&. The
+values are usually dependent on an \fBINSTALL_PREFIX\fP which is determined by
+the \fB\-\-prefix\fP option given to configure. The canonical values are:
+.INDENT 0.0
+.IP \(bu 2
+LIBEXECDIR = $INSTALL_PREFIX/taler/libexec/
+.IP \(bu 2
+DOCDIR = $INSTALL_PREFIX/share/doc/taler/
+.IP \(bu 2
+ICONDIR = $INSTALL_PREFIX/share/icons/
+.IP \(bu 2
+LOCALEDIR = $INSTALL_PREFIX/share/locale/
+.IP \(bu 2
+PREFIX = $INSTALL_PREFIX/
+.IP \(bu 2
+BINDIR = $INSTALL_PREFIX/bin/
+.IP \(bu 2
+LIBDIR = $INSTALL_PREFIX/lib/taler/
+.IP \(bu 2
+DATADIR = $INSTALL_PREFIX/share/taler/
+.UNINDENT
+.sp
+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.
+.sp
+Files containing default values for many of the options described below
+are installed under \fB$PREFIX/share/taler\-mailbox/config.d/\fP\&.
+The configuration file given with \fB\-c\fP to taler\-mailbox binaries
+overrides these defaults.
+.sp
+A configuration file may include another, by using the \fB@INLINE@\fP directive,
+for example, in \fBmain.conf\fP, you could write \fB@INLINE@ sub.conf\fP to
+include the entirety of \fBsub.conf\fP at that point in \fBmain.conf\fP\&.
+.sp
+Be extra careful when using \fBtaler\-mailbox\-config \-V VALUE\fP to change configuration
+values: it will destroy all uses of \fB@INLINE@\fP and furthermore remove all
+comments from the configuration file!
+.SS GLOBAL OPTIONS
+.sp
+The following options are from the “[mailbox]” section.
+.INDENT 0.0
+.TP
+.B BASE_URL
+The base URL of the service. If your service is proxied, the external base URL this service is availiable at.
+Default: \fBhttps://example.com\fP
+.TP
+.B MAX_BODY_BYTES
+Number of bytes of the challenge.
+Default: \fB256\fP
+.TP
+.B MESSAGE_RESPONSE_LIMIT
+Maximum number of messages returned in a single response.
+Default: \fB50\fP
+.TP
+.B MONTHLY_FEE
+Monthly fee of this service.
+Default: \fBKUDOS:0\fP
+.TP
+.B REGISTRATION_UPDATE_FEE
+Registration modification fee.
+Default: \fBKUDOS:0\fP
+.TP
+.B MESSAGE_FEE
+Cost for sending a message to a mailbox.
+Default: \fBKUDOS:0\fP
+.TP
+.B FREE_MESSAGE_QUOTA
+Number of messages that can be sent for free
+Default: \fB0\fP
+.TP
+.B PENDING_REGISTRATION_EXPIRATION
+Lifetime of a pending (unpaid) registration until it is purged from the database.
+Default: \fB24h\fP
+.UNINDENT
+.SH SEE ALSO
+.sp
+taler\-mailbox\-dbinit(1), taler\-mailbox\-httpd(1), taler\-mailbox\-config(1).
+.SH BUGS
+.sp
+Report bugs by using \X'tty: link https://bugs.taler.net/'\fI\%https://bugs.taler.net/\fP\X'tty: link' or by sending electronic
+mail to <\X'tty: link mailto:taler@gnu.org'\fI\%taler@gnu.org\fP\X'tty: link'>.
+.SH AUTHOR
+GNU Taler contributors
+.SH COPYRIGHT
+2014-2025 Taler Systems SA (GPLv3+ or GFDL 1.3+)
+.\" Generated by docutils manpage writer.
+.
diff --git a/mailbox.conf.example b/taler-mailbox.conf.example