unofficial mirror of bug-guix@gnu.org 
 help / color / mirror / code / Atom feed
* bug#57306: guix pull to old commit fails due to unsupported manifest format
@ 2022-08-20  9:37 Arun Isaac
  2022-08-20  9:40 ` paren--- via Bug reports for GNU Guix
                   ` (2 more replies)
  0 siblings, 3 replies; 16+ messages in thread
From: Arun Isaac @ 2022-08-20  9:37 UTC (permalink / raw)
  To: 57306


When I guix pull to 6f75565b4ec3b8a7247699c327a3b3196c787f76, activate
the profile and run guix describe, it fails with an "unsupported
manifest format" error.

--8<---------------cut here---------------start------------->8---
$ guix pull --commit=6f75565b4ec3b8a7247699c327a3b3196c787f76 -p
/tmp/test
$ source /tmp/test/etc/profile
$ guix describe
guix describe: error: unsupported manifest format
--8<---------------cut here---------------end--------------->8---

This happens because my guix-daemon writes a version 4 manifest and the
guix from commit 6f75565b4ec3b8a7247699c327a3b3196c787f76 only
understands a version 3 manifest.

This may be related to https://issues.guix.gnu.org/56545




^ permalink raw reply	[flat|nested] 16+ messages in thread

* bug#57306: guix pull to old commit fails due to unsupported manifest format
  2022-08-20  9:37 bug#57306: guix pull to old commit fails due to unsupported manifest format Arun Isaac
@ 2022-08-20  9:40 ` paren--- via Bug reports for GNU Guix
  2022-08-20  9:45   ` Arun Isaac
  2022-08-21  7:00 ` Josselin Poiret via Bug reports for GNU Guix
  2022-08-29 14:59 ` zimoun
  2 siblings, 1 reply; 16+ messages in thread
From: paren--- via Bug reports for GNU Guix @ 2022-08-20  9:40 UTC (permalink / raw)
  To: Arun Isaac, 57306

https://issues.guix.gnu.org/56545#1

> Commit 4ff12d1de7cd617b791996ee7ca1240660b4c20e introduced that bug,
> which was fixed in c9fbd40785a99e13a59d8e530830ce85220a9871:
>
>  https://issues.guix.gnu.org/56441
>
> ‘guix describe’ should show that you’re using a commit in that range.
>
> The solution is to run ‘time-machine’ from a commit outside that range,
> for instance with:
>
>   guix time-machine -- time-machine -C channels.scm -- whatever

    -- (




^ permalink raw reply	[flat|nested] 16+ messages in thread

* bug#57306: guix pull to old commit fails due to unsupported manifest format
  2022-08-20  9:40 ` paren--- via Bug reports for GNU Guix
@ 2022-08-20  9:45   ` Arun Isaac
  2022-08-20 10:23     ` paren--- via Bug reports for GNU Guix
  0 siblings, 1 reply; 16+ messages in thread
From: Arun Isaac @ 2022-08-20  9:45 UTC (permalink / raw)
  To: (, 57306


>> Commit 4ff12d1de7cd617b791996ee7ca1240660b4c20e introduced that bug,
>> which was fixed in c9fbd40785a99e13a59d8e530830ce85220a9871:

The failing commit 6f75565b4ec3b8a7247699c327a3b3196c787f76 is not in
that range, if that's what you are saying.




^ permalink raw reply	[flat|nested] 16+ messages in thread

* bug#57306: guix pull to old commit fails due to unsupported manifest format
  2022-08-20  9:45   ` Arun Isaac
@ 2022-08-20 10:23     ` paren--- via Bug reports for GNU Guix
  0 siblings, 0 replies; 16+ messages in thread
From: paren--- via Bug reports for GNU Guix @ 2022-08-20 10:23 UTC (permalink / raw)
  To: Arun Isaac, 57306

Oops, I didn't read the issue properly and assumed it was just a
duplicate of the time-machine unsupported manifest format bug by
someone who doesn't know about the workaround (there have been a
few of those); sorry!

    -- (




^ permalink raw reply	[flat|nested] 16+ messages in thread

* bug#57306: guix pull to old commit fails due to unsupported manifest format
  2022-08-20  9:37 bug#57306: guix pull to old commit fails due to unsupported manifest format Arun Isaac
  2022-08-20  9:40 ` paren--- via Bug reports for GNU Guix
@ 2022-08-21  7:00 ` Josselin Poiret via Bug reports for GNU Guix
  2022-08-29 19:37   ` Arun Isaac
  2022-08-29 14:59 ` zimoun
  2 siblings, 1 reply; 16+ messages in thread
From: Josselin Poiret via Bug reports for GNU Guix @ 2022-08-21  7:00 UTC (permalink / raw)
  To: Arun Isaac, 57306

Hi Arun, 

Arun Isaac <arunisaac@systemreboot.net> writes:

> This happens because my guix-daemon writes a version 4 manifest and the
> guix from commit 6f75565b4ec3b8a7247699c327a3b3196c787f76 only
> understands a version 3 manifest.

From what I can gather from looking at the code, the patch at [1]
should've fixed this issue.  If that's not the case I suggest re-opening
it.

[1] https://issues.guix.gnu.org/56441#6

-- 
Josselin Poiret




^ permalink raw reply	[flat|nested] 16+ messages in thread

* bug#57306: guix pull to old commit fails due to unsupported manifest format
  2022-08-20  9:37 bug#57306: guix pull to old commit fails due to unsupported manifest format Arun Isaac
  2022-08-20  9:40 ` paren--- via Bug reports for GNU Guix
  2022-08-21  7:00 ` Josselin Poiret via Bug reports for GNU Guix
@ 2022-08-29 14:59 ` zimoun
  2022-08-29 19:41   ` Arun Isaac
  2 siblings, 1 reply; 16+ messages in thread
From: zimoun @ 2022-08-29 14:59 UTC (permalink / raw)
  To: Arun Isaac, 57306; +Cc: Ludovic Courtès

Hi Arun,

On sam., 20 août 2022 at 15:07, Arun Isaac <arunisaac@systemreboot.net> wrote:
> When I guix pull to 6f75565b4ec3b8a7247699c327a3b3196c787f76, activate
> the profile and run guix describe, it fails with an "unsupported
> manifest format" error.
>
> --8<---------------cut here---------------start------------->8---
> $ guix pull --commit=6f75565b4ec3b8a7247699c327a3b3196c787f76 -p
> /tmp/test
> $ source /tmp/test/etc/profile
> $ guix describe
> guix describe: error: unsupported manifest format
> --8<---------------cut here---------------end--------------->8---
>
> This happens because my guix-daemon writes a version 4 manifest and the
> guix from commit 6f75565b4ec3b8a7247699c327a3b3196c787f76 only
> understands a version 3 manifest.

I do not think it is related to guix-daemon and I think it is expected;
indeed it could be considered as a bug.  The command-line,

    guix pull --commit=xyz -p /tmp/test

writes /tmp/test/manifest using the current Guix (say manifest 4) and
not using Guix at commit xyz (say manifest 3).  Contrary to “guix
time-machine --commit=xyz”.

--8<---------------cut here---------------start------------->8---
$ cat ~/.cache/guix/inferiors/cfcv5rt7xiax6pvdqwoad3hdrsqrpl34z2tufvtcb7nspeum5cba/manifest
;; This file was automatically generated and is for internal use only.
;; It cannot be passed to the '--manifest' option.
;; Run 'guix package --export-manifest' if you want to export a file
;; suitable for '--manifest'.

(manifest
  (version 3)
  (packages
    (("guix"
      "6f75565"
      "out"
      "/gnu/store/3nfgbg6nd6vq9im8fp97h6h5zm1rvhzh-guix-6f75565b4"
      (propagated-inputs ())
      (search-paths ())
      (properties
        (source
          (repository
            (version 0)
            (url "https://git.savannah.gnu.org/git/guix.git")
            (branch #f)
            (commit
              "6f75565b4ec3b8a7247699c327a3b3196c787f76")
            (name guix)
            (introduction
              (channel-introduction
                (version 0)
                (commit
                  "9edb3f66fd807b096b48283debdcddccfea34bad")
                (signer
                  "BBB0 2DDF 2CEA F6A8 0D1D  E643 A2A0 6DF2 A33A 54FA"))))))))))
--8<---------------cut here---------------end--------------->8---


Cheers,
simon




^ permalink raw reply	[flat|nested] 16+ messages in thread

* bug#57306: guix pull to old commit fails due to unsupported manifest format
  2022-08-21  7:00 ` Josselin Poiret via Bug reports for GNU Guix
@ 2022-08-29 19:37   ` Arun Isaac
  2022-08-29 21:36     ` zimoun
  0 siblings, 1 reply; 16+ messages in thread
From: Arun Isaac @ 2022-08-29 19:37 UTC (permalink / raw)
  To: Josselin Poiret, 57306


Thanks, Josselin! I have asked at #56441 whether it may be reopened.




^ permalink raw reply	[flat|nested] 16+ messages in thread

* bug#57306: guix pull to old commit fails due to unsupported manifest format
  2022-08-29 14:59 ` zimoun
@ 2022-08-29 19:41   ` Arun Isaac
  2022-08-31 11:06     ` Ludovic Courtès
  0 siblings, 1 reply; 16+ messages in thread
From: Arun Isaac @ 2022-08-29 19:41 UTC (permalink / raw)
  To: zimoun, 57306; +Cc: Ludovic Courtès


Hi zimoun,

> I do not think it is related to guix-daemon and I think it is expected;
> indeed it could be considered as a bug.  The command-line,
>
>     guix pull --commit=xyz -p /tmp/test
>
> writes /tmp/test/manifest using the current Guix (say manifest 4) and
> not using Guix at commit xyz (say manifest 3).  Contrary to “guix
> time-machine --commit=xyz”.

Ah, that makes sense! Any ideas as to how this issue might be fixed?

Thanks,
Arun




^ permalink raw reply	[flat|nested] 16+ messages in thread

* bug#57306: guix pull to old commit fails due to unsupported manifest format
  2022-08-29 19:37   ` Arun Isaac
@ 2022-08-29 21:36     ` zimoun
  2022-08-30 16:42       ` Arun Isaac
  0 siblings, 1 reply; 16+ messages in thread
From: zimoun @ 2022-08-29 21:36 UTC (permalink / raw)
  To: Arun Isaac, Josselin Poiret, 57306

Hi,

On mar., 30 août 2022 at 01:07, Arun Isaac <arunisaac@systemreboot.net> wrote:

> Thanks, Josselin! I have asked at #56441 whether it may be reopened.

From my understanding, it is another side effect of
4ff12d1de7cd617b791996ee7ca1240660b4c20e.  Commit
9b8c442b254b82196fe2492142b3c3bbbd891a1b is the parent of 4ff12d.


Using a recent commit,

--8<---------------cut here---------------start------------->8---
$ guix describe
Generation 6	août 19 2022 12:36:01	(current)
  guix 65cabb0
    repository URL: https://git.savannah.gnu.org/git/guix.git
    branch: master
    commit: 65cabb010e3388d10f9b25ec560bfcfab5f810d4
--8<---------------cut here---------------end--------------->8---

‘generate-package-cache’ passes…

--8<---------------cut here---------------start------------->8---
$ guix pull --commit=9b8c442b254b82196fe2492142b3c3bbbd891a1b -p /tmp/old-ko-describe

[...]

$ /tmp/old-ko-describe/bin/guix describe
guix describe: error: unsupported manifest format
--8<---------------cut here---------------end--------------->8---

…but not “guix describe”.  Indeed, version 4:

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


Note that,

--8<---------------cut here---------------start------------->8---
$ guix pull --commit=4ff12d1de7cd617b791996ee7ca1240660b4c20e -p /tmp/old-ok

$ /tmp/old-ok/bin/guix describe
Generation 1	août 29 2022 22:49:56	(current)
  guix 4ff12d1
    repository URL: https://git.savannah.gnu.org/git/guix.git
    commit: 4ff12d1de7cd617b791996ee7ca1240660b4c20e

$ /tmp/old-ok/bin/guix pull --commit=9b8c442b254b82196fe2492142b3c3bbbd891a1b -p /tmp/old-ko
Updating channel 'guix' from Git repository at 'https://git.savannah.gnu.org/git/guix.git'...
Building from this channel:
  guix      https://git.savannah.gnu.org/git/guix.git	9b8c442
Computing Guix derivation for 'x86_64-linux'... -
substitute: updating substitutes from 'https://ci.guix.gnu.org'... 100.0%
substitute: updating substitutes from 'https://bordeaux.guix.gnu.org'... 100.0%
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 pull: error: build of `/gnu/store/r5qk23fibxn5ryd2k7b8qkbryqv4m3ds-profile.drv' failed
--8<---------------cut here---------------end--------------->8---


Well, it appears to me easier if bug#57306 remains closed since ’guix
time-machine’ is fixed; as it was the subject.


Cheers,
simon

<http://issues.guix.gnu.org/issue/57306>




^ permalink raw reply	[flat|nested] 16+ messages in thread

* bug#57306: guix pull to old commit fails due to unsupported manifest format
  2022-08-29 21:36     ` zimoun
@ 2022-08-30 16:42       ` Arun Isaac
  2022-08-30 17:20         ` zimoun
  0 siblings, 1 reply; 16+ messages in thread
From: Arun Isaac @ 2022-08-30 16:42 UTC (permalink / raw)
  To: zimoun, Josselin Poiret, 57306


Hi zimoun,

> Well, it appears to me easier if bug#57306 remains closed since ’guix
> time-machine’ is fixed; as it was the subject.

I think you mean that bug #56441 should remain closed. Bug #56441 was
about guix time-machine. Bug #57306 is the current bug about guix pull.

Regards,
Arun




^ permalink raw reply	[flat|nested] 16+ messages in thread

* bug#57306: guix pull to old commit fails due to unsupported manifest format
  2022-08-30 16:42       ` Arun Isaac
@ 2022-08-30 17:20         ` zimoun
  0 siblings, 0 replies; 16+ messages in thread
From: zimoun @ 2022-08-30 17:20 UTC (permalink / raw)
  To: Arun Isaac, Josselin Poiret, 57306

Hi,

On Tue, 30 Aug 2022 at 22:12, Arun Isaac <arunisaac@systemreboot.net> wrote:

> I think you mean that bug #56441 should remain closed. Bug #56441 was
> about guix time-machine. Bug #57306 is the current bug about guix pull.

Yes, sorry for the confusion.


Cheers,
simon




^ permalink raw reply	[flat|nested] 16+ messages in thread

* bug#57306: guix pull to old commit fails due to unsupported manifest format
  2022-08-29 19:41   ` Arun Isaac
@ 2022-08-31 11:06     ` Ludovic Courtès
  2022-08-31 13:15       ` zimoun
  2022-08-31 13:38       ` Arun Isaac
  0 siblings, 2 replies; 16+ messages in thread
From: Ludovic Courtès @ 2022-08-31 11:06 UTC (permalink / raw)
  To: Arun Isaac; +Cc: 57306-done, zimoun

Hi,

Arun Isaac <arunisaac@systemreboot.net> skribis:

>> I do not think it is related to guix-daemon and I think it is expected;
>> indeed it could be considered as a bug.  The command-line,
>>
>>     guix pull --commit=xyz -p /tmp/test
>>
>> writes /tmp/test/manifest using the current Guix (say manifest 4) and
>> not using Guix at commit xyz (say manifest 3).  Contrary to “guix
>> time-machine --commit=xyz”.
>
> Ah, that makes sense! Any ideas as to how this issue might be fixed?

I fixed it in 67a6828b2bb821274757f686f7c685b664339a96 using the same
trick as earlier.

Thanks!

Ludo’.




^ permalink raw reply	[flat|nested] 16+ messages in thread

* bug#57306: guix pull to old commit fails due to unsupported manifest format
  2022-08-31 11:06     ` Ludovic Courtès
@ 2022-08-31 13:15       ` zimoun
  2022-09-01  7:42         ` Ludovic Courtès
  2022-08-31 13:38       ` Arun Isaac
  1 sibling, 1 reply; 16+ messages in thread
From: zimoun @ 2022-08-31 13:15 UTC (permalink / raw)
  To: Ludovic Courtès, Arun Isaac; +Cc: 57306-done

Hi Ludo,

On Wed, 31 Aug 2022 at 13:06, Ludovic Courtès <ludo@gnu.org> wrote:

> I fixed it in 67a6828b2bb821274757f686f7c685b664339a96 using the same
> trick as earlier.

It means version 3 is used all the time, right?  Well, I miss when or
where version 4 is used then.

--8<---------------cut here---------------start------------->8---
$ for i in $(seq 4 9); \
  do
   grep -A 5 '(manifest' \
        /var/guix/profiles/per-user/simon/current-guix-$i-link/manifest \
  ;done
(manifest
  (version 3)
  (packages
    (("guix"
      "06493e7"
      "out"
(manifest
  (version 4)
  (packages
    (("guix"
      "8f0d45c"
      "out"
(manifest
  (version 4)
  (packages
    (("guix"
      "65cabb0"
      "out"
(manifest
  (version 4)
  (packages
    (("guix"
      "67a6828"
      "out"
(manifest
  (version 3)
  (packages
    (("guix"
      "0bb0e84"
      "out"
(manifest
  (version 3)
  (packages
    (("guix"
      "23152ff"
      "out"
--8<---------------cut here---------------end--------------->8---

From my understanding, set #:format-version to 3 should only be
considered when <hash> is a parent/ancestor of current commit in
’--commit=<hash>’.

Well, I do not remember all the discussion about --allow-downgrades.
For instance, why is

     $ guix pull --commit=6f75565b -p /tmp/test

not complaining about downgrade?  Because it is a downgrade. :-)


I think version 3 should be only used when the option --allow-downgrades
is provided.


Cheers,
simon




^ permalink raw reply	[flat|nested] 16+ messages in thread

* bug#57306: guix pull to old commit fails due to unsupported manifest format
  2022-08-31 11:06     ` Ludovic Courtès
  2022-08-31 13:15       ` zimoun
@ 2022-08-31 13:38       ` Arun Isaac
  1 sibling, 0 replies; 16+ messages in thread
From: Arun Isaac @ 2022-08-31 13:38 UTC (permalink / raw)
  To: Ludovic Courtès; +Cc: 57306-done, zimoun


> I fixed it in 67a6828b2bb821274757f686f7c685b664339a96 using the same
> trick as earlier.

Works now, thank you!




^ permalink raw reply	[flat|nested] 16+ messages in thread

* bug#57306: guix pull to old commit fails due to unsupported manifest format
  2022-08-31 13:15       ` zimoun
@ 2022-09-01  7:42         ` Ludovic Courtès
  2022-09-01  8:50           ` zimoun
  0 siblings, 1 reply; 16+ messages in thread
From: Ludovic Courtès @ 2022-09-01  7:42 UTC (permalink / raw)
  To: zimoun; +Cc: Arun Isaac, 57306-done

Hi,

zimoun <zimon.toutoune@gmail.com> skribis:

> On Wed, 31 Aug 2022 at 13:06, Ludovic Courtès <ludo@gnu.org> wrote:
>
>> I fixed it in 67a6828b2bb821274757f686f7c685b664339a96 using the same
>> trick as earlier.
>
> It means version 3 is used all the time, right?

Yes.

> Well, I miss when or where version 4 is used then.

Generations that were created with a slightly older Guix have a
version-4 manifest.

> From my understanding, set #:format-version to 3 should only be
> considered when <hash> is a parent/ancestor of current commit in
> ’--commit=<hash>’.

Here #:format-version 3 is unconditional.  That avoids having to make
assumptions about whether or not the target commit understands newer
format versions.

But you’re right: a refinement would be to use version 3 only when
targeting an ancestor.  I don’t think it’s worth the trouble though.

> Well, I do not remember all the discussion about --allow-downgrades.
> For instance, why is
>
>      $ guix pull --commit=6f75565b -p /tmp/test
>
> not complaining about downgrade?  Because it is a downgrade. :-)

Whether it’s a downgrade depends on what’s in /tmp/test when you run it.

Thanks,
Ludo’.




^ permalink raw reply	[flat|nested] 16+ messages in thread

* bug#57306: guix pull to old commit fails due to unsupported manifest format
  2022-09-01  7:42         ` Ludovic Courtès
@ 2022-09-01  8:50           ` zimoun
  0 siblings, 0 replies; 16+ messages in thread
From: zimoun @ 2022-09-01  8:50 UTC (permalink / raw)
  To: Ludovic Courtès; +Cc: Arun Isaac, 57306-done

Hi Ludo,

Thanks for explaining.

On Thu, 01 Sep 2022 at 09:42, Ludovic Courtès <ludo@gnu.org> wrote:

>> It means version 3 is used all the time, right?
>
> Yes.
>
>> Well, I miss when or where version 4 is used then.
>
> Generations that were created with a slightly older Guix have a
> version-4 manifest.

It means that the manifest of ~/.config/current is fixed “forever“ to
version 3.  And version 4 is only used by other profiles, e.g., created
by ’guix package’.


>> From my understanding, set #:format-version to 3 should only be
>> considered when <hash> is a parent/ancestor of current commit in
>> ’--commit=<hash>’.
>
> Here #:format-version 3 is unconditional.  That avoids having to make
> assumptions about whether or not the target commit understands newer
> format versions.
>
> But you’re right: a refinement would be to use version 3 only when
> targeting an ancestor.  I don’t think it’s worth the trouble though.

Ok, yeah it makes sense.  The question could be revisited when the
manifest of the profile ~/.config/current would require a version
update.


Cheers,
simon




^ permalink raw reply	[flat|nested] 16+ messages in thread

end of thread, other threads:[~2022-09-01  9:14 UTC | newest]

Thread overview: 16+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2022-08-20  9:37 bug#57306: guix pull to old commit fails due to unsupported manifest format Arun Isaac
2022-08-20  9:40 ` paren--- via Bug reports for GNU Guix
2022-08-20  9:45   ` Arun Isaac
2022-08-20 10:23     ` paren--- via Bug reports for GNU Guix
2022-08-21  7:00 ` Josselin Poiret via Bug reports for GNU Guix
2022-08-29 19:37   ` Arun Isaac
2022-08-29 21:36     ` zimoun
2022-08-30 16:42       ` Arun Isaac
2022-08-30 17:20         ` zimoun
2022-08-29 14:59 ` zimoun
2022-08-29 19:41   ` Arun Isaac
2022-08-31 11:06     ` Ludovic Courtès
2022-08-31 13:15       ` zimoun
2022-09-01  7:42         ` Ludovic Courtès
2022-09-01  8:50           ` zimoun
2022-08-31 13:38       ` Arun Isaac

Code repositories for project(s) associated with this public inbox

	https://git.savannah.gnu.org/cgit/guix.git

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).