[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
bug#56441: guix time-machine broken by profiles speed-up
From: |
Ricardo Wurmus |
Subject: |
bug#56441: guix time-machine broken by profiles speed-up |
Date: |
Thu, 07 Jul 2022 19:29:58 +0200 |
User-agent: |
mu4e 1.6.11; emacs 28.1 |
zimoun <zimon.toutoune@gmail.com> writes:
> Bug#55499 [1] is fixed by 4ff12d1de7cd617b791996ee7ca1240660b4c20e.
> However, because the manifest version is going from 3 to 4 with new
> fields, the new Guix cannot builds the old Guix.
>
> Commit 4ff12d1de7cd617b791996ee7ca1240660b4c20e is not able to go to its
> parent 9b8c442b254b82196fe2492142b3c3bbbd891a1b.
>
> $ git rev-parse 4ff12d1de7^
> 9b8c442b254b82196fe2492142b3c3bbbd891a1b
>
> $ guix time-machine --commit=4ff12d1de7 -- time-machine --commit=9b8c442b25
> -- help
> Updating channel 'guix' from Git repository at
> 'https://git.savannah.gnu.org/git/guix.git'...
> Computing Guix derivation for 'x86_64-linux'... \
> The following derivation will be built:
> /gnu/store/r5qk23fibxn5ryd2k7b8qkbryqv4m3ds-profile.drv
>
> building package cache...
> |builder for
> `/gnu/store/19nk2x26s0dp68r7d36ifbg0ck0q3xps-guix-package-cache.drv' failed
> to produce output path
> `/gnu/store/axqgrls563slnp76x60dqlv7sdwcm2ly-guix-package-cache'
> build of /gnu/store/19nk2x26s0dp68r7d36ifbg0ck0q3xps-guix-package-cache.drv
> failed
> View build log at
> '/var/log/guix/drvs/19/nk2x26s0dp68r7d36ifbg0ck0q3xps-guix-package-cache.drv.gz'.
> cannot build derivation
> `/gnu/store/r5qk23fibxn5ryd2k7b8qkbryqv4m3ds-profile.drv': 1 dependencies
> couldn't be built
> guix time-machine: error: build of
> `/gnu/store/r5qk23fibxn5ryd2k7b8qkbryqv4m3ds-profile.drv' failed
IIUC the problem here is that PACKAGE-CACHE-FILE, a profile hook running
inside an inferior (= with an older Guix), is operating on a manifest
that uses the new version 4 format. That manifest was built with the
*current* version of Guix that understands the version 4 format.
PACKAGE-CACHE-FILE uses GEXP->DERIVATION-IN-INFERIOR and the inferior is
a PROFILE that’s made from a given MANIFEST value. That PROFILE is
*not* built inside the inferior, so it doesn’t use the old manifest
format.
The cache generation is happening in
/gnu/store/17v5781w8kl1snp826jl6z40z5lbbw1y-inferior-script.scm.drv, which — as
the name indicates — is
run inside the inferior, i.e. the older Guix.
--
Ricardo
bug#56441: Time travel doesn't resist profile format changes, Ricardo Wurmus, 2022/07/08
Message not available