Subject: Re: bug#41069: cyclically dependent channels crashes guix pull

From: zimoun <[email-masked]>
Date: Mon, 4 May 2020 19:06:16 +0200

On Mon, 4 May 2020 at 18:23, Marius Bakke <[email-masked]> wrote:
>
> Martin Becze <[email-masked]> writes:
>
> > Cyclically dependent channels crashes guix pull. Cyclically dependent
> > channels probably shouldn't happen, but guix pull probably shouldn't go
> > into an endless loop and die either.
>
> Can you provide a channel configuration that reproduces this?

When one channel depends on another one which depends on the first.

This /tmp/channel1/ contains this .guix-channel

--8<---------------cut here---------------start------------->8---
(channel
 (version 0)
 (dependencies
  (channel
   (name channel2-from-channel1)
   (url "file:///tmp/channel2")
   (branch "master"))))
--8<---------------cut here---------------end--------------->8---

This /tmp/channel2/ contains this .guix-channel

--8<---------------cut here---------------start------------->8---
(channel
 (version 0)
 (dependencies
  (channel
   (name channel1-from-channel2)
   (url "file:///tmp/channel1")
   (branch "master"))))
--8<---------------cut here---------------end--------------->8---

And for example, the file 'my-channels.scm' contains:

--8<---------------cut here---------------start------------->8---
(list
 (channel
  (name 'channel1)
  (url "file:///tmp/channel1")
  (branch "master"))
 (channel
  (name 'channel2)
  (url "file:///tmp/channel2")
  (branch "master"))
 (channel
  (name 'guix)
  (url "https://git.savannah.gnu.org/git/guix.git")
  (commit "aea6ab2f4ca060e68f8539cd612b0ce088627557")))
--8<---------------cut here---------------end--------------->8---

Then guix pull -C /tmp/my-channels.scm will be "Updating ..." for ever. :-)

Hope that helps.

All the best,
simon