GNU bug report logs -
#70339
Constructing hg-fetch fixed-output derivation requires Mercurial
Previous Next
Full log
View this message in rfc822 format
[Message part 1 (text/plain, inline)]
Your bug report
#70339: Constructing hg-fetch fixed-output derivation requires Mercurial
which was filed against the guix package, has been closed.
The explanation is attached below, along with your original report.
If you require more details, please reply to 70339 <at> debbugs.gnu.org.
--
70339: https://debbugs.gnu.org/cgi/bugreport.cgi?bug=70339
GNU Bug Tracking System
Contact help-debbugs <at> gnu.org with problems
[Message part 2 (message/rfc822, inline)]
Hi,
On ven., 12 avril 2024 at 16:05, Ludovic Courtès <ludovic.courtes <at> inria.fr> wrote:
> In this case, what’s happening is grafts: Guix downloads (or builds)
> Mercurial so it can compute its grafted derivation.
Ah indeed! Damned. :-)
Closing.
Cheers,
simon
[Message part 3 (message/rfc822, inline)]
Hi,
For instance,
--8<---------------cut here---------------start------------->8---
$ guix build -S -d hg-commitsigs
substitute: updating substitutes from 'https://ci.guix.gnu.org'... 100.0%
3,7 MB will be downloaded:
/gnu/store/6fya762sz5hjdj04vdn5g3v6zii6f11d-mercurial-6.2.2
substituting /gnu/store/6fya762sz5hjdj04vdn5g3v6zii6f11d-mercurial-6.2.2...
downloading from https://ci.guix.gnu.org/nar/lzip/6fya762sz5hjdj04vdn5g3v6zii6f11d-mercurial-6.2.2 ...
mercurial-6.2.2 3.5MiB 529KiB/s 00:07 ▕██████████████████▏ 100.0%
/gnu/store/pkb6zd9xfmxx6rsh4p7w3glh7xqg5sqy-hg-commitsigs-0.1.0-0.b53eb68-checkout.drv
--8<---------------cut here---------------end--------------->8---
and it is unexpected. The construction of the fixed-output derivation
does not need to download stuff; it only needs to compose stuff
detailing how to do. Any download (or build) must happen when running
the derivation itself.
The issue: later – say 1 or 2 years from now – the command:
guix time-machone --commit=929ddec -- build -S -d hg-commitsigs
will start to build all what Mercurial needs (python etc.). If for some
reasons*, only one of Mercurial dependencies fails then we are doomed.
( Context: I am working on a fixed-output translator; rely on
current strategies for downloading and do not require all the past
stack just for downloading source code. )
I think it comes from this part:
--8<---------------cut here---------------start------------->8---
(hg-fetch '#$(hg-reference-url ref)
'#$(hg-reference-changeset ref)
#$output
#:hg-command (string-append #+hg "/bin/hg")))
--8<---------------cut here---------------end--------------->8---
from ’hg-fetch’ in (guix hg-download). Here the #+hg is not required
because just before there is:
(set-path-environment-variable "PATH" '("bin")
(match '#+inputs
(((names dirs outputs ...) ...)
dirs)))
So relying on string "hg" should be enough; as it is done in
’git-fetch/in-band*’ for one example.
Do I miss something?
Cheers,
simon
*reasons of failures: See
https://guix.gnu.org/en/blog/2024/adventures-on-the-quest-for-long-term-reproducible-deployment
This bug report was last modified 1 year and 28 days ago.
Previous Next
GNU bug tracking system
Copyright (C) 1999 Darren O. Benham,
1997,2003 nCipher Corporation Ltd,
1994-97 Ian Jackson.