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 message dated Mon, 22 Apr 2024 02:22:00 +0200
with message-id <87bk626yc7.fsf <at> gmail.com>
and subject line Re: bug#70339: Constructing hg-fetch fixed-output derivation requires Mercurial
has caused the debbugs.gnu.org bug report #70339,
regarding Constructing hg-fetch fixed-output derivation requires Mercurial
to be marked as done.
(If you believe you have received this mail in error, please contact
help-debbugs <at> 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,
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
[Message part 3 (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
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.