Subject: Re: bug#57559: guix pull fails on http status code 503

From: zimoun <[email-masked]>
Date: Tue, 06 Sep 2022 15:09:48 +0200

Hi Maxime,

On Mon, 05 Sep 2022 at 22:20, Maxime Devos <[email-masked]> wrote:
> On 05-09-2022 10:21, zimoun wrote:
>> On sam., 03 sept. 2022 at 19:27, Maxime Devos<[email-masked]>  wrote:
>>
>>>    * if some but not all channels are available, and there is at least
>>>      one updated channel --> log the missing channels, and update the
>>>      channels that_are_  available (but don't 'ignore' the missing
>>>      channels by removing them!).
>> What do you mean by «but don't 'ignore' the missing channels by removing
>> them!»?  Do you mean keep the last revision locally known for this
>> channel?
>
> I'm not sure what you're asking, because of the negatives.

[...]

> (It's not unlike double negatives! I first thought of the latter 
> interpretation but on second thought you might have meant the former.)

IIUC, you have hard time to parse the double-negative you wrote earlier
in this thread. :-)

> With "but don't ignore [...] by [...]", I meant that, yes.
>
> If you meant "don't ignore [...] by [...]", then no, with 'ignoring by 
> removing', I meant, literally removing them.  More concretely, a 
> situation like this:
>
>   * In the channels.scm, two channels are declared: guix and guix-foo.
>   * User does "guix pull"; Guix downloads the source code of guix and
>     guix-foo.
>   * Downloading guix failed (503).  As such, Guix decided to ignore the
>     guix channel, by removing it from the list of channels to build.
>     (The in-memory list I mean, I don't mean modifying the channels.smc
>     file)
>   * Guix tries building the guix-foo channel and installing it, without
>     the guix channel.
>   * This cannot work (the guix-foo channel uses modules from guix for
>     basic stuff like G-exps, packages, coreutils, ..., and it was the
>     removed guix channel that had things build-aux/build-self.scm which
>     is required for pulling).

The initial report by André is about:

--8<---------------cut here---------------start------------->8---
$ guix pull
Updating channel 'nonguix' from Git repository at 'https://gitlab.com/nonguix/nonguix'...
guix pull: error: Git error: unexpected http status code: 503
--8<---------------cut here---------------end--------------->8---

So the situation is more likely: Guix from Savannah is reachable and
guix-foo is not.

For sure, we can discuss the case when Guix is unavailable.  However,
the 'guix channel is special; see all conditionals using ’guix-channel?’.  

Well, %default-guix-channel is somehow a corner use-case when the
regular use-case seems about a failure of additional channels.

Cheers,
simon