Pierre Langlois writes: > [[PGP Signed Part:Undecided]] > > Pierre Langlois writes: > >> [[PGP Signed Part:Undecided]] >> >> 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: >> >> ~/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> >> >> 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? > > Oh, I just realized the change was reverted with > 44554e7133aa60e1b453436be1e80394189cabd9, then I'm probably the one who > needs to do a `make clean-go' :-). I'm afraid I can still reproduce the issue after a fresh rebuild, I can also reproduce it outside of the git checkout: --8<---------------cut here---------------start------------->8--- $ guix describe Generation 1026 Nov 25 2022 20:11:23 (current) guix 7e0ad0d repository URL: https://git.savannah.gnu.org/git/guix.git branch: master commit: 7e0ad0dd0f2829d6f3776648ba7c88acf9888d7a (... snip ...) $ guix gc -R `guix system build -e '(@@ (gnu tests mail) %dovecot-os)'` | grep dovecot\.conf | xargs head -n 20 listen=*,:: dict { } passdb { driver=pam } userdb { driver=passwd override_fields= } plugin { } namespace inbox { type=private separator= prefix= location=#< file: "gnu/tests/mail.scm" line: 297 column: 20> inbox=yes hidden=no list=yes --8<---------------cut here---------------end--------------->8--- Now I'm confused :-/.