Subject: Re: Understanding #:substitutable? and #55231

From: Morgan Arnold <[email-masked]>
Date: Sun, 09 Feb 2025 22:42:26 +0000

Hi all,

As a bit of an aside, I'm wondering if it wouldn't be possible to eliminate the possibility of even potential copyviols by a change to the `derivation` function? It currently sets environment variable for the builder daemon by setting `allowSubstitutes = 0` if `(not substitutable?)`. If non-substitutability were propagated by doing something like instead setting `allowSubstitutes = 0` if `(not substitutable?)` or if `(not (every substitutable-derivation? inputs))`, wouldn't this suffice to ensure that an initrd which contains non-substitutable inputs is properly marked non-substitutable?

It might be more correct to allow derivations built with non-substitutable native inputs to be substitutable nonetheless. The alternative seems like it could cause issues, in particular with the non-substitutable texlive package being used as a native input to build documentation.

Best,

Morgan