diff options
author | Ludovic Courtès <ludo@gnu.org> | 2019-11-17 23:10:34 +0100 |
---|---|---|
committer | Ludovic Courtès <ludo@gnu.org> | 2019-11-17 23:14:54 +0100 |
commit | 9c9982dc0c8c38ce3821b154b7e92509c1564317 (patch) | |
tree | c1e11b91d1bd5e6f5adb836262c871b618daedd7 /tests | |
parent | 16ac74033ae9f01e8be81c4f7f1857e13545bc2f (diff) | |
download | guix-9c9982dc0c8c38ce3821b154b7e92509c1564317.tar guix-9c9982dc0c8c38ce3821b154b7e92509c1564317.tar.gz |
guix build: Handle "guix build /….drv" correctly for non-existent derivations.
This lets the daemon substitute missing derivations, as in the example
at <https://bugs.gnu.org/38226>, instead of failing with ENOENT.
* guix/scripts/build.scm (options->things-to-build): In the
'derivation-path?' case, don't fail when 'read-derivation-from-file'
raises to ENOENT; return the empty list in that case.
(guix-build): Add non-existent '.drv' files to ITEMS.
Pass ITEMS in addition to DRV to 'build-derivations'.
* tests/guix-build.sh: Add test.
Diffstat (limited to 'tests')
-rw-r--r-- | tests/guix-build.sh | 7 |
1 files changed, 7 insertions, 0 deletions
diff --git a/tests/guix-build.sh b/tests/guix-build.sh index 62cdd5fe14..21b6af4395 100644 --- a/tests/guix-build.sh +++ b/tests/guix-build.sh @@ -42,6 +42,13 @@ out="`guix build "$drv"`" out2="`guix build -e '(@@ (gnu packages bootstrap) %bootstrap-guile)'`" test "$out" = "$out2" +# Passing the name of a .drv that doesn't exist. The daemon should try to +# substitute the .drv. Here we just look for the "cannot build missing +# derivation" error that indicates that the daemon did try to substitute the +# .drv. +guix build "$NIX_STORE_DIR/aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa-foo.drv" 2>&1 \ + | grep "missing derivation" + # Passing a URI. GUIX_DAEMON_SOCKET="file://$GUIX_STATE_DIRECTORY/daemon-socket/socket" \ guix build -e '(@@ (gnu packages bootstrap) %bootstrap-guile)' |