Ludovic Courtès (2017-06-30 11:35 +0200) wrote: > Hello, > > Ricardo Wurmus <rek...@elephly.net> skribis: > >> Christopher Baines <m...@cbaines.net> writes: >> >>> Recently I had problems with the way GUIX_PACKAGE_PATH was working with >>> govuk-guix [1]. Currently, I'm using a separate directory for the >>> GUIX_PACKAGE_PATH that contains symlinks to a subset of the Guile >>> modules necessary for the packages in the repository. >>> >>> I think support (whether intentional or otherwise) for this approach was >>> removed in [2]. >> >> Looks like this was removed in an attempt to improve performance over >> NFS. The “scheme-files” procedure now includes a comment: >> >> ;; XXX: We don't recurse if we find a symlink. >> >> Would it not be better to fix this instead of adding support for special >> syntax in GUIX_PACKAGE_PATH? > > Indeed, apologies for the breakage. > > I think the patch below fixes it. It incurs overhead only when a > symlink is encountered, which is reasonable I think. > > Chris & Alex: could you give it a try and report back?
I confirm that the patch you attached fixes this problem, thanks! I have a (probably not related) question though: in the past, package 'location' contained an *absolute* file name for the packages from GUIX_PACKAGE_PATH. Now these locations are *relative* file names. Is this intended? If so, this is a problem for Emacs-Guix: you see, when you try to open a package location (for example, by pressing an according button in *Guix Package Info* buffer), it is expanded against 'guix-directory' variable. So if you open "gnu/packages/guile.scm" location, it works, but now if it is your location like "my-guix-packages/foo.scm", the wrong (non-existent) file will be opened. Previously it worked, because that location was absolute, like "/home/me/my-guix-packages/foo.scm". I hope it was clear, let me know, if it's not :-) -- Alex