Dear all,

this question was asked several times. But >Computing Guix derivation for 
'x86_64-linux'< annoys really.

Why do we need this so often?

Of course, we need this, if we pull a new guix. If we do it, we know that it 
takes its time.

But why do we need it with >guix system reconfigure< etc.pp.? We have a pulled 
guix locally and ready. That's the one we want to use! Well, I see that >guix 
system reconfigure< pulls new commits. But why? I don't want them. I want it to 
use my pulled guix. If it uses new commits, I'm forced to recompile the kernel 
et.al. - at least if >guix weather< is not good. If the pull is old, guix tells 
me this. Then it's my decision to pull it or not.
Workarounds:
1. The last time, the weather was not good. Therefore, I looked up the commits 
in my subscribed channels and chose commits that are 2-3 weeks old, just after 
the last CVE. Then my weather was much better. This leads to Proposal 2.
2. Well, at the moment I wrote the commits into >~/.config/guix/channel.scm<. I 
hope that reconfigure respects this. But this ignores my pulled guix. This 
leads to Proposal 1.

Proposal 1: Do not automatically fetch commits on reconfigure et.al. Use the 
pulled guix.
  PRO: We have a guix derivation ready to go on. AFAICS, we can use exactly 
this guix for the system, if we do not cross-install.
  PRO: Clear design. >guix pull< pulls new commits. All other commands don't do 
this - as long as channel commits are not explicitly given.
  OPEN: How to handle local trees (i.e. -L directory)? Well, they add new 
branches and leafs, maybe a new forest. They do not change the old forest at 
all. Most of the time, it contains only a few nodes or leafs. Than the addition 
should not take long. If it take to long, it's a hint to convert it into a 
channel.
  We may add a flag to the channel description. E.g. (use-newest? #t)

Proposal 2: Set up a stable guix channel. I.e. a channel where all packages (or 
99% of all and 100% of >important< packages) are build and tested by CI. Then 
its commit can be done automatically.
  PRO: We get stability. We get substitutes directly after >guix pull<. It 
saves many users a lot of compile time.
  NB: If there is a CVE, we should inject its solving commit into the CI queue 
with a high priority. Then CI checks and builds this commit as its next commit 
- possibly interrupting its previous target commit. Well, this should depend on 
the gravity of the CVE or inject, respectively.

Proposal 3: Create a database (per channel) to look up files and get their 
packages, like https://www.debian.org/distrib/packages#search_contents

Kind regards,
S. Karrmann

Reply via email to