Subject: Re: [bug#55231] Understanding #:substitutable? and #55231

From: Morgan Arnold <[email-masked]>
Date: Fri, 14 Feb 2025 18:54:33 +0000

Hi Leo,

> If Maxime's concern is that Guix should not make it too easy for users
> to distribute software for which they do not have the license, I hear
> that concern, but I argue that we shouldn't go very far with it. Of
> course, Guix itself should not do that kind of thing, but we shouldn't
> go out of our way to prevent users from doing so.

I am inclined to agree with this point of view, but it is my understanding that Maxime does not, and it seems like (at a minimum) rather bad form to merge this patch over entirely reasonable objections, even if we happen to disagree with the reasoning behind those objections. This, of course, being subject to the assumption that I am interpreting Maxime's objections correctly. My hope in making `#:substitutable? #f` propagate to dependents was to resolve this issue by simply implementing user protection from any accidental copyright-violating distribution. This seems to me like the most feasible path to assembling a patch set which would satisfy the expressed concerns, and so the most feasible path to the merging of this patch set.

I would be very open to finding another way to address these concerns, but `#:substitutable? #f` propagation was the only solution which presented itself to me. There may be a simpler way to deal specifically with the case of initrds, since those are what are being changed here, but the only scheme which I was able to devise for implementation required working at the level of derivations (essentially, because one has to be able to access the inputs of the initrd as derivations to be able to speak of their substitutability, since substitutability is a property of derivations).

Best,

Morgan