From: ludo@gnu.org (Ludovic Courtès)
To: Nikita Karetnikov <nikita@karetnikov.org>
Cc: guix-devel@gnu.org
Subject: Re: Proposal: prefetch tarballs in a batch
Date: Fri, 25 Apr 2014 13:51:42 +0200 [thread overview]
Message-ID: <87oazpaapd.fsf@gnu.org> (raw)
In-Reply-To: <871twmo25m.fsf@karetnikov.org> (Nikita Karetnikov's message of "Fri, 25 Apr 2014 01:20:21 +0400")
Nikita Karetnikov <nikita@karetnikov.org> skribis:
> 1. ‘guix prefetch’ tries to configure and build some packages instead of
> just downloading them. I tried the following on a machine with the
> empty store:
>
> a. Ran ‘guix prefetch hello’. Some packages were downloaded and
> built (I gathered those are needed to download the other packages,
> so I didn’t write down the names. If I recall correctly, Guile
> was in that list.)
Yes, by default ‘guile-final’ is used to build derivations (including
download derivations), so that needs to be built before anything else
can be done. (And that involves building gcc, libc, etc. first.)
> b. Invoked ‘guix build hello’ without network access. The command
> succeeded. No questions here.
>
> c. Called ‘guix prefetch emacs’. These packages were configured and
> built: pkg-config, libunistring, ncurses, libatomic_ops, patch,
> tar, xz, gzip, zlib, which, gc, perl, m4, readline, libffi,
> texinfo, libtool, gmp, libtasn1, nettle, guile, gnutls.
>
> Are these essential, or is there an error in ‘guix prefetch’?
> According to the build logs, the install prefix of gmp is
> ‘/gnu/store/hpaz49xz76p4qmpjc9r33hni1w781y66-gmp-5.1.3’, which
> doesn’t appear in the lists provided by ‘guix prefetch hello’ and
> ‘guix prefetch emacs’. I’m not sure why it’s the case.
Perhaps these were just the prerequisites for ‘guile-final’ no?
> 2. I think it would be nice to output the location of a tarball after
> running ‘guix prefetch’, but I’m not sure how to get the relevant
> derivation. For ‘hello’, it’s neither
>
> (package-source-derivation store (package-source hello))
>
> nor
>
> (package-derivation store hello)
>
> because the derivation listed in the initial output of ‘guix prefetch
> hello’ differs. Of course, it’s possible to filter the list
> produced by
>
> (build-derivations
> store
> (map (lambda (drv)
> ;; (format #t " ~a~%" (derivation-file-name drv))
> (format #t " ~a~%" drv)
> drv)
> (derivations-to-prefetch
> store
> (package-derivation store package)))))
>
> But it’s error-prone, so I’d rather avoid that.
I don’t understand. You can do:
--8<---------------cut here---------------start------------->8---
scheme@(guile-user)> (derivation->output-path
(package-source-derivation s (package-source hello)))
$4 = "/gnu/store/070fnjll8hb3q2l4373bbahh2i1n2qhg-hello-2.9.tar.gz"
--8<---------------cut here---------------end--------------->8---
Isn’t it what you want?
> 3. I’m planning to add ‘--dry-run’, which will simply print the list of
> needed derivations.
I think this should use ‘show-what-to-build’, as in ‘guix build’ and
other commands, so that it would also show what other derivations need
to be built, such as those for ‘guile-final’.
> What options would you like to see implemented?
Probably all of ‘%standard-build-options’ from (guix scripts build) can
be made available?
Thanks for the nice work!
Ludo’.
next prev parent reply other threads:[~2014-04-25 11:51 UTC|newest]
Thread overview: 22+ messages / expand[flat|nested] mbox.gz Atom feed top
2014-03-27 23:25 Proposal: prefetch tarballs in a batch Nikita Karetnikov
2014-03-28 13:23 ` Ludovic Courtès
2014-04-01 23:23 ` Nikita Karetnikov
2014-04-02 12:57 ` Ludovic Courtès
2014-04-02 22:37 ` Nikita Karetnikov
2014-04-03 7:24 ` Ludovic Courtès
2014-04-09 22:29 ` Nikita Karetnikov
2014-04-10 8:21 ` Ludovic Courtès
2014-04-12 20:19 ` Nikita Karetnikov
2014-04-12 22:44 ` Ludovic Courtès
2014-04-24 21:20 ` Nikita Karetnikov
2014-04-25 11:51 ` Ludovic Courtès [this message]
2014-04-25 12:04 ` Ludovic Courtès
2014-05-06 12:37 ` Nikita Karetnikov
2014-05-06 20:02 ` Ludovic Courtès
2014-05-07 23:14 ` Nikita Karetnikov
2014-05-08 16:35 ` Ludovic Courtès
2014-05-11 14:52 ` Nikita Karetnikov
2014-05-11 19:17 ` Ludovic Courtès
2014-09-02 21:06 ` Ludovic Courtès
2014-09-02 22:05 ` Nikita Karetnikov
2014-09-02 21:04 ` Ludovic Courtès
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=87oazpaapd.fsf@gnu.org \
--to=ludo@gnu.org \
--cc=guix-devel@gnu.org \
--cc=nikita@karetnikov.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
Code repositories for project(s) associated with this external index
https://git.savannah.gnu.org/cgit/guix.git
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.