On 9/02/2025 2:06, Ian Eure wrote:

Hi Morgan,

Morgan Arnold via "Development of GNU Guix and the GNU System distribution." <guix-devel@gnu.org> writes:

Hello,

If the issue is simply that the patch has not been rebased against a
new enough version of Guix to be merged, I am happy to do that
rebasing. Additionally, please correct me if I have made any incorrect
assertions above.

No. See the stuff about #:substitutable?. The reason I didn't answer back then, is that I don't want to keep being a broken record.

If 'make-linux-libre' in the presence of ZFS leads to #:subsitutable? problems, that doesn't mean it's fine to ignore the law for #52231. It means you need to:

 (a) remove ZFS
 (b) or adjust 'make-linux-libre' (whether code or documentation, preferably code) to do the #:substitutable? thing

More generally, legality > convenience (except in case of revolution, but that's not applicable to Guix, and it seems inadvisable to talk about such matters in the open).

More specifically, ZFS proponents (at least as a group, and when limited to those visible in Guix) tend to be rather incoherent in their positions, in the sense that simultaneously do:

 (1) consider GPL and ZFS license to be compatible,
 (2) with caveat about "no binary distributions"  (legal restriction)
 (3) want to get ZFS in a distribution
 (4) their method to get ZFS in the distribution doesn't address point (2)
 (5) and they refuse to fix the legal issue (4) when pointed out to them, with as reason:
 (5a) previous versions of Guix already violate restriction (2)
 (5b) it's technically slightly inconvenient

Like, (5a) just makes things _worse_ (as now would be _knowingly_  in violation of the law, and the duration of the violation increases) and (5b) is utterly irrelevant to the law - Guix is subject to the law, not the other way around.

And pointing this out to them doesn't seem to ever work.

It has been some time ago, but I probably suspected it wouldn't work in this case either.

It does seem that #55231 ended up in a place where there was concensus that it was acceptable, but didn’t get merged for some reason or other.  I definitely could be wrong, but I suspect the issue is that when non-#:substitutable? packages are used in places other than package inputs, the downstream derivations don’t carry that information.  I believe when used as a package input, non-#:substitutable? packages do, in fact, poison all downstream derivations.  Happy to be corrected if I’m wrong here.

Not quite - to my understanding, the downstream derivations _also_ don't carry that information when it's in package inputs (at least, last time I checked there didn't seem to be any mechanism to set #:substitutable? to #false when any of the inputs are unsubstitutable (whether non-bag(?) derivation inputs, implicit inputs, native-inputs, ...)).

For packages, in typical situations the #:substitutable? #false of any 'native-inputs' of a package shouldn't impact the substitutability of the package. For 'inputs', it rather depends (e.g. static/dynamic, the particulars of the license, is it because of license reasons or something else). Since it somewhat depends on the situation, if you implement a thing like this, I would recommend making it a _default_ for #:substitutable?(*), that can be overridden by some method.

I think it’s reasonable to merge this after it’s rebased on current master, and would be willing to do that unless Maxime or Ludo’ raise an objection.

First you say you suspect the issue is that #:substitutable?-related behaviour isn't right yet, and immediately in the next paragraph you say it's reasonable to merge it. Given that the patches haven't been adjusted to solve this, this is rather incongruent.

I already raised the objection several times in the past (including _before_ #55231), and none of the patch revisions attempted to deal with the objection.  Issues don't simply magically resolve themselves. I believe you can infer whether I would object to the current state of #55231 or not.

Regards,
Maxime Devos


  • Understanding #:s... Development of GNU Guix and the GNU System distribution.
    • Re: Understa... Development of GNU Guix and the GNU System distribution.
    • Re: Understa... Ian Eure
      • Re: Unde... Maxime Devos
        • Re: ... Development of GNU Guix and the GNU System distribution.
          • ... Maxime Devos
            • ... Development of GNU Guix and the GNU System distribution.
              • ... Maxime Devos
                • ... Development of GNU Guix and the GNU System distribution.
            • ... Maxim Cournoyer
        • Re: ... Ian Eure
          • ... Development of GNU Guix and the GNU System distribution.
          • ... Maxime Devos
            • ... Leo Famulari

Reply via email to