Hi everyone, Maxime Devos <maximede...@telenet.be> writes: > Here is a simpler reproducer for that error: > > file a.scm: > (use-modules (gnu packages) (guix packages) (guix gexp)) > (package > (inherit (specification->package "hello")) > (source (local-file "a.scm"))) > > guix build -f a.scm --source
The issue is that package-source-derivation in guix/packages.scm doesn't actually always yield a derivation, since lower-object isn't guaranteed to do that: here the gexp compiler for local-file only returns a string denoting the file path of the interned store file. `guix build` relies on the (wrong) assumption that everything that it will build will end up being a derivation in some way or another, so just calls show-derivation-outputs on that, which then errors as above. build-derivations, contrary to its name, can also pass simple file names to build-things, and since the file will already be interned in the store at that point, it won't need to do anything, and there won't be any errors there. The simple fix would be to add another band-aid cond at the show-derivation-outputs call in build.scm, but it doesn't seem to be enough in the long term. What do people think? -- Josselin Poiret