No fallback to SWH for .guix-channel dependencies

  • Done
  • quality assurance status badge
Details
2 participants
  • Ludovic Courtès
  • Simon Tournier
Owner
unassigned
Submitted by
Simon Tournier
Severity
normal

Debbugs page

Simon Tournier wrote 2 years ago
(address . bug-guix@gnu.org)
875y4pq2zw.fsf@gmail.com
Hi,

Consider this channels.scm file:

Toggle snippet (15 lines)
$ cat /tmp/channels.scm
(list (channel
(name 'guix)
(url "https://git.savannah.gnu.org/git/guix.git")
(branch "master")
(commit
"710d9050524213a83e4ce9efe9765d7fbc233839"))
(channel
(name 'bimsb)
(url "https://github.com/BIMSBbioinfo/guix-bimsb.git")
(branch "master")
(commit
"240a599f77dab7dcb8d2ed091b90056e58a46c51")))

Then, assume Github is down forever. Guix will lookup to Software
Heritage (SWH) for the channel bimsb. So far, so good. However, then
it fails:

Toggle snippet (8 lines)
$ guix time-machine -C /tmp/channels.scm -- describe
Updating channel 'guix' from Git repository at 'https://git.savannah.gnu.org/git/guix.git'...
Updating channel 'bimsb' from Git repository at 'https://github.com/BIMSBbioinfo/guix-bimsb.git'...
/tmp/channels.scm:95:6: warning: channel 'bimsb' lacks 'introduction' field but '.guix-authorizations' found
Updating channel 'guix-past' from Git repository at 'https://gitlab.inria.fr/guix-hpc/guix-past'...
guix time-machine: error: Git error: failed to resolve address for gitlab.inria.fr: Name or service not known

The main reason is because the channel bimsb contains the file
.guix-channel which reads,

Toggle snippet (11 lines)
(channel
(version 0)
(dependencies
(channel
(name guix-past)
(url "https://gitlab.inria.fr/guix-hpc/guix-past"))
(channel
(name guix-science)
(url "https://github.com/guix-science/guix-science.git"))))

And Guix is not able to fallback to SWH for these channels.

Corollary, even if it was able, what is the correct revision of
the guix-past or guix-science channels?

This report is about two bugs:

1. transparent fallback to SWH for .guix-channel dependencies

2. pin all channels when running “guix describe”, even the ones from
.guix-channel dependencies.

This #2 is annoying because it makes the workflow:

guix time-machine -C channels.scm -- shell -m manifest.scm

unpractical when user relies on channels with dependencies.

Cheers,
simon
Ludovic Courtès wrote 2 years ago
(name . Simon Tournier)(address . zimon.toutoune@gmail.com)(address . 65740@debbugs.gnu.org)
87wmx01jr8.fsf@gnu.org
Hi,

Simon Tournier <zimon.toutoune@gmail.com> skribis:

Toggle quote (15 lines)
> The main reason is because the channel bimsb contains the file
> .guix-channel which reads,
>
> (channel
> (version 0)
> (dependencies
> (channel
> (name guix-past)
> (url "https://gitlab.inria.fr/guix-hpc/guix-past"))
> (channel
> (name guix-science)
> (url "https://github.com/guix-science/guix-science.git"))))
>
> And Guix is not able to fallback to SWH for these channels.

Yes, but that’s expected: we’re not specifying any commit, only the URL,
so there cannot be any sort of fallback.

Toggle quote (10 lines)
> Corollary, even if it was able, what is the correct revision of
> the guix-past or guix-science channels?
>
> This report is about two bugs:
>
> 1. transparent fallback to SWH for .guix-channel dependencies
>
> 2. pin all channels when running “guix describe”, even the ones from
> .guix-channel dependencies.

#1 happens, but only when channels are pinned (returned by ‘guix
#describe’).

Re #2, I don’t think there’s such a bug, is there? In the example
below, ‘guix describe’ shows 4 channels (including dependencies), not 2:

Toggle snippet (35 lines)
$ ./pre-inst-env guix time-machine -C <(echo '(cons (channel (name (quote bimsb)) (url "https://github.com/BIMSBbioinfo/guix-bimsb.git")) %default-channels)') -- describe -f channels

[...]

(list (channel
(name 'guix)
(url "https://git.savannah.gnu.org/git/guix.git")
(branch "master")
(commit
"4dd33fc62899134606f36f92594cf160b972f685")
(introduction
(make-channel-introduction
"9edb3f66fd807b096b48283debdcddccfea34bad"
(openpgp-fingerprint
"BBB0 2DDF 2CEA F6A8 0D1D E643 A2A0 6DF2 A33A 54FA"))))
(channel
(name 'bimsb)
(url "https://github.com/BIMSBbioinfo/guix-bimsb.git")
(branch "master")
(commit
"240a599f77dab7dcb8d2ed091b90056e58a46c51"))
(channel
(name 'guix-science)
(url "https://github.com/guix-science/guix-science.git")
(branch "master")
(commit
"1ad5192cff0d7b34a2f74592c6896f901d1c9ccd"))
(channel
(name 'guix-past)
(url "https://gitlab.inria.fr/guix-hpc/guix-past")
(branch "master")
(commit
"1e25b23faa6b1716deaf7e1782becb5da6855942")))

Thanks,
Ludo’.
Simon Tournier wrote 2 years ago
(name . Ludovic Courtès)(address . ludo@gnu.org)(address . 65740-done@debbugs.gnu.org)
86o7ibslw8.fsf@gmail.com
Hi,

On Fri, 08 Sep 2023 at 22:40, Ludovic Courtès <ludo@gnu.org> wrote:

Toggle quote (13 lines)
>> This report is about two bugs:
>>
>> 1. transparent fallback to SWH for .guix-channel dependencies
>>
>> 2. pin all channels when running “guix describe”, even the ones from
>> .guix-channel dependencies.
>
> #1 happens, but only when channels are pinned (returned by ‘guix
> #describe’).
>
> Re #2, I don’t think there’s such a bug, is there? In the example
> below, ‘guix describe’ shows 4 channels (including dependencies), not 2:

My bad!

I had probably not done what I always recommend: “guix describe“.

Sorry for the noise.

Cheers,
simon
Closed
?
Your comment

This issue is archived.

To comment on this conversation send an email to 65740@debbugs.gnu.org

To respond to this issue using the mumi CLI, first switch to it
mumi current 65740
Then, you may apply the latest patchset in this issue (with sign off)
mumi am -- -s
Or, compose a reply to this issue
mumi compose
Or, send patches to this issue
mumi send-email *.patch
You may also tag this issue. See list of standard tags. For example, to set the confirmed and easy tags
mumi command -t +confirmed -t +easy
Or, remove the moreinfo tag and set the help tag
mumi command -t -moreinfo -t +help