Christopher Baines writes: > Ludovic Courtès writes: > >> Ludovic Courtès 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 . >> 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. I took a stab at exactly this: