Hello, Mark H Weaver <[email protected]> skribis:
> 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. Oh, that was certainly not intended. > 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. Indeed, that’s terrible. I suppose we were just lucky not to hit such issues before! > 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? I agree. We should do that in the next ‘core-updates’. Ludo’.
