View Issue Details

IDProjectCategoryView StatusLast Update
0010956Talermerchant backendpublic2026-03-20 23:55
Reportervecirex Assigned ToFlorian Dold 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
PriorityurgentSeverityblockReproducibilityalways
Status closedResolutionfixed 
Product Versiongit (master) 
Target Version1.5Fixed in Version1.5 
Summary0010956: taler-merchant expects /var/lib/taler-merchant/ to exist
DescriptionThis folder is non-existent, only /var/lib/taler-exchange/ (by mistake, I guess; separate ticket exists: 0010588) gets created upon installation of the taler-merchant package.

Using psql with the taler-merchant-httpd user, following can happen:

taler-merchant=> quit
could not save history to file "/var/lib/taler-merchant/.psql_history": No such file or directory

Solution would be like:

mkdir -p /var/lib/taler-merchant/
touch /var/lib/taler-merchant/.psql_history
chown -R taler-merchant-httpd: /var/lib/taler-merchant/.psql_history
TagsNo tags attached.

Required notifications

Address or linkRemarkAdded byNotifiedActions

Relationships

related to 0010588 closedChristian Grothoff After installing taler-merchant (Deb/trixie-testing): /var/lib/taler-merchant missing, instead /var/lib/taler-exchange is there 
child of 0011081 closedChristian Grothoff typst helper should not break sandbox, use local packages and/or symlinks instead 

Activities

vecirex

2026-02-01 10:11

administrator   ~0027521

fix UNIX commands suggested

Christian Grothoff

2026-02-01 17:17

manager   ~0027534

I'm not sure what the delta to 0010588 is here, but yes, we should probably modify the Debian package scripts to create the /var/lib/taler-merchant folder -- possibly when we create the UID/group (instead of with the above commands).

vecirex

2026-02-13 13:00

administrator   ~0027703

Observation: when using taler-terms-generator to produce the /terms/ location, /var/lib/taler-merchant gets created.

Contents so-then:

[snip]
### root@lifeline:~# ls -l /var/lib/taler-merchant/
total 4
drwxr-xr-x 3 root root 4096 Feb 10 13:57 terms
### root@lifeline:~# ls -lR /var/lib/taler-merchant/
/var/lib/taler-merchant/:
total 4
drwxr-xr-x 3 root root 4096 Feb 10 13:57 terms

/var/lib/taler-merchant/terms:
total 4
drwxr-xr-x 2 root root 4096 Feb 10 13:57 en

/var/lib/taler-merchant/terms/en:
total 48
-rw-r--r-- 1 root root 7710 Feb 10 13:57 merchant-tos-tops-v0.html
-rw-r--r-- 1 root root 4401 Feb 10 13:57 merchant-tos-tops-v0.md
-rw-r--r-- 1 root root 22504 Feb 10 13:57 merchant-tos-tops-v0.pdf
-rw-r--r-- 1 root root 4459 Feb 10 13:57 merchant-tos-tops-v0.txt
### root@lifeline:~#
[/snip]

vecirex

2026-02-15 19:21

administrator   ~0027741

Last edited: 2026-02-15 19:24

We need to package taler-merchant with

mkdir -p /var/lib/taler-merchant/.cache # to create PDFs in reporting

The folder is also needed at least in two other cases:
- It gets auto-created when you create the /terms/ (ToS), but if run as root with the wrong permissions, then things being root:.
- psql tries to save history to this folder, which happens bc folder is declared as the $HOME to taler-merchant-httpd (default $USER for the processes of taler-merchant) without login shell.

vecirex

2026-02-15 19:22

administrator   ~0027742

Last edited: 2026-02-15 19:31

The folder should be created upon installation and upgrading (prior versions don't create the folder), in case that's differentiated.

Close also 0010588, by removing the creation of /var/lib/taler-exchange/ -- I assume this to be a copy-paste issue taler-exchange -> taler-merchant, but didn't check. The folder should not to be created if only taler-merchant is installed.

Florian Dold

2026-02-16 11:15

manager   ~0027750

The missing directories are now created by the Debian packages.

Issue History

Date ModifiedUsernameFieldChange
2026-01-31 19:13vecirexNew Issue
2026-01-31 19:16vecirexDescription Updated
2026-01-31 19:17vecirexRelationship addedrelated to 0010588
2026-02-01 10:11vecirexDescription Updated
2026-02-01 10:11vecirexNote Added: 0027521
2026-02-01 17:15Christian GrothoffAssigned To => vecirex
2026-02-01 17:15Christian GrothoffStatusnew => assigned
2026-02-01 17:15Christian GrothoffProduct Version => git (master)
2026-02-01 17:15Christian GrothoffTarget Version => 1.5
2026-02-01 17:17Christian GrothoffNote Added: 0027534
2026-02-05 19:12vecirexStatusassigned => acknowledged
2026-02-13 13:00vecirexNote Added: 0027703
2026-02-13 13:01vecirexStatusacknowledged => feedback
2026-02-13 13:02vecirexPrioritynormal => low
2026-02-15 15:47vecirexRelationship addedrelated to 0011081
2026-02-15 15:47vecirexRelationship replacedchild of 0011081
2026-02-15 19:21vecirexPrioritylow => urgent
2026-02-15 19:21vecirexSeverityminor => block
2026-02-15 19:21vecirexStatusfeedback => assigned
2026-02-15 19:21vecirexNote Added: 0027741
2026-02-15 19:22vecirexNote Added: 0027742
2026-02-15 19:23vecirexAssigned Tovecirex => Florian Dold
2026-02-15 19:24vecirexNote Edited: 0027741
2026-02-15 19:31vecirexNote Edited: 0027742
2026-02-16 11:15Florian DoldStatusassigned => informing
2026-02-16 11:15Florian DoldResolutionopen => fixed
2026-02-16 11:15Florian DoldNote Added: 0027750
2026-03-10 12:36Christian GrothoffFixed in Version => 1.5
2026-03-20 23:55Christian GrothoffStatusinforming => closed