guix-devel
[Top][All Lists]
Advanced

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

Is 'guix build --sources=transitive' missing some sources?


From: Chris Marusich
Subject: Is 'guix build --sources=transitive' missing some sources?
Date: Sun, 26 Mar 2017 02:36:27 -0700

Hi,

I think 'guix build --sources=transitive' might not be including all
transitive sources.  Consider this example:

--8<---------------cut here---------------start------------->8---
$ guix build --sources=transitive hello
/gnu/store/hbdalsf5lpf01x4dcknwx6xbn6n5km6k-hello-2.10.tar.gz
/gnu/store/cz1b1hn763zppafmlxsrlj7fnxa8zcna-tar-1.29.tar.xz
/gnu/store/f63c6mjqqai6xwypx5qslvqc2d302yn5-gzip-1.8.tar.xz
/gnu/store/bjpalrv9f49d2k40p7ga0y6dwdys9w5j-bzip2-1.0.6.tar.gz
/gnu/store/1pcksb758j9v7srain0k3fqp57h9gwmj-xz-5.2.2.tar.gz
/gnu/store/r56rrdk6h0zwb1d2y28q3bk71n73z84m-file-5.28.tar.gz
/gnu/store/rbaa5s5jpy91npas89q3p8yasrc6mr1h-diffutils-3.5.tar.xz
/gnu/store/iaigwb3k7fg0v8zrwlb4yhrdsgin6ir7-patch-2.7.5.tar.xz
/gnu/store/g0mffc9c0nxbwf0a6j0akh0dvkd2sn6w-sed-4.2.2.tar.xz
/gnu/store/76q5cqkqrx7paxhq27m3izag07n1vjs4-findutils-4.6.0.tar.xz
/gnu/store/vgs8flhpxbkgx0hx54hnihpai7lma72j-gawk-4.1.4.tar.xz
/gnu/store/5q4yicgzxrv13gq4rai6h07s7xp75ws6-grep-2.25.tar.xz
/gnu/store/8dqf59312llnmln89ccas1saq0z4qwi7-coreutils-8.25.tar.xz
/gnu/store/2g7nf5h6hnsz1sharnqxfjz9m6k7224z-make-4.2.1.tar.xz
/gnu/store/xwanyg9972rpznx89ja38v01c8483392-bash-4.4.tar.gz
/gnu/store/iv2nz8r001lpric4kr2xq3459zwl8051-binutils-2.27.tar.xz
/gnu/store/z2s847iq14psryslylm1x4k71b0vx4ng-gcc-4.9.4.tar.xz
/gnu/store/m9jym12mhczjrslpycwi6ipw57v849pa-gmp-6.0.0a.tar.xz
/gnu/store/xg7ir7g2yvxj9ixmgy2kfds690h3f6gg-mpfr-3.1.4.tar.xz
/gnu/store/y9akh452n3p4w2v631nj0injx7y0d68x-mpc-1.0.3.tar.gz
/gnu/store/z8mm3izh1hgllm6mlqzycsrx5nfkvhxi-glibc-2.24.tar.xz
/gnu/store/51f2f2ck80migsfr2hwy4ds30966lifi-linux-libre-4.4.18-gnu.tar.xz
--8<---------------cut here---------------end--------------->8---

Note that the perl source is missing, even though perl is in the
transitive closure of references of hello's derivation (i.e., perl is a
build-time dependency of hello):

--8<---------------cut here---------------start------------->8---
$ guix gc --requisites $(guix build -d hello) | grep perl | grep tar
/gnu/store/s3ihdpsqpp1dyp0ksh3bqlz974s3lgmq-perl-5.24.0.tar.gz.drv
/gnu/store/7mn5srpvna3a2vlj5yrn7gl2cymxxxrz-perl-5.24.0.tar.xz-builder
/gnu/store/hf6a23lcbmcakm3hrmi9v1wqv9jj0hqz-perl-5.24.0.tar.xz.drv
--8<---------------cut here---------------end--------------->8---

The derivation that builds hello transitively references the derivation
that builds perl's source:

--8<---------------cut here---------------start------------->8---
$ guix gc --references $(guix build -d hello) | grep coreutil
/gnu/store/wyczskk2sn1hjcsivlj7h0vi3yqpynzf-coreutils-8.25.drv
$ guix gc --references 
/gnu/store/wyczskk2sn1hjcsivlj7h0vi3yqpynzf-coreutils-8.25.drv | grep perl
/gnu/store/h9ykhdm8zbxsfxcif0rsakf0dklzz17k-perl-5.24.0.drv
$ guix gc --references 
/gnu/store/h9ykhdm8zbxsfxcif0rsakf0dklzz17k-perl-5.24.0.drv | grep tar
/gnu/store/hf6a23lcbmcakm3hrmi9v1wqv9jj0hqz-perl-5.24.0.tar.xz.drv
--8<---------------cut here---------------end--------------->8---

This means that perl's source is required in order to build hello from
scratch.  In spite of that, perl's source is missing from the list of
transitive sources of hello.

Is this intended?  I expected 'guix build --sources=transitive hello' to
pre-fetch ALL the sources required to build hello, so I was surprised
that the perl source was not included.

-- 
Chris

Attachment: signature.asc
Description: PGP signature


reply via email to

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