Maxim Cournoyer writes: > Hi Pierre, > > Pierre Langlois writes: > >> Hi Guix! >> >> After updating the system, the dovecot service got confused and started >> moving around all mailboxes. I looked up the configuration and noticed >> strange invalid syntax for the location field: >> >> location=#< file: "path/to/config.scm" line: 297 column: 20> >> >> >> Because the # character is interpreted as a comment, dovecot doesn't >> crash and instead moves mailboxes around in weird ways I don't quite >> understand :-/. >> >> This can actually be reproduced locally with the dovecot system test if >> one dumps the following expression to check the configuration: >> >> (format #t "~a\n" (wait-for-file "/etc/dovecot/dovecot.conf" >> marionette >> #:read 'get-string-all)) >> >> >> Giving us the snippets like this in the config: >> >> $ make check-system TESTS="dovecot" VERBOSE=1 >> ... >> namespace inbox { >> type=private >> separator= >> prefix= >> location=#< file: "gnu/tests/mail.scm" line: 297 column: 20> >> inbox=yes >> hidden=no >> list=yes >> subscriptions=yes >> mailbox "Drafts" { >> auto=no >> special_use=\Drafts >> } >> mailbox "Junk" { >> auto=no >> special_use=\Junk >> } >> mailbox "Trash" { >> auto=no >> special_use=\Trash >> } >> mailbox "Sent" { >> auto=no >> special_use=\Sent >> } >> mailbox "Sent Messages" { >> auto=no >> special_use=\Sent >> } >> mailbox "Drafts" { >> auto=no >> special_use=\Drafts >> } >> } > > I did: > > $ ./pre-inst-env guix system build -e '(@@ (gnu tests mail) %dovecot-os)' > /gnu/store/gpl6g2ia84kc41zma7ik9y4p3kik5aiy-system > > Then: > > $ guix gc -R /gnu/store/gpl6g2ia84kc41zma7ik9y4p3kik5aiy-system | grep dovecot.conf > /gnu/store/1ijjsm3sj8v0qj88fhlwqxgdszd6q6h7-dovecot.conf Oh that's a nice way of doing this, better than my hack to print the config, I'll have to remember the `guix gc -R' flag. > > And what I see in this file is now: > > namespace inbox { > type=private > separator= > prefix= > location= > inbox=yes > hidden=no > list=yes > subscriptions=yes > mailbox "Drafts" { > auto=no > special_use=\Drafts > } > mailbox "Junk" { > auto=no > special_use=\Junk > } > mailbox "Trash" { > auto=no > special_use=\Trash > } > mailbox "Sent" { > auto=no > special_use=\Sent > } > mailbox "Sent Messages" { > auto=no > special_use=\Sent > } > mailbox "Drafts" { > auto=no > special_use=\Drafts > } > } > > Notice that location is empty. So that's at least different to your > findings, on latest commit. Can you still reproduce? Yeah I'm afraid I still see the same issue after a `git pull` just now: --8<---------------cut here---------------start------------->8--- ~/code/guix [env]$ ./pre-inst-env guix system build -e '(@@ (gnu tests mail) %dovecot-os)' /gnu/store/ayfvf5s561q955kv8wrkklrvq3ga3qpy-system ~/code/guix [env]$ guix gc -R /gnu/store/ayfvf5s561q955kv8wrkklrvq3ga3qpy-system | grep dovecot\.conf | xargs grep "^location" location=#< file: "gnu/tests/mail.scm" line: 297 column: 20> --8<---------------cut here---------------end--------------->8--- Have you tried to rebuild from scratch, after a `make clean-go'? When first bisecting this, I was working from the git repo and couldn't reproduce the bug. Then it worked by using `guix time-machine' to bisect rather than work from git. So I'm guessing the change being in a macro, there could be residue .go files that need recompiling? Thanks, Pierre