View Issue Details

IDProjectCategoryView StatusLast Update
0010802Talerdeployment and operationspublic2026-02-10 13:08
Reportervecirex Assigned Tovecirex Resolution deadline
ImplementerReviewer 
Release signed byDeployed by 
VerifierCommunicator 
Data protection authority notification requiredNo  
CSIRT notification requiredNo  
Estimated effort (hours)Actual effort (hours)0 
Fast-trackNo
Work packagenone
PriorityhighSeveritytextReproducibilityalways
Status closedResolutionfixed 
Summary0010802: For TOPS/CHF (test and deployment): ToS missing [workaround could be confirmed to work]
DescriptionTicket 0010711, but for taler.hacktivism.ch and my.taler-ops.ch: I got instructions from fdold how to do this properly.

This should go like this; to /etc/taler-merchant/merchant-overrides.conf add this to the section shown:

[merchant]
TERMS_ETAG = merchant-tos-tops-v0
TERMS_DIR = ${TALER_DATA_HOME}terms/

Then, this:

$ taler-terms-generator -i /usr/share/taler-merchant/terms/merchant-tos-tops-v0.en.rst -o "$(taler-merchant-config -f -s merchant -o terms_dir)"
TagsNo tags attached.

Required notifications

Address or linkRemarkAdded byNotifiedActions

Relationships

related to 0010711 closedsebasjm Taler Merchant Backoffice UI: Terms of service unavailable 
related to 0011015 closedChristian Grothoff Taler taler-terms-generator does not work without full exchange package 
related to 0010970 closedvecirex Taler Link to terms broken in Merchant BackOffice 

Activities

vecirex

2025-12-17 22:41

administrator   ~0027093

Last edited: 2025-12-17 22:43

Meh, installing the taler-exchange as a whole just to get taler-exchange-config seems overkill, esp. in production env:

taler-merchant-httpd@bcead3ae4f5e:/usr/local/bin$ taler-terms-generator -i /usr/share/taler-merchant/terms/merchant-tos-tops-v0.en.rst -o "$(taler-merchant-config -f -s merchant -o terms_dir)"
/usr/bin/taler-terms-generator: line 29: taler-exchange-config: command not found

Must look into this after sleep, to avoid messing up setups now! :)

vecirex

2025-12-17 22:48

administrator   ~0027094

Possible solution could be to get the tool from an installation where taler-exchange gets installed, getting it from there when needed.

vecirex

2025-12-18 19:30

administrator   ~0027104

Last edited: 2025-12-18 19:39

Any objection to this, Florian?

I think the best solution would be to have taler-exchange-config as a separate package, mid-term / later.

For now, I suggest the following:

1. Install taler-exchange in, e.g., a minimal podman instance.
2. Make taler-exchange-config available for the outer or other containerized system only configured to run a taler-merchant, then run your command above to generate the ToS files; if libs are needed, those can of course be installed, but the whole taler-exchange is seriously overkill; also having custom compiles around... well, ehm, not in production perhaps?
3. If ToS change, upgrade the env having the taler-exchange package installed and thus taler-exchange-config available, repeat 2.

I will try this approach for taler.hacktivism.ch first, installing, e.g., taler-exchange to a podman instance, if you think that's fine / you don't oppose / ship another solution which is also good for a production env.

Florian Dold

2025-12-19 12:12

manager   ~0027133

That's going way over board, we just need to fix taler-terms-generator to not invoke taler-exchange-config anymore, it's just used for getting defaults for various switches in the first place.

vecirex

2025-12-20 09:46

administrator   ~0027145

Last edited: 2025-12-20 09:48

It is, and CG went for doing that taler-exchange-config alone (with respective deps) can be installed as a dependency to taler-merchant in next upgrade, so that no further changes are needed.

On my side, I go for installing taler-exchange in a container and generate the ToS there; given I wanted to start taler-exchange testing for running event currencies (as done by Datenspuren 2024/2025) and regional currencies (as event currencies, but (more) permanent), this fits anyways.

CG suggested to copy the generated ToS files to test & prod envs, for now. Will do this.

vecirex

2025-12-20 09:46

administrator   ~0027146

Assign back to me, solution found.

vecirex

2026-02-06 01:48

administrator   ~0027623

Last edited: 2026-02-06 01:54

Tried in the supposed way on TOPS/CHF stage; it fails with the same error as on taler.hacktivism.ch in the past; seemingly exchange config is expected to exist, even if it's about ToS for merchant self-provisioning:

root@betel:/etc/taler-merchant# taler-terms-generator -i /usr/share/taler-merchant/terms/merchant-tos-tops-v0.en.rst -o "$(taler-merchant-config -f -s merchant -o terms_dir)"
2026-02-06T01:00:13.036778+0000 taler-exchange-config-71384 ERROR Configuration fails to specify option `TERMS_DIR' in section `EXCHANGE'!
root@betel:/etc/taler-merchant# su - taler-merchant-httpd -s /bin/bash
su: warning: cannot change directory to /var/lib/taler-merchant: No such file or directory
taler-merchant-httpd@betel:/etc/taler-merchant$ taler-terms-generator -i /usr/share/taler-merchant/terms/merchant-tos-tops-v0.en.rst -o "$(taler-merchant-config -f -s merchant -o terms_dir)"
2026-02-06T01:02:08.482910+0000 taler-exchange-config-71602 ERROR Configuration fails to specify option `TERMS_DIR' in section `EXCHANGE'!
taler-merchant-httpd@betel:/etc/taler-merchant$ taler-terms-generator -i /usr/share/taler-merchant/terms/merchant-tos-tops-v0.en.rst -o "$(taler-merchant-config -f -s merchant -o terms_dir)"^C
taler-merchant-httpd@betel:/etc/taler-merchant$

Changes documented in admin log, day log as well as in mytops-admin-log/.

Using another private container, I could only run this command generating the actual TOPS ToS for merchant self-provisioning when also installing the taler-exchange package next to the taler-merchant package... which we wanted to avoid for production.

I assign to you, Florian: can you please have a look? Thanks!

vecirex

2026-02-10 13:05

administrator   ~0027666

Last edited: 2026-02-10 13:06

Issue with a work-around was addressed in 0011015. Tested on own test installation TOPS/CHF first, not only, but also because mytops-stage was already served.

Following command was run, as suggested:

root@1b0bd36dc346:~# TALER_EXCHANGE_TERMS_DIR=/tmp taler-terms-generator -i /usr/share/taler-merchant/terms/merchant-tos-tops-v0.en.rst -o "$(taler-merchant-config -f -s merchant -o terms_dir)"

Works like this, tried on own installation first; logs w/o warnings now and https://taler.hacktivism.ch/terms showing the terms.

taler-merchant-httpd@1b0bd36dc346:/usr/local/bin$ ./start_merchant.sh
Start taler-merchant components:
Show taler-merchant components running (check for httpd, webhook, kyccheck, depositcheck, exchangekeyupdate and reconciliation):
   2777 pts/0 S 0:00 su -p -s /bin/bash taler-merchant-httpd
   2782 pts/0 R+ 0:00 taler-merchant-httpd --log=info
   2783 pts/0 R+ 0:00 taler-merchant-webhook
   2784 pts/0 R+ 0:00 taler-merchant-kyccheck
   2785 pts/0 R+ 0:00 taler-merchant-wirewatch
   2786 pts/0 R+ 0:00 taler-merchant-depositcheck
   2787 pts/0 R+ 0:00 taler-merchant-exchangekeyupdate
   2788 pts/0 R+ 0:00 taler-merchant-reconciliation
   2790 pts/0 S+ 0:00 grep taler-merchant
taler-merchant-httpd@1b0bd36dc346:/usr/local/bin$ 2026-02-10T12:41:20.487310+0000 taler-merchant-httpd-2782 INFO Starting taler-merchant-httpd
2026-02-10T12:41:20.487983+0000 taler-merchant-httpd-2782 INFO Configuration fails to specify option `DEFAULT_REFUND_DELAY' in section `merchant'!
2026-02-10T12:41:20.488078+0000 taler-merchant-httpd-2782 INFO Configuration fails to specify option `DEFAULT_WIRE_TRANSFER_ROUNDING_INTERVAL' in section `merchant'!
2026-02-10T12:41:20.488163+0000 taler-merchant-httpd-2782 INFO Loading legal information from file `/var/lib/taler-merchant/terms//en/merchant-tos-tops-v0.md'
2026-02-10T12:41:20.488462+0000 taler-merchant-httpd-2782 INFO Loading legal information from file `/var/lib/taler-merchant/terms//en/merchant-tos-tops-v0.pdf'
2026-02-10T12:41:20.489013+0000 taler-merchant-httpd-2782 INFO Loading legal information from file `/var/lib/taler-merchant/terms//en/merchant-tos-tops-v0.html'
2026-02-10T12:41:20.489426+0000 taler-merchant-httpd-2782 INFO Loading legal information from file `/var/lib/taler-merchant/terms//en/merchant-tos-tops-v0.txt'
[...]

The package taler-terms-generator needs be installed, if not already done.

Issue History

Date ModifiedUsernameFieldChange
2025-12-17 22:11vecirexNew Issue
2025-12-17 22:11vecirexStatusnew => assigned
2025-12-17 22:11vecirexAssigned To => vecirex
2025-12-17 22:12vecirexRelationship addedrelated to 0010711
2025-12-17 22:41vecirexNote Added: 0027093
2025-12-17 22:43vecirexNote Edited: 0027093
2025-12-17 22:48vecirexNote Added: 0027094
2025-12-18 19:30vecirexNote Added: 0027104
2025-12-18 19:36vecirexNote Edited: 0027104
2025-12-18 19:36vecirexAssigned Tovecirex => Florian Dold
2025-12-18 19:37vecirexNote Edited: 0027104
2025-12-18 19:39vecirexNote Edited: 0027104
2025-12-19 12:12Florian DoldNote Added: 0027133
2025-12-20 09:46vecirexNote Added: 0027145
2025-12-20 09:46vecirexAssigned ToFlorian Dold => vecirex
2025-12-20 09:46vecirexNote Added: 0027146
2025-12-20 09:48vecirexNote Edited: 0027145
2026-02-06 01:48vecirexNote Added: 0027623
2026-02-06 01:49vecirexAssigned Tovecirex => Florian Dold
2026-02-06 01:49vecirexPriorityurgent => high
2026-02-06 01:54vecirexNote Edited: 0027623
2026-02-10 12:47vecirexRelationship addedrelated to 0011015
2026-02-10 13:05vecirexNote Added: 0027666
2026-02-10 13:06vecirexNote Edited: 0027666
2026-02-10 13:07vecirexAssigned ToFlorian Dold => vecirex
2026-02-10 13:07vecirexStatusassigned => closed
2026-02-10 13:07vecirexResolutionopen => fixed
2026-02-10 13:07vecirexSummaryFor TOPS/CHF (test and deployment): ToS missing => For TOPS/CHF (test and deployment): ToS missing [work could be confirmed to work]
2026-02-10 13:07vecirexSummaryFor TOPS/CHF (test and deployment): ToS missing [work could be confirmed to work] => For TOPS/CHF (test and deployment): ToS missing [workaround could be confirmed to work]
2026-02-10 13:08vecirexRelationship addedrelated to 0010970