Hello Nigko. I should have been looking for agreement from the start, and now with your statement of the problem, I concur that without the current implementation of `current-source-directory', it is hard not to follow symlinks. But then again, the current current-source-directory already does follow symlinks in nearly all cases, even in configuration files, except apparently when called in weird ways like local-file, maybe because of Guix’ code staging.
It is not consistent, but actually I do not know why `local-file', when calling `absolute-dirname', takes this case of `if'. > Thanks to Attila there is another variant [2] which leaves the > directory structure intact: Documenting this work-around is not enough; we would have to also document the rationale that local-file is weird and inconsistent, because current-source-directory is weird and inconsistent. I believe making local-file usable with any symlinks is better, and changing absolute-dirname used by current-source-directory achieves that. The other alternative is making local-file not use current-source-directory. > ('channel-dir' is a macro instead of a variable, but I don't see any > real benefits in using macro here) Yes, macros are not necessary, because syntax-source, as used by current-source-directory, is not necessary. Why does current-source-directory use syntax-source? Perhaps it works even outside modules. Another reason against the other alternative. Regards, Florian