Subject: bug#41028: Channel/inferior error with core-updates: Unbound variable: call-with-new-thread

From: Christopher Baines <[email-masked]>
Date: Fri, 08 May 2020 10:37:45 +0100

Ludovic Courtès <[email-masked]> writes:

> Ludovic Courtès <[email-masked]> skribis:
>
>> The attached patches add a mechanism to patch the Guix source tree, and
>> then use that mechanism to add the missing (ice-9 threads) import.  With
>> this I can do:
>>
>>   ./pre-inst-env guix time-machine \
>>      --commit=e02c2f85b36ce1c733bd908a210ce1182bdd2560 -- build linux-libre
>>
>> … which is a simple way to do what the manifest above was about.
>
> Given the enthusiasm expressed on IRC, I went ahead and pushed.  :-)
>
>   ff3ca7979e channels: Add patch for <https://bugs.gnu.org/41028>.
>   053b10c3ef channels: Add mechanism to patch checkouts of the 'guix channel.
>   4ba425060a channels: Add 'latest-channel-instance'.
>
> So… it might be that today is merge day?

Wonderful :) I've had a chance to try this out now, and it works. I was
able to reconfigure my system.

One even more niche issue is that because I'm using this channel in my
system configuration, the patching happens as root, but it's the cached
channel in my users home directory that's patched. This means that
build-self.scm becomes owned by root.

I noticed this when I went to pull:

  → guix pull --branch=core-updates
  Updating channel 'guix' from Git repository at 'https://git.savannah.gnu.org/git/guix.git'...
  guix pull: error: Git error: could not open '/home/chris/.cache/guix/checkouts/pjmkglp4t7znuugeurpurzikxq3tnlaywmisyr27shj7apsnalwq/build-aux/build-self.scm' for writing: Permission denied

I'm not sure what the neat way of addressing this is, but maybe the file
ownership can be recorded prior to patching, and reset afterwards if
it's changed.

Thanks again for looking at the original issue Ludo,

Chris