GNU bug report logs - #58247
Using guix time-machine results in unsupported manifest format error

Previous Next

Package: guix;

Reported by: david larsson <david.larsson <at> selfhosted.xyz>

Date: Sun, 2 Oct 2022 11:19:02 UTC

Severity: normal

Tags: wontfix

Done: Ludovic Courtès <ludo <at> gnu.org>

Bug is archived. No further changes may be made.

To add a comment to this bug, you must first unarchive it, by sending
a message to control AT debbugs.gnu.org, with unarchive 58247 in the body.
You can then email your comments to 58247 AT debbugs.gnu.org in the normal way.

Toggle the display of automated, internal messages from the tracker.

View this report as an mbox folder, status mbox, maintainer mbox


Report forwarded to bug-guix <at> gnu.org:
bug#58247; Package guix. (Sun, 02 Oct 2022 11:19:02 GMT) Full text and rfc822 format available.

Acknowledgement sent to david larsson <david.larsson <at> selfhosted.xyz>:
New bug report received and forwarded. Copy sent to bug-guix <at> gnu.org. (Sun, 02 Oct 2022 11:19:02 GMT) Full text and rfc822 format available.

Message #5 received at submit <at> debbugs.gnu.org (full text, mbox):

From: david larsson <david.larsson <at> selfhosted.xyz>
To: bug-guix <at> gnu.org
Subject: Using guix time-machine results in unsupported manifest format error
Date: Sun, 02 Oct 2022 13:17:57 +0200
Hi,
Im on commit 729ce5f and Im running: guix time-machine --commit=7e8e070 
-- package -i hello

and it outputs:

  guix package: error: unsupported manifest format

I have tried nesting time-machine as well like:

  guix time-machine --commit=<oldcommit> -- time-machine 
--commit=<somecommit> -- package -i hello

but it gives the same error.

Any ideas?


Regards,
David




Information forwarded to bug-guix <at> gnu.org:
bug#58247; Package guix. (Sun, 02 Oct 2022 17:03:02 GMT) Full text and rfc822 format available.

Message #8 received at 58247 <at> debbugs.gnu.org (full text, mbox):

From: zimoun <zimon.toutoune <at> gmail.com>
To: david larsson <david.larsson <at> selfhosted.xyz>, 58247 <at> debbugs.gnu.org
Subject: Re: bug#58247: Using guix time-machine results in unsupported
 manifest format error
Date: Sun, 02 Oct 2022 19:02:28 +0200
Hi,

On dim., 02 oct. 2022 at 13:17, david larsson <david.larsson <at> selfhosted.xyz> 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

It is probably because an issue with version of manifest; e.g, fixed by
67a6828b2bb821274757f686f7c685b664339a96.  See <https://issues.guix.gnu.org/57306>.

What does

    $ cat ~/.guix-profile/manifest | grep -A 1 manifest

report?


Cheers,
simon




Information forwarded to bug-guix <at> gnu.org:
bug#58247; Package guix. (Sun, 02 Oct 2022 18:58:02 GMT) Full text and rfc822 format available.

Message #11 received at 58247 <at> debbugs.gnu.org (full text, mbox):

From: david larsson <david.larsson <at> selfhosted.xyz>
To: zimoun <zimon.toutoune <at> gmail.com>
Cc: 58247 <at> debbugs.gnu.org
Subject: Re: bug#58247: Using guix time-machine results in unsupported
 manifest format error
Date: Sun, 02 Oct 2022 20:57:15 +0200
On 2022-10-02 19:02, zimoun wrote:

[..]

> It is probably because an issue with version of manifest; e.g, fixed by
> 67a6828b2bb821274757f686f7c685b664339a96.  See
> <https://issues.guix.gnu.org/57306>.

Note that the commit I'm on, is from 2 days ago, which is after the fix 
commit you're mentioning.

> 
> What does
> 
>     $ cat ~/.guix-profile/manifest | grep -A 1 manifest
> 
> report?

(manifest
  (version 4)

Not sure it matters, but Im able to run guix time-machine 
--commit=<somecommit> -- describe but not package -i <somepackage>

Best regards,
David




Information forwarded to bug-guix <at> gnu.org:
bug#58247; Package guix. (Sun, 02 Oct 2022 22:27:02 GMT) Full text and rfc822 format available.

Message #14 received at 58247 <at> debbugs.gnu.org (full text, mbox):

From: zimoun <zimon.toutoune <at> gmail.com>
To: david larsson <david.larsson <at> selfhosted.xyz>
Cc: 58247 <at> debbugs.gnu.org
Subject: Re: bug#58247: Using guix time-machine results in unsupported
 manifest format error
Date: Mon, 03 Oct 2022 00:10:24 +0200
Hi,

On Sun, 02 Oct 2022 at 20:57, david larsson <david.larsson <at> selfhosted.xyz> wrote:
> On 2022-10-02 19:02, zimoun wrote:

>> It is probably because an issue with version of manifest; e.g, fixed by
>> 67a6828b2bb821274757f686f7c685b664339a96.  See
>> <https://issues.guix.gnu.org/57306>.
>
> Note that the commit I'm on, is from 2 days ago, which is after the fix 
> commit you're mentioning.

Yes, note that the earlier mentioned commit
7e8e07033d2a6b0ecef566a05084c534c774cd4a is from Oct 2021 if I read
correctly.


> Not sure it matters, but Im able to run guix time-machine 
> --commit=<somecommit> -- describe but not package -i <somepackage>

IIUC, ’describe’ reads from ~/.config/guix/current/manifest and here the
issue is from ~/.guix-profile/manifest.

Maybe I am wrong, but I think the issue is coming from an
incompatibility about the version of ~/.guix-profile/manifest.

This manifest is at the version 4.  When you run

  guix time-machine --commit=<commit> -- package -i hello

then I guess it works or not depending on <commit>.

The manifest file ~/.guix-profile/manifest needs to be updated and there
is a conflict because some versions of the profile manifest.  For
instance, consider two profiles generated using 2 different revisions of
Guix – a recent one and an old one:

--8<---------------cut here---------------start------------->8---
$ guix time-machine --commit=729ce5f -- package -i hello -p /tmp/new

$ cat /tmp/new/manifest | grep -A 1 '(manifest'
(manifest
  (version 4)
--8<---------------cut here---------------end--------------->8---

and

--8<---------------cut here---------------start------------->8---
$ guix time-machine --commit=7e8e070 -- package -i hello -p /tmp/old

$ cat /tmp/old/manifest | grep -A 1 '(manifest'
(manifest
  (version 3)
--8<---------------cut here---------------end--------------->8---


Now, consider the recent profile named /tmp/new and try to install a
previous package from an old commit,

--8<---------------cut here---------------start------------->8---
$ guix time-machine --commit=7e8e070 -- package -i hello -p /tmp/new
guix package: error: unsupported manifest format
--8<---------------cut here---------------end--------------->8---

The old Guix uses version 3 and cannot read/write version 4 and bang!

Let try the converse,

--8<---------------cut here---------------start------------->8---
$ guix time-machine --commit=729ce5f -- package -i hello -p /tmp/old

$ cat /tmp/old/manifest | grep -A 1 '(manifest'
(manifest
  (version 4)

$ guix package --list-generations -p /tmp/old
Generation 1	oct. 02 2022 18:53:10
  hello	2.10	out	/gnu/store/xg67cpxq2p6q7wn4y2z194pndwdymhpf-hello-2.10

Generation 2	oct. 02 2022 21:25:11	(current)
 + hello	2.12.1	out	/gnu/store/s5pd3rnzymliafb4la5sca63j86xs0y0-hello-2.12.1
 - hello	2.10  	out	/gnu/store/xg67cpxq2p6q7wn4y2z194pndwdymhpf-hello-2.10
--8<---------------cut here---------------end--------------->8---

This profile /tmp/old is thus converted from version 3 to version 4, and
then, reusing old version of Guix fails,

--8<---------------cut here---------------start------------->8---
$ guix time-machine --commit=7e8e070 -- package -i hello -p /tmp/old
guix package: error: unsupported manifest format
--8<---------------cut here---------------end--------------->8---


Well, I do not know if a fix is possible.  The issue is a
backward compatibility issue.


Cheers,
simon




Information forwarded to bug-guix <at> gnu.org:
bug#58247; Package guix. (Wed, 19 Oct 2022 14:01:02 GMT) Full text and rfc822 format available.

Message #17 received at 58247 <at> debbugs.gnu.org (full text, mbox):

From: zimoun <zimon.toutoune <at> gmail.com>
To: david larsson <david.larsson <at> selfhosted.xyz>
Cc: Ludovic Courtès <ludo <at> gnu.org>, 58247 <at> debbugs.gnu.org
Subject: Re: bug#58247: Using guix time-machine results in unsupported
 manifest format error
Date: Wed, 19 Oct 2022 12:51:34 +0200
Hi,

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 <zimon.toutoune <at> gmail.com> 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’?


Cheers,
simon




Information forwarded to bug-guix <at> gnu.org:
bug#58247; Package guix. (Thu, 20 Oct 2022 18:45:02 GMT) Full text and rfc822 format available.

Message #20 received at 58247 <at> debbugs.gnu.org (full text, mbox):

From: david larsson <david.larsson <at> selfhosted.xyz>
To: zimoun <zimon.toutoune <at> gmail.com>
Cc: 58247 <at> debbugs.gnu.org
Subject: Re: bug#58247: Using guix time-machine results in unsupported
 manifest format error
Date: Thu, 20 Oct 2022 20:44:23 +0200
On 2022-10-03 00:10, zimoun wrote:

[..]

> 
> Let try the converse,
> 
> --8<---------------cut here---------------start------------->8---
> $ guix time-machine --commit=729ce5f -- package -i hello -p /tmp/old
> 
> $ cat /tmp/old/manifest | grep -A 1 '(manifest'
> (manifest
>   (version 4)
> 
> $ guix package --list-generations -p /tmp/old
> Generation 1	oct. 02 2022 18:53:10
>   hello	2.10	out	/gnu/store/xg67cpxq2p6q7wn4y2z194pndwdymhpf-hello-2.10
> 
> Generation 2	oct. 02 2022 21:25:11	(current)
>  + 
> hello	2.12.1	out	/gnu/store/s5pd3rnzymliafb4la5sca63j86xs0y0-hello-2.12.1
>  - hello	2.10  
> 	out	/gnu/store/xg67cpxq2p6q7wn4y2z194pndwdymhpf-hello-2.10
> --8<---------------cut here---------------end--------------->8---
> 
> This profile /tmp/old is thus converted from version 3 to version 4, 
> and
> then, reusing old version of Guix fails,
> 
> --8<---------------cut here---------------start------------->8---
> $ guix time-machine --commit=7e8e070 -- package -i hello -p /tmp/old
> guix package: error: unsupported manifest format
> --8<---------------cut here---------------end--------------->8---
> 
> 
> Well, I do not know if a fix is possible.  The issue is a
> backward compatibility issue.
> 

Hi,
Thanks for the clarification.

I imagine it would be possible to give it a dirty fix, approximately as 
you just showed with /tmp/old, if you also just readd the default 
profile's currently installed packages to it at the end. So, if using 
~/.guix-profile, it would be something like:

1. Say your ~/.guix-profile is at commit=XYZ
2. build a NEW profile with the old package ONLY, from commit=ABC (as in 
/tmp/old)
3. guix pull /tmp/old "back" to commit=XYZ
4. install remaining packages that was in your ~/.guix-profile to 
/tmp/old.
5. mv the ~/.guix-profile symlink to /tmp/old.

( /tmp/old should just be in /var/guix/profiles/per-user/$USER as normal 
)

Building a new package generation like this would not be the same as 
usual, cuz the currently installed packages may come from different guix 
revisions. That might be a dealbreaker for fixing it. I do think it's 
very sad though, that the time-machine is kind of broken whenever the 
manifest gets a new version, with no hint even to the user how to find a 
solution.

Best regards,
David






Information forwarded to bug-guix <at> gnu.org:
bug#58247; Package guix. (Sun, 04 Dec 2022 17:03:01 GMT) Full text and rfc822 format available.

Message #23 received at 58247 <at> debbugs.gnu.org (full text, mbox):

From: Ludovic Courtès <ludo <at> gnu.org>
To: zimoun <zimon.toutoune <at> gmail.com>
Cc: david larsson <david.larsson <at> selfhosted.xyz>, 58247 <at> debbugs.gnu.org
Subject: Re: bug#58247: Using guix time-machine results in unsupported
 manifest format error
Date: Sun, 04 Dec 2022 18:01:50 +0100
Hi,

zimoun <zimon.toutoune <at> gmail.com> 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 <zimon.toutoune <at> gmail.com> 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’.




Added tag(s) wontfix. Request was from Ludovic Courtès <ludo <at> gnu.org> to control <at> debbugs.gnu.org. (Sun, 04 Dec 2022 17:03:02 GMT) Full text and rfc822 format available.

bug closed, send any further explanations to 58247 <at> debbugs.gnu.org and david larsson <david.larsson <at> selfhosted.xyz> Request was from Ludovic Courtès <ludo <at> gnu.org> to control <at> debbugs.gnu.org. (Sun, 04 Dec 2022 17:03:02 GMT) Full text and rfc822 format available.

bug archived. Request was from Debbugs Internal Request <help-debbugs <at> gnu.org> to internal_control <at> debbugs.gnu.org. (Mon, 02 Jan 2023 12:24:06 GMT) Full text and rfc822 format available.

This bug report was last modified 1 year and 115 days ago.

Previous Next


GNU bug tracking system
Copyright (C) 1999 Darren O. Benham, 1997,2003 nCipher Corporation Ltd, 1994-97 Ian Jackson.