The 'set-paths' phase in (guix build gnu-build-system) currently includes 'source' in the set of candidates for inclusion in the search-path variables.
First of all, I think it's undesirable to include subdirectories of the source directory in these search paths. However, if you think it's desirable, there's another problem: it's fragile. It depends on: (1) whether the source is a tarball or an unpacked checkout, and (2) whether the subdirectories specified in the search-paths (e.g. 'include') are within the top source directory. Currently, if you change the 'source' field of a package from a tarball to an (unpacked) VCS checkout, there *might* be additional components added to the environment variables, depending on the source tree layout. For example, this causes our 'linux-libre' package to fail to build if you substitute its 'source' field for a git checkout, as Chris Webber discovered here: https://lists.gnu.org/archive/html/help-guix/2019-07/msg00058.html https://lists.gnu.org/archive/html/help-guix/2019-07/msg00062.html Also, if any package depends on the current behavior, it will break if its 'source' is changed from a VCS checkout to a release tarball. To avoid this unexpected sensitivity on the source origin method, I suggest that we explicitly exclude 'source' from consideration within the 'set-paths' phase. What do you think? Also, does anyone know of other procedures that do something similiar? Thanks, Mark