Subject: Re: bug#36781: Website manual generation stopped

From: Ludovic Courtès <[email-masked]>
Date: Fri, 16 Aug 2019 18:54:53 +0200

Hi Julien,

Julien Lepiller <[email-masked]> skribis:

> Le Fri, 26 Jul 2019 00:54:32 +0200,
> Ludovic Courtès <[email-masked]> a écrit :

[...]

>> Indeed it fails like this:
>> 
>> --8<---------------cut here---------------start------------->8---
>> ludo@berlin ~$ sudo su - static-web-site
>> -c /gnu/store/9w4bbd6gqya2g9zvwgs6qab6aqgbjbd3-update-guix-manual-devel
>> Backtrace: 7 (primitive-load
>> "/gnu/store/9w4bbd6gqya2g9zvwgs6qab6aqg…") In ice-9/eval.scm:
>>     619:8  6 (_ #f)
>>    626:19  5 (_ #<directory (guile-user) 2366140>)
>> In unknown file:
>>            4 (_ #<procedure 2dd2960 at ice-9/eval.scm:330:13 ()> #<…>
>> …) In guix/git.scm:
>>    240:29  3 (update-cached-checkout "https://git.sv.gnu.org/git/gu…"
>> …) In ice-9/boot-9.scm:
>>     841:4  2 (with-throw-handler _ _ _)
>> In git/clone.scm:
>>      41:8  1 (_ _ _ _)
>> In ice-9/boot-9.scm:
>>    752:25  0 (dispatch-exception _ _ _)
>> 
>> ice-9/boot-9.scm:752:25: In procedure dispatch-exception:
>> Git error: cross host redirect not allowed
>> --8<---------------cut here---------------end--------------->8---
>> 
>> So I think we have to change the repo URL in berlin.scm.
>> 
>> Ludo’.
>
> One way I can see to solve that issue is to specify a custome cache
> directory name, instead of the default one, which is a hash of the url.
> The reason why we use git.sv.gnu.org instead of git.savannah.gnu.org
> is that otherwise both repos have the same cache directory, so one wins
> over the other. But that hack doesn't scale if we want to generate more
> than two manual versions.
>
> Attached is a patch that adds a cache-directory field to the
> static-website-configuration record.

OK.

> Another solution is to fix (guix git) to also add the ref as part of
> the hash, so the cache directory is different for two different
> branches of the same repository.

I thought about doing that.  It’d work but it’d also be slightly
wasteful since branches of a repo typically have a lot in common.

Another option would be to compute the cache directory name like you
write, but only in the (sysadmin web) module.

WDYT?

Thanks,
Ludo’.