Subject: bug#58247: Using guix time-machine results in unsupported manifest format error

From: Ludovic Courtès <[email-masked]>
Date: Sun, 04 Dec 2022 18:01:50 +0100

Hi,

zimoun <[email-masked]> skribis:

> This issue is about the upgrade of manifest version from 3 to 4.  For
> references,
>
>     <http://issues.guix.gnu.org/issue/58247>
>
> On Mon, 03 Oct 2022 at 00:10, zimoun <[email-masked]> wrote:
>
>> Well, I do not know if a fix is possible.  The issue is a
>> backward compatibility issue.
>
> Ludo, what is your insight on that matter?  Is it fixable?  Or do we
> mark the issue as ’wontfix’?

David wrote:

> Im on commit 729ce5f and Im running: guix time-machine
> --commit=7e8e070 -- package -i hello
>
> and it outputs:
>
>   guix package: error: unsupported manifest format

This use case cannot be fixed: you cannot use an old Guix (one that only
understood manifest version 3) to manipulate a “new” profile (manifest
version 4).  That’s a fundamental limitation of old software being
unable to deal with new formats in general.

One way to work around it is to have that old ‘guix’ operate on a fresh
profile (thus it’ll be version 3):

  rm -f /tmp/old-stuff
  guix time-machine --commit=7e8e070 -- package -i hello -p /tmp/old-stuff

or, better yet, to use ‘guix shell’ or ‘guix environment’:

  guix time-machine --commit=7e8e070 -- \
    environment --ad-hoc hello -- hello

I’m closing this bug.

Thanks,
Ludo’.