guix-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Proposal: prefetch tarballs in a batch


From: Nikita Karetnikov
Subject: Re: Proposal: prefetch tarballs in a batch
Date: Fri, 25 Apr 2014 01:20:21 +0400

I’m attaching the patch.  Several issues must be addressed before it can
be pushed:

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.)

   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.

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.

3. I’m planning to add ‘--dry-run’, which will simply print the list of
   needed derivations.  What options would you like to see implemented?

Attachment: prefetch.patch.4
Description: Text document

Attachment: pgpPROBSD5aXm.pgp
Description: PGP signature


reply via email to

[Prev in Thread] Current Thread [Next in Thread]