* bug#27032: make check fails for Guix 0.13.0
@ 2017-05-22 22:51 William
2017-05-23 13:21 ` ng0
2017-05-24 11:44 ` Ludovic Courtès
0 siblings, 2 replies; 3+ messages in thread
From: William @ 2017-05-22 22:51 UTC (permalink / raw)
To: 27032
[-- Attachment #1: Type: text/plain, Size: 520 bytes --]
Hi,
I am trying to do a fresh install of GuixSD 0.13.0 (using UEFI if it's
important), after running "guix system init /mnt/etc/config.scm /mnt"
the "make check" stage of guix fails.
It fails in "tests/store.scm", specifically the "test-name: dead path
can be explicitly collected" test.
I have attached the test-suite.log file (can also be found at
https://pastebin.com/HEAUF2DE).
Another user on IRC also had and issue that sounds similar: (but on a
VM) https://gnunet.org/bot/log/guix/2017-05-22#T1394937
Thanks
[-- Attachment #2: test-suite.log --]
[-- Type: text/x-log, Size: 432984 bytes --]
=================================
GNU Guix : ./test-suite.log
=================================
# TOTAL: 708
# PASS: 674
# SKIP: 32
# XFAIL: 0
# FAIL: 2
# XPASS: 0
# ERROR: 0
.. contents:: :depth: 2
SKIP: tests/base32
==================
sh: nix-hash: command not found
test-name: bytevector->base32-string
location: /tmp/guix-build-guix-0.13.0.drv-0/source/tests/base32.scm:48
source:
+ (test-assert
+ "bytevector->base32-string"
+ (fold (lambda (bv expected result)
+ (and result
+ (string=?
+ (bytevector->base32-string bv)
+ expected)))
+ #t
+ (map string->utf8
+ '("" "f" "fo" "foo" "foob" "fooba" "foobar"))
+ '(""
+ "my"
+ "mzxq"
+ "mzxw6"
+ "mzxw6yq"
+ "mzxw6ytb"
+ "mzxw6ytboi")))
actual-value: #t
result: PASS
test-name: base32-string->bytevector
location: /tmp/guix-build-guix-0.13.0.drv-0/source/tests/base32.scm:65
source:
+ (test-assert
+ "base32-string->bytevector"
+ (every (lambda (bv)
+ (equal?
+ (base32-string->bytevector
+ (bytevector->base32-string bv))
+ bv))
+ (map string->utf8
+ '("" "f" "fo" "foo" "foob" "fooba" "foobar"))))
actual-value: #t
result: PASS
test-name: nix-base32-string->bytevector
location: /tmp/guix-build-guix-0.13.0.drv-0/source/tests/base32.scm:73
source:
+ (test-assert
+ "nix-base32-string->bytevector"
+ (every (lambda (bv)
+ (equal?
+ (nix-base32-string->bytevector
+ (bytevector->nix-base32-string bv))
+ bv))
+ (map string->utf8
+ '("" "f" "fo" "foo" "foob" "fooba" "foobar"))))
actual-value: #t
result: PASS
test-name: &invalid-base32-character
location: /tmp/guix-build-guix-0.13.0.drv-0/source/tests/base32.scm:81
source:
+ (test-equal
+ "&invalid-base32-character"
+ #\e
+ (guard (c ((invalid-base32-character? c)
+ (invalid-base32-character-value c)))
+ (nix-base32-string->bytevector
+ (string-append (make-string 51 #\a) "e"))))
expected-value: #\e
actual-value: #\e
result: PASS
test-name: sha256 & bytevector->nix-base32-string
location: /tmp/guix-build-guix-0.13.0.drv-0/source/tests/base32.scm:92
source:
+ (test-assert
+ "sha256 & bytevector->nix-base32-string"
+ (let ((file (search-path %load-path "tests/test.drv")))
+ (equal?
+ (bytevector->nix-base32-string
+ (sha256
+ (call-with-input-file file get-bytevector-all)))
+ (let* ((c (format
+ #f
+ "~a --type sha256 --base32 --flat \"~a\""
+ %nix-hash
+ file))
+ (p (open-input-pipe c))
+ (l (read-line p)))
+ (close-pipe p)
+ l))))
result: SKIP
SKIP: tests/cpio
================
random seed for tests: 1495493959
test-name: file->cpio-header + write-cpio-header + read-cpio-header
location: /tmp/guix-build-guix-0.13.0.drv-0/source/tests/cpio.scm:37
source:
+ (test-assert
+ "file->cpio-header + write-cpio-header + read-cpio-header"
+ (let* ((file (search-path %load-path "guix.scm"))
+ (header (file->cpio-header file)))
+ (call-with-values
+ (lambda () (open-bytevector-output-port))
+ (lambda (port get-bv)
+ (write-cpio-header header port)
+ (let ((port (open-bytevector-input-port (get-bv))))
+ (equal? header (read-cpio-header port)))))))
actual-value: #t
result: PASS
test-name: bit-identical to GNU cpio's output
location: /tmp/guix-build-guix-0.13.0.drv-0/source/tests/cpio.scm:49
source:
+ (test-assert
+ "bit-identical to GNU cpio's output"
+ (call-with-temporary-output-file
+ (lambda (link _)
+ (delete-file link)
+ (symlink "chbouib" link)
+ (let ((files (cons* "/"
+ (canonicalize-path
+ (dirname (search-path %load-path "guix.scm")))
+ link
+ (map (compose
+ canonicalize-path
+ (cut search-path %load-path <>))
+ '("guix.scm"
+ "guix/build/syscalls.scm"
+ "guix/packages.scm")))))
+ (call-with-temporary-output-file
+ (lambda (ref-file _)
+ (let ((pipe (open-pipe*
+ OPEN_WRITE
+ %cpio-program
+ "-o"
+ "-O"
+ ref-file
+ "-H"
+ "newc"
+ "--null")))
+ (for-each
+ (lambda (file) (format pipe "~a\x00" file))
+ files)
+ (and (zero? (close-pipe pipe))
+ (call-with-temporary-output-file
+ (lambda (file port)
+ (write-cpio-archive files port)
+ (close-port port)
+ (or (file=? ref-file file)
+ (throw 'cpio-archives-differ
+ files
+ ref-file
+ file
+ (stat:size (stat ref-file))
+ (stat:size (stat file))))))))))))))
result: SKIP
SKIP: tests/builders
====================
random seed for tests: 1495493745
test-name: url-fetch
location: /tmp/guix-build-guix-0.13.0.drv-0/source/tests/builders.scm:66
source:
+ (test-assert
+ "url-fetch"
+ (let* ((url '("http://ftp.gnu.org/gnu/hello/hello-2.8.tar.gz"
+ "ftp://ftp.gnu.org/gnu/hello/hello-2.8.tar.gz"))
+ (hash (nix-base32-string->bytevector
+ "0wqd8sjmxfskrflaxywc7gqw7sfawrfvdxd9skxawzfgyy0pzdz6"))
+ (drv (url-fetch*
+ %store
+ url
+ 'sha256
+ hash
+ #:guile
+ %bootstrap-guile))
+ (out-path (derivation->output-path drv)))
+ (and (build-derivations %store (list drv))
+ (file-exists? out-path)
+ (valid-path? %store out-path))))
result: SKIP
test-name: url-fetch, file
location: /tmp/guix-build-guix-0.13.0.drv-0/source/tests/builders.scm:78
source:
+ (test-assert
+ "url-fetch, file"
+ (let* ((file (search-path %load-path "guix.scm"))
+ (hash (call-with-input-file file port-sha256))
+ (out (url-fetch* %store file 'sha256 hash)))
+ (and (file-exists? out) (valid-path? %store out))))
actual-value: #t
result: PASS
test-name: url-fetch, file URI
location: /tmp/guix-build-guix-0.13.0.drv-0/source/tests/builders.scm:85
source:
+ (test-assert
+ "url-fetch, file URI"
+ (let* ((file (search-path %load-path "guix.scm"))
+ (hash (call-with-input-file file port-sha256))
+ (out (url-fetch*
+ %store
+ (string-append
+ "file://"
+ (canonicalize-path file))
+ 'sha256
+ hash)))
+ (and (file-exists? out) (valid-path? %store out))))
actual-value: #t
result: PASS
test-name: gnu-build-system
location: /tmp/guix-build-guix-0.13.0.drv-0/source/tests/builders.scm:94
source:
+ (test-assert
+ "gnu-build-system"
+ (build-system? gnu-build-system))
actual-value: #t
result: PASS
test-name: gnu-build
location: /tmp/guix-build-guix-0.13.0.drv-0/source/tests/builders.scm:99
source:
+ (test-assert
+ "gnu-build"
+ (let* ((url "http://ftp.gnu.org/gnu/hello/hello-2.8.tar.gz")
+ (hash (nix-base32-string->bytevector
+ "0wqd8sjmxfskrflaxywc7gqw7sfawrfvdxd9skxawzfgyy0pzdz6"))
+ (tarball
+ (url-fetch*
+ %store
+ url
+ 'sha256
+ hash
+ #:guile
+ %bootstrap-guile))
+ (build (gnu-build
+ %store
+ "hello-2.8"
+ `(("source" ,tarball) ,@%bootstrap-inputs)
+ #:guile
+ %bootstrap-guile
+ #:search-paths
+ %bootstrap-search-paths))
+ (out (derivation->output-path build)))
+ (and (build-derivations
+ %store
+ (list (pk 'hello-drv build)))
+ (valid-path? %store out)
+ (file-exists? (string-append out "/bin/hello")))))
result: SKIP
SKIP: tests/derivations
=======================
random seed for tests: 1495493721
@ build-started /tmp/guix-tests/store/vcj9833sk577wd7qxzvmgqcfbf9b4sjz-foo.drv - x86_64-linux /tmp/guix-tests/var/log/guix/drvs/vc//j9833sk577wd7qxzvmgqcfbf9b4sjz-foo.drv.bz2
@ build-succeeded /tmp/guix-tests/store/vcj9833sk577wd7qxzvmgqcfbf9b4sjz-foo.drv -
test-name: parse & export
location: /tmp/guix-build-guix-0.13.0.drv-0/source/tests/derivations.scm:87
source:
+ (test-assert
+ "parse & export"
+ (let* ((f (search-path %load-path "tests/test.drv"))
+ (b1 (call-with-input-file f get-bytevector-all))
+ (d1 (read-derivation (open-bytevector-input-port b1)))
+ (b2 (call-with-bytevector-output-port
+ (cut write-derivation d1 <>)))
+ (d2 (read-derivation (open-bytevector-input-port b2))))
+ (and (equal? b1 b2) (equal? d1 d2))))
actual-value: #t
result: PASS
test-name: add-to-store, flat
location: /tmp/guix-build-guix-0.13.0.drv-0/source/tests/derivations.scm:98
source:
+ (test-assert
+ "add-to-store, flat"
+ (let* ((file (search-path
+ %load-path
+ "language/tree-il/spec.scm"))
+ (drv (add-to-store
+ %store
+ "flat-test"
+ #f
+ "sha256"
+ file)))
+ (and (eq? 'regular (stat:type (stat drv)))
+ (valid-path? %store drv)
+ (equal?
+ (call-with-input-file file get-bytevector-all)
+ (call-with-input-file drv get-bytevector-all)))))
actual-value: #t
result: PASS
test-name: add-to-store, recursive
location: /tmp/guix-build-guix-0.13.0.drv-0/source/tests/derivations.scm:106
source:
+ (test-assert
+ "add-to-store, recursive"
+ (let* ((dir (dirname
+ (search-path
+ %load-path
+ "language/tree-il/spec.scm")))
+ (drv (add-to-store
+ %store
+ "dir-tree-test"
+ #t
+ "sha256"
+ dir)))
+ (and (eq? 'directory (stat:type (stat drv)))
+ (valid-path? %store drv)
+ (equal?
+ (directory-contents dir)
+ (directory-contents drv)))))
actual-value: #t
result: PASS
test-name: derivation with no inputs
location: /tmp/guix-build-guix-0.13.0.drv-0/source/tests/derivations.scm:114
source:
+ (test-assert
+ "derivation with no inputs"
+ (let* ((builder
+ (add-text-to-store
+ %store
+ "my-builder.sh"
+ "echo hello, world\n"
+ '()))
+ (drv (derivation
+ %store
+ "foo"
+ %bash
+ `("-e" ,builder)
+ #:env-vars
+ '(("HOME" . "/homeless")))))
+ (and (store-path? (derivation-file-name drv))
+ (valid-path? %store (derivation-file-name drv)))))
actual-value: #t
result: PASS
test-name: build derivation with 1 source
location: /tmp/guix-build-guix-0.13.0.drv-0/source/tests/derivations.scm:124
source:
+ (test-assert
+ "build derivation with 1 source"
+ (let* ((builder
+ (add-text-to-store
+ %store
+ "my-builder.sh"
+ "echo hello, world > \"$out\"\n"
+ '()))
+ (drv (derivation
+ %store
+ "foo"
+ %bash
+ `(,builder)
+ #:env-vars
+ '(("HOME" . "/homeless")
+ ("zzz" . "Z!")
+ ("AAA" . "A!"))
+ #:inputs
+ `((,%bash) (,builder))))
+ (succeeded?
+ (build-derivations %store (list drv))))
+ (and succeeded?
+ (let ((path (derivation->output-path drv)))
+ (and (valid-path? %store path)
+ (string=?
+ (call-with-input-file path read-line)
+ "hello, world"))))))
actual-value: #t
result: PASS
test-name: derivation with local file as input
location: /tmp/guix-build-guix-0.13.0.drv-0/source/tests/derivations.scm:142
source:
+ (test-assert
+ "derivation with local file as input"
+ (let* ((builder
+ (add-text-to-store
+ %store
+ "my-builder.sh"
+ "(while read line ; do echo \"$line\" ; done) < $in > $out"
+ '()))
+ (input @ build-started /tmp/guix-tests/store/fjv236z7l209d8zz9z8jxmnw3dfi8lam-derivation-with-input-file.drv - x86_64-linux /tmp/guix-tests/var/log/guix/drvs/fj//v236z7l209d8zz9z8jxmnw3dfi8lam-derivation-with-input-file.drv.bz2
@ build-succeeded /tmp/guix-tests/store/fjv236z7l209d8zz9z8jxmnw3dfi8lam-derivation-with-input-file.drv -
@ build-started /tmp/guix-tests/store/p81vnkbra9z5w45hg0hni5l3yf596ja2-fails.drv - x86_64-linux /tmp/guix-tests/var/log/guix/drvs/p8//1vnkbra9z5w45hg0hni5l3yf596ja2-fails.drv.bz2
builder for `/tmp/guix-tests/store/p81vnkbra9z5w45hg0hni5l3yf596ja2-fails.drv' failed with exit code 1
@ build-failed /tmp/guix-tests/store/p81vnkbra9z5w45hg0hni5l3yf596ja2-fails.drv - 1 builder for `/tmp/guix-tests/store/p81vnkbra9z5w45hg0hni5l3yf596ja2-fails.drv' failed with exit code 1
@ build-started /tmp/guix-tests/store/kn0gx5na8k2nilq6c362bmavywnilkhq-guile-bootstrap-2.0.drv - x86_64-linux /tmp/guix-tests/var/log/guix/drvs/kn//0gx5na8k2nilq6c362bmavywnilkhq-guile-bootstrap-2.0.drv.bz2
unpacking bootstrap Guile to '/tmp/guix-tests/store/7y0q8n6zv41lr9viybhihlcmhri6939f-guile-bootstrap-2.0'...
./
./share/
./share/guile/
./share/guile/2.0/
./share/guile/2.0/system/
./share/guile/2.0/system/xref.scm
./share/guile/2.0/system/foreign.scm
./share/guile/2.0/system/repl/
./share/guile/2.0/system/repl/error-handling.scm
./share/guile/2.0/system/repl/debug.scm
./share/guile/2.0/system/repl/describe.scm
./share/guile/2.0/system/repl/common.scm
./share/guile/2.0/system/repl/command.scm
./share/guile/2.0/system/repl/server.scm
./share/guile/2.0/system/repl/repl.scm
./share/guile/2.0/system/base/
./share/guile/2.0/system/base/lalr.upstream.scm
./share/guile/2.0/system/base/pmatch.scm
./share/guile/2.0/system/base/lalr.scm
./share/guile/2.0/system/base/language.scm
./share/guile/2.0/system/base/syntax.scm
./share/guile/2.0/system/base/compile.scm
./share/guile/2.0/system/base/ck.scm
./share/guile/2.0/system/base/message.scm
./share/guile/2.0/system/base/target.scm
./share/guile/2.0/system/vm/
./share/guile/2.0/system/vm/trace.scm
./share/guile/2.0/system/vm/trap-state.scm
./share/guile/2.0/system/vm/vm.scm
./share/guile/2.0/system/vm/coverage.scm
./share/guile/2.0/system/vm/program.scm
./share/guile/2.0/system/vm/objcode.scm
./share/guile/2.0/system/vm/traps.scm
./share/guile/2.0/system/vm/inspect.scm
./share/guile/2.0/system/vm/instruction.scm
./share/guile/2.0/system/vm/frame.scm
./share/guile/2.0/scripts/
./share/guile/2.0/scripts/scan-api.scm
./share/guile/2.0/scripts/autofrisk.scm
./share/guile/2.0/scripts/snarf-check-and-output-texi.scm
./share/guile/2.0/scripts/read-rfc822.scm
./share/guile/2.0/scripts/read-text-outline.scm
./share/guile/2.0/scripts/help.scm
./share/guile/2.0/scripts/frisk.scm
./share/guile/2.0/scripts/punify.scm
./share/guile/2.0/scripts/lint.scm
./share/guile/2.0/scripts/disassemble.scm
./share/guile/2.0/scripts/summarize-guile-TODO.scm
./share/guile/2.0/scripts/generate-autoload.scm
./share/guile/2.0/scripts/display-commentary.scm
./share/guile/2.0/scripts/compile.scm
./share/guile/2.0/scripts/api-diff.scm
./share/guile/2.0/scripts/use2dot.scm
./share/guile/2.0/scripts/doc-snarf.scm
./share/guile/2.0/scripts/read-scheme-source.scm
./share/guile/2.0/scripts/snarf-guile-m4-docs.scm
./share/guile/2.0/scripts/list.scm
./share/guile/2.0/texinfo/
./share/guile/2.0/texinfo/indexing.scm
./share/guile/2.0/texinfo/html.scm
./share/guile/2.0/texinfo/docbook.scm
./share/guile/2.0/texinfo/serialize.scm
./share/guile/2.0/texinfo/reflection.scm
./share/guile/2.0/texinfo/plain-text.scm
./share/guile/2.0/texinfo/string-utils.scm
./share/guile/2.0/ice-9/
./share/guile/2.0/ice-9/documentation.scm
./share/guile/2.0/ice-9/scm-style-repl.scm
./share/guile/2.0/ice-9/time.scm
./share/guile/2.0/ice-9/format.scm
./share/guile/2.0/ice-9/networking.scm
./share/guile/2.0/ice-9/getopt-long.scm
./share/guile/2.0/ice-9/vlist.scm
./share/guile/2.0/ice-9/psyntax.scm
./share/guile/2.0/ice-9/gap-buffer.scm
./share/guile/2.0/ice-9/and-let-star.scm
./share/guile/2.0/ice-9/posix.scm
./share/guile/2.0/ice-9/ls.scm
./share/guile/2.0/ice-9/syncase.scm
./share/guile/2.0/ice-9/save-stack.scm
./share/guile/2.0/ice-9/stack-catch.scm
./share/guile/2.0/ice-9/futures.scm
./share/guile/2.0/ice-9/debug.scm
./share/guile/2.0/ice-9/pretty-print.scm
./share/guile/2.0/ice-9/mapping.scm
./share/guile/2.0/ice-9/occam-channel.scm
./share/guile/2.0/ice-9/top-repl.scm
./share/guile/2.0/ice-9/boot-9.scm
./share/guile/2.0/ice-9/string-fun.scm
./share/guile/2.0/ice-9/i18n.scm
./share/guile/2.0/ice-9/match.upstream.scm
./share/guile/2.0/ice-9/streams.scm
./share/guile/2.0/ice-9/lineio.scm
./share/guile/2.0/ice-9/threads.scm
./share/guile/2.0/ice-9/weak-vector.scm
./share/guile/2.0/ice-9/history.scm
./share/guile/2.0/ice-9/expect.scm
./share/guile/2.0/ice-9/poll.scm
./share/guile/2.0/ice-9/popen.scm
./share/guile/2.0/ice-9/control.scm
./share/guile/2.0/ice-9/session.scm
./share/guile/2.0/ice-9/ftw.scm
./share/guile/2.0/ice-9/local-eval.scm
./share/guile/2.0/ice-9/receive.scm
./share/guile/2.0/ice-9/safe-r5rs.scm
./share/guile/2.0/ice-9/calling.scm
./share/guile/2.0/ice-9/curried-definitions.scm
./share/guile/2.0/ice-9/eval-string.scm
./share/guile/2.0/ice-9/q.scm
./share/guile/2.0/ice-9/serialize.scm
./share/guile/2.0/ice-9/quasisyntax.scm
./share/guile/2.0/ice-9/slib.scm
./share/guile/2.0/ice-9/hcons.scm
./share/guile/2.0/ice-9/rw.scm
./share/guile/2.0/ice-9/regex.scm
./share/guile/2.0/ice-9/match.scm
./share/guile/2.0/ice-9/buffered-input.scm
./share/guile/2.0/ice-9/iconv.scm
./share/guile/2.0/ice-9/poe.scm
./share/guile/2.0/ice-9/common-list.scm
./share/guile/2.0/ice-9/r5rs.scm
./share/guile/2.0/ice-9/command-line.scm
./share/guile/2.0/ice-9/deprecated.scm
./share/guile/2.0/ice-9/psyntax-pp.scm
./share/guile/2.0/ice-9/null.scm
./share/guile/2.0/ice-9/optargs.scm
./share/guile/2.0/ice-9/rdelim.scm
./share/guile/2.0/ice-9/runq.scm
./share/guile/2.0/ice-9/safe.scm
./share/guile/2.0/ice-9/channel.scm
./share/guile/2.0/ice-9/readline.scm
./share/guile/2.0/ice-9/binary-ports.scm
./share/guile/2.0/ice-9/eval.scm
./share/guile/2.0/ice-9/r4rs.scm
./share/guile/2.0/ice-9/r6rs-libraries.scm
./share/guile/2.0/ice-9/list.scm
./share/guile/2.0/language/
./share/guile/2.0/language/elisp/
./share/guile/2.0/language/elisp/compile-tree-il.scm
./share/guile/2.0/language/elisp/bindings.scm
./share/guile/2.0/language/elisp/runtime.scm
./share/guile/2.0/language/elisp/lexer.scm
./share/guile/2.0/language/elisp/spec.scm
./share/guile/2.0/language/elisp/runtime/
./share/guile/2.0/language/elisp/runtime/macros.scm
./share/guile/2.0/language/elisp/runtime/function-slot.scm
./share/guile/2.0/language/elisp/runtime/subrs.scm
./share/guile/2.0/language/elisp/runtime/value-slot.scm
./share/guile/2.0/language/elisp/parser.scm
./share/guile/2.0/language/assembly/
./share/guile/2.0/language/assembly/compile-bytecode.scm
./share/guile/2.0/language/assembly/disassemble.scm
./share/guile/2.0/language/assembly/spec.scm
./share/guile/2.0/language/assembly/decompile-bytecode.scm
./share/guile/2.0/language/scheme/
./share/guile/2.0/language/scheme/compile-tree-il.scm
./share/guile/2.0/language/scheme/decompile-tree-il.scm
./share/guile/2.0/language/scheme/spec.scm
./share/guile/2.0/language/brainfuck/
./share/guile/2.0/language/brainfuck/compile-tree-il.scm
./share/guile/2.0/language/brainfuck/compile-scheme.scm
./share/guile/2.0/language/brainfuck/spec.scm
./share/guile/2.0/language/brainfuck/parse.scm
./share/guile/2.0/language/objcode/
./share/guile/2.0/language/objcode/spec.scm
./share/guile/2.0/language/assembly.scm
./share/guile/2.0/language/bytecode/
./share/guile/2.0/language/bytecode/spec.scm
./share/guile/2.0/language/glil/
./share/guile/2.0/language/glil/spec.scm
./share/guile/2.0/language/glil/compile-assembly.scm
./share/guile/2.0/language/tree-il/
./share/guile/2.0/language/tree-il/analyze.scm
./share/guile/2.0/language/tree-il/inline.scm
./share/guile/2.0/language/tree-il/debug.scm
./share/guile/2.0/language/tree-il/primitives.scm
./share/guile/2.0/language/tree-il/optimize.scm
./share/guile/2.0/language/tree-il/fix-letrec.scm
./share/guile/2.0/language/tree-il/spec.scm
./share/guile/2.0/language/tree-il/peval.scm
./share/guile/2.0/language/tree-il/compile-glil.scm
./share/guile/2.0/language/tree-il/cse.scm
./share/guile/2.0/language/tree-il/canonicalize.scm
./share/guile/2.0/language/tree-il/effects.scm
./share/guile/2.0/language/ecmascript/
./share/guile/2.0/language/ecmascript/base.scm
./share/guile/2.0/language/ecmascript/compile-tree-il.scm
./share/guile/2.0/language/ecmascript/function.scm
./share/guile/2.0/language/ecmascript/array.scm
./share/guile/2.0/language/ecmascript/tokenize.scm
./share/guile/2.0/language/ecmascript/spec.scm
./share/guile/2.0/language/ecmascript/impl.scm
./share/guile/2.0/language/ecmascript/parse.scm
./share/guile/2.0/language/value/
./share/guile/2.0/language/value/spec.scm
./share/guile/2.0/language/glil.scm
./share/guile/2.0/language/tree-il.scm
./share/guile/2.0/rnrs.scm
./share/guile/2.0/statprof.scm
./share/guile/2.0/web/
./share/guile/2.0/web/client.scm
./share/guile/2.0/web/response.scm
./share/guile/2.0/web/uri.scm
./share/guile/2.0/web/server/
./share/guile/2.0/web/server/http.scm
./share/guile/2.0/web/request.scm
./share/guile/2.0/web/server.scm
./share/guile/2.0/web/http.scm
./share/guile/2.0/oop/
./share/guile/2.0/oop/goops.scm
./share/guile/2.0/oop/goops/
./share/guile/2.0/oop/goops/save.scm
./share/guile/2.0/oop/goops/stklos.scm
./share/guile/2.0/oop/goops/accessors.scm
./share/guile/2.0/oop/goops/describe.scm
./share/guile/2.0/oop/goops/dispatch.scm
./share/guile/2.0/oop/goops/active-slot.scm
./share/guile/2.0/oop/goops/composite-slot.scm
./share/guile/2.0/oop/goops/compile.scm
./share/guile/2.0/oop/goops/internal.scm
./share/guile/2.0/oop/goops/util.scm
./share/guile/2.0/oop/goops/simple.scm
./share/guile/2.0/guile-procedures.txt
./share/guile/2.0/texinfo.scm
./share/guile/2.0/rnrs/
./share/guile/2.0/rnrs/base.scm
./share/guile/2.0/rnrs/records/
./share/guile/2.0/rnrs/records/syntactic.scm
./share/guile/2.0/rnrs/records/inspection.scm
./share/guile/2.0/rnrs/records/procedural.scm
./share/guile/2.0/rnrs/arithmetic/
./share/guile/2.0/rnrs/arithmetic/bitwise.scm
./share/guile/2.0/rnrs/arithmetic/fixnums.scm
./share/guile/2.0/rnrs/arithmetic/flonums.scm
./share/guile/2.0/rnrs/unicode.scm
./share/guile/2.0/rnrs/enums.scm
./share/guile/2.0/rnrs/hashtables.scm
./share/guile/2.0/rnrs/control.scm
./share/guile/2.0/rnrs/syntax-case.scm
./share/guile/2.0/rnrs/sorting.scm
./share/guile/2.0/rnrs/lists.scm
./share/guile/2.0/rnrs/mutable-strings.scm
./share/guile/2.0/rnrs/conditions.scm
./share/guile/2.0/rnrs/r5rs.scm
./share/guile/2.0/rnrs/mutable-pairs.scm
./share/guile/2.0/rnrs/programs.scm
./share/guile/2.0/rnrs/exceptions.scm
./share/guile/2.0/rnrs/eval.scm
./share/guile/2.0/rnrs/files.scm
./share/guile/2.0/rnrs/io/
./share/guile/2.0/rnrs/io/ports.scm
./share/guile/2.0/rnrs/io/simple.scm
./share/guile/2.0/rnrs/bytevectors.scm
./share/guile/2.0/sxml/
./share/guile/2.0/sxml/sxml-match.ss
./share/guile/2.0/sxml/fold.scm
./share/guile/2.0/sxml/ssax.scm
./share/guile/2.0/sxml/apply-templates.scm
./share/guile/2.0/sxml/xpath.scm
./share/guile/2.0/sxml/upstream/
./share/guile/2.0/sxml/upstream/SSAX.scm
./share/guile/2.0/sxml/upstream/assert.scm
./share/guile/2.0/sxml/upstream/SXPath-old.scm
./share/guile/2.0/sxml/upstream/input-parse.scm
./share/guile/2.0/sxml/upstream/SXML-tree-trans.scm
./share/guile/2.0/sxml/transform.scm
./share/guile/2.0/sxml/match.scm
./share/guile/2.0/sxml/simple.scm
./share/guile/2.0/sxml/ssax/
./share/guile/2.0/sxml/ssax/input-parse.scm
./share/guile/2.0/srfi/
./share/guile/2.0/srfi/srfi-88.scm
./share/guile/2.0/srfi/srfi-14.scm
./share/guile/2.0/srfi/srfi-6.scm
./share/guile/2.0/srfi/srfi-67.scm
./share/guile/2.0/srfi/srfi-42/
./share/guile/2.0/srfi/srfi-42/ec.scm
./share/guile/2.0/srfi/srfi-19.scm
./share/guile/2.0/srfi/srfi-31.scm
./share/guile/2.0/srfi/srfi-41.scm
./share/guile/2.0/srfi/srfi-35.scm
./share/guile/2.0/srfi/srfi-34.scm
./share/guile/2.0/srfi/srfi-60.scm
./share/guile/2.0/srfi/srfi-18.scm
./share/guile/2.0/srfi/srfi-37.scm
./share/guile/2.0/srfi/srfi-4/
./share/guile/2.0/srfi/srfi-4/gnu.scm
./share/guile/2.0/srfi/srfi-16.scm
./share/guile/2.0/srfi/srfi-69.scm
./share/guile/2.0/srfi/srfi-17.scm
./share/guile/2.0/srfi/srfi-2.scm
./share/guile/2.0/srfi/srfi-27.scm
./share/guile/2.0/srfi/srfi-26.scm
./share/guile/2.0/srfi/srfi-8.scm
./share/guile/2.0/srfi/srfi-4.scm
./share/guile/2.0/srfi/srfi-11.scm
./share/guile/2.0/srfi/srfi-13.scm
./share/guile/2.0/srfi/srfi-67/
./share/guile/2.0/srfi/srfi-67/compare.scm
./share/guile/2.0/srfi/srfi-45.scm
./share/guile/2.0/srfi/srfi-9.scm
./share/guile/2.0/srfi/srfi-9/
./share/guile/2.0/srfi/srfi-9/gnu.scm
./share/guile/2.0/srfi/srfi-10.scm
./share/guile/2.0/srfi/srfi-42.scm
./share/guile/2.0/srfi/srfi-39.scm
./share/guile/2.0/srfi/srfi-1.scm
./share/guile/2.0/srfi/srfi-38.scm
./share/guile/2.0/srfi/srfi-98.scm
./lib/
./lib/guile/
./lib/guile/2.0/
./lib/guile/2.0/ccache/
./lib/guile/2.0/ccache/system/
./lib/guile/2.0/ccache/system/foreign.go
./lib/guile/2.0/ccache/system/repl/
./lib/guile/2.0/ccache/system/repl/command.go
./lib/guile/2.0/ccache/system/repl/error-handling.go
./lib/guile/2.0/ccache/system/repl/repl.go
./lib/guile/2.0/ccache/system/repl/debug.go
./lib/guile/2.0/ccache/system/repl/server.go
./lib/guile/2.0/ccache/system/repl/common.go
./lib/guile/2.0/ccache/system/xref.go
./lib/guile/2.0/ccache/system/base/
./lib/guile/2.0/ccache/system/base/ck.go
./lib/guile/2.0/ccache/system/base/lalr.go
./lib/guile/2.0/ccache/system/base/pmatch.go
./lib/guile/2.0/ccache/system/base/message.go
./lib/guile/2.0/ccache/system/base/syntax.go
./lib/guile/2.0/ccache/system/base/language.go
./lib/guile/2.0/ccache/system/base/target.go
./lib/guile/2.0/ccache/system/base/compile.go
./lib/guile/2.0/ccache/system/vm/
./lib/guile/2.0/ccache/system/vm/traps.go
./lib/guile/2.0/ccache/system/vm/frame.go
./lib/guile/2.0/ccache/system/vm/objcode.go
./lib/guile/2.0/ccache/system/vm/program.go
./lib/guile/2.0/ccache/system/vm/instruction.go
./lib/guile/2.0/ccache/system/vm/coverage.go
./lib/guile/2.0/ccache/system/vm/vm.go
./lib/guile/2.0/ccache/system/vm/trap-state.go
./lib/guile/2.0/ccache/system/vm/inspect.go
./lib/guile/2.0/ccache/system/vm/trace.go
./lib/guile/2.0/ccache/scripts/
./lib/guile/2.0/ccache/scripts/scan-api.go
./lib/guile/2.0/ccache/scripts/use2dot.go
./lib/guile/2.0/ccache/scripts/autofrisk.go
./lib/guile/2.0/ccache/scripts/api-diff.go
./lib/guile/2.0/ccache/scripts/read-text-outline.go
./lib/guile/2.0/ccache/scripts/punify.go
./lib/guile/2.0/ccache/scripts/snarf-guile-m4-docs.go
./lib/guile/2.0/ccache/scripts/read-scheme-source.go
./lib/guile/2.0/ccache/scripts/frisk.go
./lib/guile/2.0/ccache/scripts/summarize-guile-TODO.go
./lib/guile/2.0/ccache/scripts/lint.go
./lib/guile/2.0/ccache/scripts/display-commentary.go
./lib/guile/2.0/ccache/scripts/disassemble.go
./lib/guile/2.0/ccache/scripts/generate-autoload.go
./lib/guile/2.0/ccache/scripts/snarf-check-and-output-texi.go
./lib/guile/2.0/ccache/scripts/read-rfc822.go
./lib/guile/2.0/ccache/scripts/doc-snarf.go
./lib/guile/2.0/ccache/scripts/compile.go
./lib/guile/2.0/ccache/scripts/help.go
./lib/guile/2.0/ccache/scripts/list.go
./lib/guile/2.0/ccache/texinfo/
./lib/guile/2.0/ccache/texinfo/docbook.go
./lib/guile/2.0/ccache/texinfo/serialize.go
./lib/guile/2.0/ccache/texinfo/html.go
./lib/guile/2.0/ccache/texinfo/reflection.go
./lib/guile/2.0/ccache/texinfo/indexing.go
./lib/guile/2.0/ccache/texinfo/plain-text.go
./lib/guile/2.0/ccache/texinfo/string-utils.go
./lib/guile/2.0/ccache/ice-9/
./lib/guile/2.0/ccache/ice-9/r4rs.go
./lib/guile/2.0/ccache/ice-9/poll.go
./lib/guile/2.0/ccache/ice-9/syncase.go
./lib/guile/2.0/ccache/ice-9/common-list.go
./lib/guile/2.0/ccache/ice-9/stack-catch.go
./lib/guile/2.0/ccache/ice-9/control.go
./lib/guile/2.0/ccache/ice-9/binary-ports.go
./lib/guile/2.0/ccache/ice-9/regex.go
./lib/guile/2.0/ccache/ice-9/safe.go
./lib/guile/2.0/ccache/ice-9/buffered-input.go
./lib/guile/2.0/ccache/ice-9/boot-9.go
./lib/guile/2.0/ccache/ice-9/and-let-star.go
./lib/guile/2.0/ccache/ice-9/expect.go
./lib/guile/2.0/ccache/ice-9/gap-buffer.go
./lib/guile/2.0/ccache/ice-9/pretty-print.go
./lib/guile/2.0/ccache/ice-9/time.go
./lib/guile/2.0/ccache/ice-9/serialize.go
./lib/guile/2.0/ccache/ice-9/debug.go
./lib/guile/2.0/ccache/ice-9/rw.go
./lib/guile/2.0/ccache/ice-9/command-line.go
./lib/guile/2.0/ccache/ice-9/networking.go
./lib/guile/2.0/ccache/ice-9/posix.go
./lib/guile/2.0/ccache/ice-9/psyntax-pp.go
./lib/guile/2.0/ccache/ice-9/format.go
./lib/guile/2.0/ccache/ice-9/optargs.go
./lib/guile/2.0/ccache/ice-9/history.go
./lib/guile/2.0/ccache/ice-9/vlist.go
./lib/guile/2.0/ccache/ice-9/threads.go
./lib/guile/2.0/ccache/ice-9/safe-r5rs.go
./lib/guile/2.0/ccache/ice-9/streams.go
./lib/guile/2.0/ccache/ice-9/readline.go
./lib/guile/2.0/ccache/ice-9/slib.go
./lib/guile/2.0/ccache/ice-9/scm-style-repl.go
./lib/guile/2.0/ccache/ice-9/session.go
./lib/guile/2.0/ccache/ice-9/top-repl.go
./lib/guile/2.0/ccache/ice-9/channel.go
./lib/guile/2.0/ccache/ice-9/q.go
./lib/guile/2.0/ccache/ice-9/string-fun.go
./lib/guile/2.0/ccache/ice-9/r5rs.go
./lib/guile/2.0/ccache/ice-9/calling.go
./lib/guile/2.0/ccache/ice-9/futures.go
./lib/guile/2.0/ccache/ice-9/null.go
./lib/guile/2.0/ccache/ice-9/occam-channel.go
./lib/guile/2.0/ccache/ice-9/eval.go
./lib/guile/2.0/ccache/ice-9/receive.go
./lib/guile/2.0/ccache/ice-9/ftw.go
./lib/guile/2.0/ccache/ice-9/runq.go
./lib/guile/2.0/ccache/ice-9/rdelim.go
./lib/guile/2.0/ccache/ice-9/save-stack.go
./lib/guile/2.0/ccache/ice-9/local-eval.go
./lib/guile/2.0/ccache/ice-9/getopt-long.go
./lib/guile/2.0/ccache/ice-9/ls.go
./lib/guile/2.0/ccache/ice-9/lineio.go
./lib/guile/2.0/ccache/ice-9/i18n.go
./lib/guile/2.0/ccache/ice-9/deprecated.go
./lib/guile/2.0/ccache/ice-9/hcons.go
./lib/guile/2.0/ccache/ice-9/popen.go
./lib/guile/2.0/ccache/ice-9/curried-definitions.go
./lib/guile/2.0/ccache/ice-9/eval-string.go
./lib/guile/2.0/ccache/ice-9/match.go
./lib/guile/2.0/ccache/ice-9/weak-vector.go
./lib/guile/2.0/ccache/ice-9/poe.go
./lib/guile/2.0/ccache/ice-9/mapping.go
./lib/guile/2.0/ccache/ice-9/list.go
./lib/guile/2.0/ccache/ice-9/documentation.go
./lib/guile/2.0/ccache/ice-9/iconv.go
./lib/guile/2.0/ccache/language/
./lib/guile/2.0/ccache/language/assembly.go
./lib/guile/2.0/ccache/language/elisp/
./lib/guile/2.0/ccache/language/elisp/compile-tree-il.go
./lib/guile/2.0/ccache/language/elisp/spec.go
./lib/guile/2.0/ccache/language/elisp/parser.go
./lib/guile/2.0/ccache/language/elisp/runtime.go
./lib/guile/2.0/ccache/language/elisp/bindings.go
./lib/guile/2.0/ccache/language/elisp/lexer.go
./lib/guile/2.0/ccache/language/elisp/runtime/
./lib/guile/2.0/ccache/language/elisp/runtime/value-slot.go
./lib/guile/2.0/ccache/language/elisp/runtime/function-slot.go
./lib/guile/2.0/ccache/language/elisp/runtime/subrs.go
./lib/guile/2.0/ccache/language/elisp/runtime/macros.go
./lib/guile/2.0/ccache/language/assembly/
./lib/guile/2.0/ccache/language/assembly/decompile-bytecode.go
./lib/guile/2.0/ccache/language/assembly/spec.go
./lib/guile/2.0/ccache/language/assembly/compile-bytecode.go
./lib/guile/2.0/ccache/language/assembly/disassemble.go
./lib/guile/2.0/ccache/language/tree-il.go
./lib/guile/2.0/ccache/language/glil.go
./lib/guile/2.0/ccache/language/scheme/
./lib/guile/2.0/ccache/language/scheme/compile-tree-il.go
./lib/guile/2.0/ccache/language/scheme/spec.go
./lib/guile/2.0/ccache/language/scheme/decompile-tree-il.go
./lib/guile/2.0/ccache/language/brainfuck/
./lib/guile/2.0/ccache/language/brainfuck/compile-tree-il.go
./lib/guile/2.0/ccache/language/brainfuck/spec.go
./lib/guile/2.0/ccache/language/brainfuck/parse.go
./lib/guile/2.0/ccache/language/brainfuck/compile-scheme.go
./lib/guile/2.0/ccache/language/objcode/
./lib/guile/2.0/ccache/language/objcode/spec.go
./lib/guile/2.0/ccache/language/bytecode/
./lib/guile/2.0/ccache/language/bytecode/spec.go
./lib/guile/2.0/ccache/language/glil/
./lib/guile/2.0/ccache/language/glil/compile-assembly.go
./lib/guile/2.0/ccache/language/glil/spec.go
./lib/guile/2.0/ccache/language/tree-il/
./lib/guile/2.0/ccache/language/tree-il/debug.go
./lib/guile/2.0/ccache/language/tree-il/compile-glil.go
./lib/guile/2.0/ccache/language/tree-il/optimize.go
./lib/guile/2.0/ccache/language/tree-il/spec.go
./lib/guile/2.0/ccache/language/tree-il/canonicalize.go
./lib/guile/2.0/ccache/language/tree-il/inline.go
./lib/guile/2.0/ccache/language/tree-il/analyze.go
./lib/guile/2.0/ccache/language/tree-il/peval.go
./lib/guile/2.0/ccache/language/tree-il/cse.go
./lib/guile/2.0/ccache/language/tree-il/fix-letrec.go
./lib/guile/2.0/ccache/language/tree-il/effects.go
./lib/guile/2.0/ccache/language/tree-il/primitives.go
./lib/guile/2.0/ccache/language/ecmascript/
./lib/guile/2.0/ccache/language/ecmascript/compile-tree-il.go
./lib/guile/2.0/ccache/language/ecmascript/spec.go
./lib/guile/2.0/ccache/language/ecmascript/parse.go
./lib/guile/2.0/ccache/language/ecmascript/tokenize.go
./lib/guile/2.0/ccache/language/ecmascript/array.go
./lib/guile/2.0/ccache/language/ecmascript/impl.go
./lib/guile/2.0/ccache/language/ecmascript/function.go
./lib/guile/2.0/ccache/language/ecmascript/base.go
./lib/guile/2.0/ccache/language/value/
./lib/guile/2.0/ccache/language/value/spec.go
./lib/guile/2.0/ccache/web/
./lib/guile/2.0/ccache/web/http.go
./lib/guile/2.0/ccache/web/server/
./lib/guile/2.0/ccache/web/server/http.go
./lib/guile/2.0/ccache/web/client.go
./lib/guile/2.0/ccache/web/request.go
./lib/guile/2.0/ccache/web/server.go
./lib/guile/2.0/ccache/web/uri.go
./lib/guile/2.0/ccache/web/response.go
./lib/guile/2.0/ccache/oop/
./lib/guile/2.0/ccache/oop/goops.go
./lib/guile/2.0/ccache/oop/goops/
./lib/guile/2.0/ccache/oop/goops/composite-slot.go
./lib/guile/2.0/ccache/oop/goops/internal.go
./lib/guile/2.0/ccache/oop/goops/stklos.go
./lib/guile/2.0/ccache/oop/goops/save.go
./lib/guile/2.0/ccache/oop/goops/dispatch.go
./lib/guile/2.0/ccache/oop/goops/util.go
./lib/guile/2.0/ccache/oop/goops/active-slot.go
./lib/guile/2.0/ccache/oop/goops/simple.go
./lib/guile/2.0/ccache/oop/goops/describe.go
./lib/guile/2.0/ccache/oop/goops/compile.go
./lib/guile/2.0/ccache/oop/goops/accessors.go
./lib/guile/2.0/ccache/rnrs/
./lib/guile/2.0/ccache/rnrs/mutable-pairs.go
./lib/guile/2.0/ccache/rnrs/control.go
./lib/guile/2.0/ccache/rnrs/records/
./lib/guile/2.0/ccache/rnrs/records/procedural.go
./lib/guile/2.0/ccache/rnrs/records/syntactic.go
./lib/guile/2.0/ccache/rnrs/records/inspection.go
./lib/guile/2.0/ccache/rnrs/arithmetic/
./lib/guile/2.0/ccache/rnrs/arithmetic/fixnums.go
./lib/guile/2.0/ccache/rnrs/arithmetic/bitwise.go
./lib/guile/2.0/ccache/rnrs/arithmetic/flonums.go
./lib/guile/2.0/ccache/rnrs/enums.go
./lib/guile/2.0/ccache/rnrs/programs.go
./lib/guile/2.0/ccache/rnrs/exceptions.go
./lib/guile/2.0/ccache/rnrs/files.go
./lib/guile/2.0/ccache/rnrs/syntax-case.go
./lib/guile/2.0/ccache/rnrs/lists.go
./lib/guile/2.0/ccache/rnrs/mutable-strings.go
./lib/guile/2.0/ccache/rnrs/unicode.go
./lib/guile/2.0/ccache/rnrs/r5rs.go
./lib/guile/2.0/ccache/rnrs/hashtables.go
./lib/guile/2.0/ccache/rnrs/eval.go
./lib/guile/2.0/ccache/rnrs/conditions.go
./lib/guile/2.0/ccache/rnrs/bytevectors.go
./lib/guile/2.0/ccache/rnrs/sorting.go
./lib/guile/2.0/ccache/rnrs/base.go
./lib/guile/2.0/ccache/rnrs/io/
./lib/guile/2.0/ccache/rnrs/io/ports.go
./lib/guile/2.0/ccache/rnrs/io/simple.go
./lib/guile/2.0/ccache/sxml/
./lib/guile/2.0/ccache/sxml/transform.go
./lib/guile/2.0/ccache/sxml/ssax.go
./lib/guile/2.0/ccache/sxml/simple.go
./lib/guile/2.0/ccache/sxml/apply-templates.go
./lib/guile/2.0/ccache/sxml/xpath.go
./lib/guile/2.0/ccache/sxml/match.go
./lib/guile/2.0/ccache/sxml/fold.go
./lib/guile/2.0/ccache/sxml/ssax/
./lib/guile/2.0/ccache/sxml/ssax/input-parse.go
./lib/guile/2.0/ccache/rnrs.go
./lib/guile/2.0/ccache/srfi/
./lib/guile/2.0/ccache/srfi/srfi-4.go
./lib/guile/2.0/ccache/srfi/srfi-14.go
./lib/guile/2.0/ccache/srfi/srfi-26.go
./lib/guile/2.0/ccache/srfi/srfi-17.go
./lib/guile/2.0/ccache/srfi/srfi-27.go
./lib/guile/2.0/ccache/srfi/srfi-38.go
./lib/guile/2.0/ccache/srfi/srfi-34.go
./lib/guile/2.0/ccache/srfi/srfi-13.go
./lib/guile/2.0/ccache/srfi/srfi-41.go
./lib/guile/2.0/ccache/srfi/srfi-19.go
./lib/guile/2.0/ccache/srfi/srfi-67.go
./lib/guile/2.0/ccache/srfi/srfi-9.go
./lib/guile/2.0/ccache/srfi/srfi-2.go
./lib/guile/2.0/ccache/srfi/srfi-4/
./lib/guile/2.0/ccache/srfi/srfi-4/gnu.go
./lib/guile/2.0/ccache/srfi/srfi-60.go
./lib/guile/2.0/ccache/srfi/srfi-11.go
./lib/guile/2.0/ccache/srfi/srfi-69.go
./lib/guile/2.0/ccache/srfi/srfi-6.go
./lib/guile/2.0/ccache/srfi/srfi-37.go
./lib/guile/2.0/ccache/srfi/srfi-39.go
./lib/guile/2.0/ccache/srfi/srfi-1.go
./lib/guile/2.0/ccache/srfi/srfi-8.go
./lib/guile/2.0/ccache/srfi/srfi-9/
./lib/guile/2.0/ccache/srfi/srfi-9/gnu.go
./lib/guile/2.0/ccache/srfi/srfi-45.go
./lib/guile/2.0/ccache/srfi/srfi-42.go
./lib/guile/2.0/ccache/srfi/srfi-16.go
./lib/guile/2.0/ccache/srfi/srfi-31.go
./lib/guile/2.0/ccache/srfi/srfi-18.go
./lib/guile/2.0/ccache/srfi/srfi-88.go
./lib/guile/2.0/ccache/srfi/srfi-10.go
./lib/guile/2.0/ccache/srfi/srfi-35.go
./lib/guile/2.0/ccache/srfi/srfi-98.go
./lib/guile/2.0/ccache/texinfo.go
./lib/guile/2.0/ccache/statprof.go
./bin/
./bin/guile
guile (GNU Guile) 2.0.9
Copyright (C) 2013 Free Software Foundation, Inc.
License LGPLv3+: GNU LGPL 3 or later <http://gnu.org/licenses/lgpl.html>.
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.
@ build-succeeded /tmp/guix-tests/store/kn0gx5na8k2nilq6c362bmavywnilkhq-guile-bootstrap-2.0.drv -
@ build-started /tmp/guix-tests/store/hwqvffm35c4xp24yvmamy8p5bg3j33rl-sleep-then-succeed.drv - x86_64-linux /tmp/guix-tests/var/log/guix/drvs/hw//qvffm35c4xp24yvmamy8p5bg3j33rl-sleep-then-succeed.drv.bz2
@ build-succeeded /tmp/guix-tests/store/hwqvffm35c4xp24yvmamy8p5bg3j33rl-sleep-then-succeed.drv -
@ build-started /tmp/guix-tests/store/nzs8yyjwcl3b3pw7yrwvshq7km0slqqg-bar.drv - x86_64-linux /tmp/guix-tests/var/log/guix/drvs/nz//s8yyjwcl3b3pw7yrwvshq7km0slqqg-bar.drv.bz2
@ build-succeeded /tmp/guix-tests/store/nzs8yyjwcl3b3pw7yrwvshq7km0slqqg-bar.drv -
@ build-started /tmp/guix-tests/store/7amfgi1b8y64ckydz2w6sl125ajdzh6w-foo.drv - x86_64-linux /tmp/guix-tests/var/log/guix/drvs/7a//mfgi1b8y64ckydz2w6sl125ajdzh6w-foo.drv.bz2
@ build-succeeded /tmp/guix-tests/store/7amfgi1b8y64ckydz2w6sl125ajdzh6w-foo.drv -
(search-path %load-path "ice-9/boot-9.scm"))
+ (input*
+ (add-to-store
+ %store
+ (basename input)
+ #t
+ "sha256"
+ input))
+ (drv (derivation
+ %store
+ "derivation-with-input-file"
+ %bash
+ `(,builder)
+ #:env-vars
+ `(("in" unquote input*))
+ #:inputs
+ `((,%bash) (,builder) (,input)))))
+ (and (build-derivations %store (list drv))
+ (valid-path?
+ %store
+ (derivation->output-path drv)))))
actual-value: #t
result: PASS
test-name: derivation fails but keep going
location: /tmp/guix-build-guix-0.13.0.drv-0/source/tests/derivations.scm:165
source:
+ (test-assert
+ "derivation fails but keep going"
+ (with-store
+ store
+ (let* ((d1 (derivation
+ %store
+ "fails"
+ %bash
+ `("-c" "false")
+ #:inputs
+ `((,%bash))))
+ (d2 (build-expression->derivation
+ %store
+ "sleep-then-succeed"
+ `(begin ,(random-text) (sleep 2) (mkdir %output)))))
+ (set-build-options
+ %store
+ #:use-substitutes?
+ #f
+ #:keep-going?
+ #t)
+ (guard (c ((nix-protocol-error? c)
+ (and (= 100 (nix-protocol-error-status c))
+ (string-contains
+ (nix-protocol-error-message c)
+ (derivation-file-name d1))
+ (not (valid-path? %store (derivation->output-path d1)))
+ (valid-path? %store (derivation->output-path d2)))))
+ (build-derivations %store (list d1 d2))
+ #f))))
actual-value: #t
result: PASS
test-name: identical files are deduplicated
location: /tmp/guix-build-guix-0.13.0.drv-0/source/tests/derivations.scm:192
source:
+ (test-assert
+ "identical files are deduplicated"
+ (let* ((build1
+ (add-text-to-store
+ %store
+ "one.sh"
+ "echo hello, world > \"$out\"\n"
+ '()))
+ (build2
+ (add-text-to-store
+ %store
+ "two.sh"
+ "# Hey!\necho hello, world > \"$out\"\n"
+ '()))
+ (drv1 (derivation
+ %store
+ "foo"
+ %bash
+ `(,build1)
+ #:inputs
+ `((,%bash) (,build1))))
+ (drv2 (derivation
+ %store
+ "bar"
+ %bash
+ `(,build2)
+ #:inputs
+ `((,%bash) (,build2)))))
+ (and (build-derivations %store (list drv1 drv2))
+ (let ((file1 (derivation->output-path drv1))
+ (file2 (derivation->output-path drv2)))
+ (and (valid-path? %store file1)
+ (valid-path? %store file2)
+ (string=?
+ (call-with-input-file file1 get-string-all)
+ "hello, world\n")
+ (= (stat:ino (lstat file1))
+ (stat:ino (lstat file2))))))))
actual-value: #t
result: PASS
test-name: built-in-builders
location: /tmp/guix-build-guix-0.13.0.drv-0/source/tests/derivations.scm:214
source:
+ (test-equal
+ "built-in-builders"
+ '("download")
+ (built-in-builders %store))
expected-value: ("download")
actual-value: ("download")
result: PASS
test-name: unknown built-in builder
location: /tmp/guix-build-guix-0.13.0.drv-0/source/tests/derivations.scm:218
source:
+ (test-assert
+ "unknown built-in builder"
+ (let ((drv (derivation
+ %store
+ "ohoh"
+ "builtin:does-not-exist"
+ '())))
+ (guard (c ((nix-protocol-error? c)
+ (string-contains
+ (nix-protocol-error-message c)
+ @ build-started /tmp/guix-tests/store/96bncx0a55ryyvb2i6z8i6rycxwlpwhg-ohoh.drv - x86_64-linux /tmp/guix-tests/var/log/guix/drvs/96//bncx0a55ryyvb2i6z8i6rycxwlpwhg-ohoh.drv.bz2
error: unsupported builtin function 'does-not-exist'
builder for `/tmp/guix-tests/store/96bncx0a55ryyvb2i6z8i6rycxwlpwhg-ohoh.drv' failed with exit code 1
@ build-failed /tmp/guix-tests/store/96bncx0a55ryyvb2i6z8i6rycxwlpwhg-ohoh.drv - 1 builder for `/tmp/guix-tests/store/96bncx0a55ryyvb2i6z8i6rycxwlpwhg-ohoh.drv' failed with exit code 1
@ build-started /tmp/guix-tests/store/smca5zf1p63b4gwk8al9x7pjjca91rd6-world.drv - x86_64-linux /tmp/guix-tests/var/log/guix/drvs/sm//ca5zf1p63b4gwk8al9x7pjjca91rd6-world.drv.bz2
Starting download of /tmp/guix-tests/store/nzg78pzn9mrwl35wq0lnz925cyjcrn5x-world
From http://localhost:10500/foo/bar...
\r^[[K bar 64B 0B/s 00:00 [ ] 0.0%\r^[[K bar 64B 305KiB/s 00:00 [####################] 100.0%
@ build-succeeded /tmp/guix-tests/store/smca5zf1p63b4gwk8al9x7pjjca91rd6-world.drv -
@ build-started /tmp/guix-tests/store/v45bx2cbgz6windf4w2mjs5nlnkf88ag-world.drv - x86_64-linux /tmp/guix-tests/var/log/guix/drvs/v4//5bx2cbgz6windf4w2mjs5nlnkf88ag-world.drv.bz2
Starting download of /tmp/guix-tests/store/56l4ckplfzx8y1mcrh11h4lg027krwgc-world
From http://localhost:10500/foo/bar...
\r^[[K bar 13B 0B/s 00:00 [ ] 0.0%\r^[[K bar 13B 59KiB/s 00:00 [####################] 100.0%
output path `/tmp/guix-tests/store/56l4ckplfzx8y1mcrh11h4lg027krwgc-world' should have sha256 hash `0srnayadyaqak1i9a7az1lxpbmgq8qpx6xpmi7v93qwra0nv49x4', instead has `0a7pd3rizm1qb3kz1ad1wzrijrhwsnq3lj7qprc86zp6a6r5drk8'
@ build-failed /tmp/guix-tests/store/v45bx2cbgz6windf4w2mjs5nlnkf88ag-world.drv - 1 output path `/tmp/guix-tests/store/56l4ckplfzx8y1mcrh11h4lg027krwgc-world' should have sha256 hash `0srnayadyaqak1i9a7az1lxpbmgq8qpx6xpmi7v93qwra0nv49x4', instead has `0a7pd3rizm1qb3kz1ad1wzrijrhwsnq3lj7qprc86zp6a6r5drk8'
@ build-started /tmp/guix-tests/store/169y82wnbs4qkhccgqfm10i7zxpq1ind-will-never-be-found.drv - x86_64-linux /tmp/guix-tests/var/log/guix/drvs/16//9y82wnbs4qkhccgqfm10i7zxpq1ind-will-never-be-found.drv.bz2
Starting download of /tmp/guix-tests/store/n98dcliqml18ylfx5a4ll82rvqprwhz0-will-never-be-found
From http://localhost:10500/foo/bar...
ERROR: download failed "http://localhost:10500/foo/bar" 404 "Such is life"
failed to download "/tmp/guix-tests/store/n98dcliqml18ylfx5a4ll82rvqprwhz0-will-never-be-found" from "http://localhost:10500/foo/bar"
builder for `/tmp/guix-tests/store/169y82wnbs4qkhccgqfm10i7zxpq1ind-will-never-be-found.drv' failed to produce output path `/tmp/guix-tests/store/n98dcliqml18ylfx5a4ll82rvqprwhz0-will-never-be-found'
@ build-failed /tmp/guix-tests/store/169y82wnbs4qkhccgqfm10i7zxpq1ind-will-never-be-found.drv - 1 builder for `/tmp/guix-tests/store/169y82wnbs4qkhccgqfm10i7zxpq1ind-will-never-be-found.drv' failed to produce output path `/tmp/guix-tests/store/n98dcliqml18ylfx5a4ll82rvqprwhz0-will-never-be-found'
@ build-started /tmp/guix-tests/store/5hqvbsh3kc0mgh41rda902fk0vqjcq01-world.drv - x86_64-linux /tmp/guix-tests/var/log/guix/drvs/5h//qvbsh3kc0mgh41rda902fk0vqjcq01-world.drv.bz2
guix perform-download: error: /tmp/guix-tests/store/5hqvbsh3kc0mgh41rda902fk0vqjcq01-world.drv is not a fixed-output derivation
builder for `/tmp/guix-tests/store/5hqvbsh3kc0mgh41rda902fk0vqjcq01-world.drv' failed with exit code 1
@ build-failed /tmp/guix-tests/store/5hqvbsh3kc0mgh41rda902fk0vqjcq01-world.drv - 1 builder for `/tmp/guix-tests/store/5hqvbsh3kc0mgh41rda902fk0vqjcq01-world.drv' failed with exit code 1
"failed")))
+ (build-derivations %store (list drv))
+ #f)))
actual-value: 75
result: PASS
test-name: 'download' built-in builder
location: /tmp/guix-build-guix-0.13.0.drv-0/source/tests/derivations.scm:227
source:
+ (test-assert
+ "'download' built-in builder"
+ (let ((text (random-text)))
+ (with-http-server
+ 200
+ text
+ (let* ((drv (derivation
+ %store
+ "world"
+ "builtin:download"
+ '()
+ #:env-vars
+ `(("url" unquote (object->string (%local-url))))
+ #:hash-algo
+ 'sha256
+ #:hash
+ (sha256 (string->utf8 text)))))
+ (and (build-derivations %store (list drv))
+ (string=?
+ (call-with-input-file
+ (derivation->output-path drv)
+ get-string-all)
+ text))))))
actual-value: #t
result: PASS
test-name: 'download' built-in builder, invalid hash
location: /tmp/guix-build-guix-0.13.0.drv-0/source/tests/derivations.scm:243
source:
+ (test-assert
+ "'download' built-in builder, invalid hash"
+ (with-http-server
+ 200
+ "hello, world!"
+ (let* ((drv (derivation
+ %store
+ "world"
+ "builtin:download"
+ '()
+ #:env-vars
+ `(("url" unquote (object->string (%local-url))))
+ #:hash-algo
+ 'sha256
+ #:hash
+ (sha256 (random-bytevector 100)))))
+ (guard (c ((nix-protocol-error? c)
+ (string-contains
+ (nix-protocol-error-message c)
+ "failed")))
+ (build-derivations %store (list drv))
+ #f))))
actual-value: 76
result: PASS
test-name: 'download' built-in builder, not found
location: /tmp/guix-build-guix-0.13.0.drv-0/source/tests/derivations.scm:258
source:
+ (test-assert
+ "'download' built-in builder, not found"
+ (with-http-server
+ 404
+ "not found"
+ (let* ((drv (derivation
+ %store
+ "will-never-be-found"
+ "builtin:download"
+ '()
+ #:env-vars
+ `(("url" unquote (object->string (%local-url))))
+ #:hash-algo
+ 'sha256
+ #:hash
+ (sha256 (random-bytevector 100)))))
+ (guard (c ((nix-protocol-error? c)
+ (string-contains
+ (nix-protocol-error-message (pk c))
+ "failed")))
+ (build-derivations %store (list drv))
+ #f))))
;;; (#<condition &nix-protocol-error [message: "build of `/tmp/guix-tests/store/169y82wnbs4qkhccgqfm10i7zxpq1ind-will-never-be-found.drv' failed" status: 1] 1b94000>)
actual-value: 90
result: PASS
test-name: 'download' built-in builder, not fixed-output
location: /tmp/guix-build-guix-0.13.0.drv-0/source/tests/derivations.scm:271
source:
+ (test-assert
+ "'download' built-in builder, not fixed-output"
+ (let* ((source (add-text-to-store %store "hello" "hi!"))
+ (url (string-append "file://" source))
+ (drv (derivation
+ %store
+ "world"
+ "builtin:download"
+ '()
+ #:env-vars
+ `(("url" unquote (object->string url))))))
+ (guard (c ((nix-protocol-error? c)
+ (string-contains
+ (nix-protocol-error-message c)
+ "failed")))
+ (build-derivations %store (list drv))
+ #f)))
actual-value: 76
result: PASS
test-name: 'download' built-in builder, check mode
location: /tmp/guix-build-guix-0.13.0.drv-0/source/tests/derivations.scm:284
source:
+ (test-assert
+ "'download' built-in builder, check mode"
+ (let* ((text (random-text))
@ build-started /tmp/guix-tests/store/4qa12ysg1cfvj6z8ldlnsk48c73jyndg-world.drv - x86_64-linux /tmp/guix-tests/var/log/guix/drvs/4q//a12ysg1cfvj6z8ldlnsk48c73jyndg-world.drv.bz2
Starting download of /tmp/guix-tests/store/6fjrvl6qgrfmk4j891vjj2srnm5s1993-world
From http://localhost:10500/foo/bar...
\r^[[K bar 64B 0B/s 00:00 [ ] 0.0%\r^[[K bar 64B 293KiB/s 00:00 [####################] 100.0%
@ build-succeeded /tmp/guix-tests/store/4qa12ysg1cfvj6z8ldlnsk48c73jyndg-world.drv -
@ build-started /tmp/guix-tests/store/4qa12ysg1cfvj6z8ldlnsk48c73jyndg-world.drv - x86_64-linux /tmp/guix-tests/var/log/guix/drvs/4q//a12ysg1cfvj6z8ldlnsk48c73jyndg-world.drv.bz2
Starting download of /tmp/guix-tests/store/0ki5sxlqh77r1x4n9ra7qqiqzdl194r9-world
From http://localhost:10500/foo/bar...
\r^[[K bar 64B 0B/s 00:00 [ ] 0.0%\r^[[K bar 64B 298KiB/s 00:00 [####################] 100.0%
warning: rewriting hashes in `/tmp/guix-tests/store/6fjrvl6qgrfmk4j891vjj2srnm5s1993-world'; cross fingers
+ (drv (derivation
+ %store
+ "world"
+ "builtin:download"
+ '()
+ #:env-vars
+ `(("url" unquote (object->string (%local-url))))
+ #:hash-algo
+ 'sha256
+ #:hash
+ (sha256 (string->utf8 text)))))
+ (and (with-http-server
+ 200
+ text
+ (build-derivations %store (list drv)))
+ (with-http-server
+ 200
+ text
+ (build-derivations
+ %store
+ (list drv)
+ (build-mode check)))
+ (string=?
+ (call-with-input-file
+ (derivation->output-path drv)
+ get-string-all)
+ text))))
actual-value: #t
result: PASS
test-name: derivation-name
location: /tmp/guix-build-guix-0.13.0.drv-0/source/tests/derivations.scm:303
source:
+ (test-equal
+ "derivation-name"
+ "foo-0.0"
+ (let ((drv (derivation %store "foo-0.0" %bash '())))
+ (derivation-name drv)))
expected-value: "foo-0.0"
actual-value: "foo-0.0"
result: PASS
test-name: derivation-output-names
location: /tmp/guix-build-guix-0.13.0.drv-0/source/tests/derivations.scm:308
source:
+ (test-equal
+ "derivation-output-names"
+ '(("out") ("bar" "chbouib"))
+ (let ((drv1 (derivation %store "foo-0.0" %bash '()))
+ (drv2 (derivation
+ %store
+ "foo-0.0"
+ %bash
+ '()
+ #:outputs
+ '("bar" "chbouib"))))
+ (list (derivation-output-names drv1)
+ (derivation-output-names drv2))))
expected-value: (("out") ("bar" "chbouib"))
actual-value: (("out") ("bar" "chbouib"))
result: PASS
test-name: offloadable-derivation?
location: /tmp/guix-build-guix-0.13.0.drv-0/source/tests/derivations.scm:316
source:
+ (test-assert
+ "offloadable-derivation?"
+ (and (offloadable-derivation?
+ (derivation %store "foo" %bash '()))
+ (offloadable-derivation?
+ (derivation
+ %store
+ "foo"
+ %bash
+ '()
+ #:substitutable?
+ #f))
+ (not (offloadable-derivation?
+ (derivation
+ %store
+ "foo"
+ %bash
+ '()
+ #:local-build?
+ #t)))))
actual-value: #t
result: PASS
test-name: substitutable-derivation?
location: /tmp/guix-build-guix-0.13.0.drv-0/source/tests/derivations.scm:325
source:
+ (test-assert
+ "substitutable-derivation?"
+ (and (substitutable-derivation?
+ (derivation %store "foo" %bash '()))
+ (substitutable-derivation?
+ (derivation
+ %store
+ "foo"
+ %bash
+ '()
+ #:local-build?
+ #t))
+ (not (substitutable-derivation?
+ (derivation
+ %store
+ "foo"
+ %bash
+ '()
+ #:substitutable?
+ #f)))))
actual-value: #t
result: PASS
test-name: fixed-output-derivation?
location: /tmp/guix-build-guix-0.13.0.drv-0/source/tests/derivations.scm:334
source:
+ (test-assert
+ "fixed-output-derivation?"
+ (let* ((builder
+ (add-text-to-store
+ %store
+ "my-fixed-builder.sh"
+ "echo -n hello > $out"
+ '()))
+ (hash (sha256 (string->utf8 "hello")))
+ (drv (derivation
+ %store
+ "fixed"
+ %bash
+ `(,builder)
+ #:inputs
+ `((,builder))
+ #:hash
+ hash
+ #:hash-algo
+ 'sha256)))
+ (fixed-output-derivation? drv)))
actual-value: #t
result: PASS
test-name: fixed-output derivation
location: /tmp/guix-build-guix-0.13.0.drv-0/source/tests/derivations.scm:344
source:
+ (test-assert
+ "fixed-output derivation"
+ (let* @ build-started /tmp/guix-tests/store/k4nhzjjfk1acbcpsvm2yhxkj5jvqm59l-fixed.drv - x86_64-linux /tmp/guix-tests/var/log/guix/drvs/k4//nhzjjfk1acbcpsvm2yhxkj5jvqm59l-fixed.drv.bz2
@ build-succeeded /tmp/guix-tests/store/k4nhzjjfk1acbcpsvm2yhxkj5jvqm59l-fixed.drv -
@ build-started /tmp/guix-tests/store/b85qz6zrg22iilj4wcvja2w69vvzp9hy-fixed-rec.drv - x86_64-linux /tmp/guix-tests/var/log/guix/drvs/b8//5qz6zrg22iilj4wcvja2w69vvzp9hy-fixed-rec.drv.bz2
@ build-succeeded /tmp/guix-tests/store/b85qz6zrg22iilj4wcvja2w69vvzp9hy-fixed-rec.drv -
((builder
+ (add-text-to-store
+ %store
+ "my-fixed-builder.sh"
+ "echo -n hello > $out"
+ '()))
+ (hash (sha256 (string->utf8 "hello")))
+ (drv (derivation
+ %store
+ "fixed"
+ %bash
+ `(,builder)
+ #:inputs
+ `((,builder))
+ #:hash
+ hash
+ #:hash-algo
+ 'sha256))
+ (succeeded?
+ (build-derivations %store (list drv))))
+ (and succeeded?
+ (let ((p (derivation->output-path drv)))
+ (and (equal?
+ (string->utf8 "hello")
+ (call-with-input-file p get-bytevector-all))
+ (bytevector? (query-path-hash %store p)))))))
actual-value: #t
result: PASS
test-name: fixed-output derivation: output paths are equal
location: /tmp/guix-build-guix-0.13.0.drv-0/source/tests/derivations.scm:359
source:
+ (test-assert
+ "fixed-output derivation: output paths are equal"
+ (let* ((builder1
+ (add-text-to-store
+ %store
+ "fixed-builder1.sh"
+ "echo -n hello > $out"
+ '()))
+ (builder2
+ (add-text-to-store
+ %store
+ "fixed-builder2.sh"
+ "echo hey; echo -n hello > $out"
+ '()))
+ (hash (sha256 (string->utf8 "hello")))
+ (drv1 (derivation
+ %store
+ "fixed"
+ %bash
+ `(,builder1)
+ #:hash
+ hash
+ #:hash-algo
+ 'sha256))
+ (drv2 (derivation
+ %store
+ "fixed"
+ %bash
+ `(,builder2)
+ #:hash
+ hash
+ #:hash-algo
+ 'sha256))
+ (succeeded?
+ (build-derivations %store (list drv1 drv2))))
+ (and succeeded?
+ (equal?
+ (derivation->output-path drv1)
+ (derivation->output-path drv2)))))
actual-value: #t
result: PASS
test-name: fixed-output derivation, recursive
location: /tmp/guix-build-guix-0.13.0.drv-0/source/tests/derivations.scm:376
source:
+ (test-assert
+ "fixed-output derivation, recursive"
+ (let* ((builder
+ (add-text-to-store
+ %store
+ "my-fixed-builder.sh"
+ "echo -n hello > $out"
+ '()))
+ (hash (sha256 (string->utf8 "hello")))
+ (drv (derivation
+ %store
+ "fixed-rec"
+ %bash
+ `(,builder)
+ #:inputs
+ `((,builder))
+ #:hash
+ (base32
+ "0sg9f58l1jj88w6pdrfdpj5x9b1zrwszk84j81zvby36q9whhhqa")
+ #:hash-algo
+ 'sha256
+ #:recursive?
+ #t))
+ (succeeded?
+ (build-derivations %store (list drv))))
+ (and succeeded?
+ (let ((p (derivation->output-path drv)))
+ (and (equal?
+ (string->utf8 "hello")
+ (call-with-input-file p get-bytevector-all))
+ (bytevector? (query-path-hash %store p)))))))
actual-value: #t
result: PASS
test-name: derivation with a fixed-output input
location: /tmp/guix-build-guix-0.13.0.drv-0/source/tests/derivations.scm:393
source:
+ (test-assert
+ "derivation with a fixed-output input"
+ (let* ((builder1
+ (add-text-to-store
+ %store
+ "fixed-builder1.sh"
+ "echo -n hello > $out"
+ '()))
+ (builder2
+ (add-text-to-store
+ %store
+ "fixed-builder2.sh"
+ "echo hey; echo -n hello > $out"
+ '()))
+ (hash (sha256 (string->utf8 "hello")))
+ (fixed1
+ (derivation
+ @ build-started /tmp/guix-tests/store/2q3q6qs3wvi5d5v807lgn76ab0q4341v-final.drv - x86_64-linux /tmp/guix-tests/var/log/guix/drvs/2q//3q6qs3wvi5d5v807lgn76ab0q4341v-final.drv.bz2
/tmp/guix-tests/store/7bdcga4xc915pgzf524xhjk677521whr-fixed
@ build-succeeded /tmp/guix-tests/store/2q3q6qs3wvi5d5v807lgn76ab0q4341v-final.drv -
@ build-started /tmp/guix-tests/store/jgsbqbf10dnfyjmyjsphx715znbn8rhv-fixed.drv - x86_64-linux /tmp/guix-tests/var/log/guix/drvs/jg//sbqbf10dnfyjmyjsphx715znbn8rhv-fixed.drv.bz2
@ build-succeeded /tmp/guix-tests/store/jgsbqbf10dnfyjmyjsphx715znbn8rhv-fixed.drv -
@ build-started /tmp/guix-tests/store/1s96ljyrlllvp5b91s56i5hdy2chhyw2-fixed.drv - x86_64-linux /tmp/guix-tests/var/log/guix/drvs/1s//96ljyrlllvp5b91s56i5hdy2chhyw2-fixed.drv.bz2
@ build-succeeded /tmp/guix-tests/store/1s96ljyrlllvp5b91s56i5hdy2chhyw2-fixed.drv -
%store
+ "fixed"
+ %bash
+ `(,builder1)
+ #:hash
+ hash
+ #:hash-algo
+ 'sha256))
+ (fixed2
+ (derivation
+ %store
+ "fixed"
+ %bash
+ `(,builder2)
+ #:hash
+ hash
+ #:hash-algo
+ 'sha256))
+ (fixed-out (derivation->output-path fixed1))
+ (builder3
+ (add-text-to-store
+ %store
+ "final-builder.sh"
+ "echo $in ; (read -u 3 c; echo $c) 3< $in > $out"
+ '()))
+ (final1
+ (derivation
+ %store
+ "final"
+ %bash
+ `(,builder3)
+ #:env-vars
+ `(("in" unquote fixed-out))
+ #:inputs
+ `((,%bash) (,builder3) (,fixed1))))
+ (final2
+ (derivation
+ %store
+ "final"
+ %bash
+ `(,builder3)
+ #:env-vars
+ `(("in" unquote fixed-out))
+ #:inputs
+ `((,%bash) (,builder3) (,fixed2))))
+ (succeeded?
+ (build-derivations %store (list final1 final2))))
+ (and succeeded?
+ (equal?
+ (derivation->output-path final1)
+ (derivation->output-path final2)))))
actual-value: #t
result: PASS
test-name: multiple-output derivation
location: /tmp/guix-build-guix-0.13.0.drv-0/source/tests/derivations.scm:427
source:
+ (test-assert
+ "multiple-output derivation"
+ (let* ((builder
+ (add-text-to-store
+ %store
+ "my-fixed-builder.sh"
+ "echo one > $out ; echo two > $second"
+ '()))
+ (drv (derivation
+ %store
+ "fixed"
+ %bash
+ `(,builder)
+ #:env-vars
+ '(("HOME" . "/homeless")
+ ("zzz" . "Z!")
+ ("AAA" . "A!"))
+ #:inputs
+ `((,%bash) (,builder))
+ #:outputs
+ '("out" "second")))
+ (succeeded?
+ (build-derivations %store (list drv))))
+ (and succeeded?
+ (let ((one (derivation->output-path drv "out"))
+ (two (derivation->output-path drv "second")))
+ (and (lset= equal?
+ (derivation->output-paths drv)
+ `(("out" unquote one) ("second" unquote two)))
+ (eq? 'one (call-with-input-file one read))
+ (eq? 'two (call-with-input-file two read)))))))
actual-value: #t
result: PASS
test-name: multiple-output derivation, non-alphabetic order
location: /tmp/guix-build-guix-0.13.0.drv-0/source/tests/derivations.scm:448
source:
+ (test-assert
+ "multiple-output derivation, non-alphabetic order"
+ (let* ((builder
+ (add-text-to-store
+ %store
+ "my-fixed-builder.sh"
+ "echo one > $out ; echo two > $AAA"
+ '()))
+ (drv (derivation
+ %store
+ "fixed"
+ %bash
+ `(,builder)
+ #:inputs
+ `((,%bash) (,builder))
+ #:outputs
+ '("out" "AAA")))
+ (succeeded?
+ (build-derivations %store (list drv))))
+ (and succeeded?
+ (let ((one (derivation->output-path drv "out"))
+ (two (derivation->output-path drv "AAA")))
+ (and (eq? 'one (call-with-input-file one read))
+ (eq? 'two (call-with-input-file two read)))))))
actual-value: #t
result: PASS
test-name: read-derivation vs. derivation
location: /tmp/guix-build-guix-0.13.0.drv-0/source/tests/derivations.scm:465
source:
+ (test-assert
+ "read-derivation vs. derivation"
+ (let* ((sources
+ (unfold
+ (cut >= <> 10)
+ (lambda (n)
+ (add-text-to-store
+ %store
+ (format #f "input~a" n)
+ (random-text)))
+ #{1+}#
+ 0))
+ (inputs
+ (map (lambda (file)
+ (derivation
+ %store
+ "derivation-input"
+ %bash
+ '()
+ #:inputs
+ `((,%bash) (,file))))
+ sources))
+ (builder
+ (add-text-to-store
+ %store
+ "builder.sh"
+ "echo one > $one ; echo two > $two"
+ '()))
+ (drv (derivation
+ %store
+ "derivation"
+ %bash
+ `(,builder)
+ #:inputs
+ `((,%bash)
+ (,builder)
+ ,@(map list (append sources inputs)))
+ #:outputs
+ '("two" "one")))
+ (drv* (call-with-input-file
+ (derivation-file-name drv)
+ read-derivation)))
+ (equal? drv* drv)))
actual-value: #t
result: PASS
test-name: multiple-output derivation, derivation-path->output-path
location: /tmp/guix-build-guix-0.13.0.drv-0/source/tests/derivations.scm:492
source:
+ (test-assert
+ "multiple-output derivation, derivation-path->output-path"
+ (let* ((builder
+ (add-text-to-store
+ %store
+ "builder.sh"
+ "echo one > $out ; echo two > $second"
+ '()))
+ (drv (derivation
+ %store
+ "multiple"
+ %bash
+ `(,builder)
+ #:outputs
+ '("out" "second")))
+ (drv-file (derivation-file-name drv))
+ (one (derivation->output-path drv "out"))
+ (two (derivation->output-path drv "second"))
+ (first (derivation-path->output-path drv-file "out"))
+ (second
+ (derivation-path->output-path drv-file "second")))
+ (and (not (string=? one two))
+ (string-suffix? "-second" two)
+ (string=? first one)
+ (string=? second two))))
actual-value: #t
result: PASS
test-name: user of multiple-output derivation
location: /tmp/guix-build-guix-0.13.0.drv-0/source/tests/derivations.scm:509
source:
+ (test-assert
+ "user of multiple-output derivation"
+ (let* ((builder1
+ (add-text-to-store
+ %store
+ "my-mo-builder.sh"
+ "echo one > $out ; echo two > $two"
+ '()))
+ (mdrv (derivation
+ %store
+ "multiple-output"
+ %bash
+ `(,builder1)
+ #:inputs
+ `((,%bash) (,builder1))
+ #:outputs
+ '("out" "two")))
+ (builder2
+ (add-text-to-store
+ %store
+ "my-mo-user-builder.sh"
+ "read x < $one;\n read y < $two;\n echo \"($x $y)\" > $out"
+ '()))
+ (udrv (derivation
+ %store
+ "multiple-output-user"
+ %bash
+ `(,builder2)
+ #:env-vars
+ `(("one"
+ unquote
+ (derivation->output-path mdrv "out"))
+ ("two"
+ unquote
+ (derivation->output-path mdrv "two")))
+ #:inputs
+ `((,%bash) (,builder2) (,mdrv) (,mdrv "two")))))
+ (and (build-derivations %store (list (pk 'udrv udrv)))
+ (let ((p (derivation->output-path udrv)))
+ (and (valid-path? %store p)
+ (equal? '(one two) (call-with-input-file p read)))))))
;;; (udrv #<derivation /tmp/guix-tests/store/d1iq16cxzglxwmv478pk9viic0vm0ca2-multiple-output-user.drv => @ build-started /tmp/guix-tests/store/iryf8h5akyy02qd3dd9ps1ka026cyanz-multiple-output.drv - x86_64-linux /tmp/guix-tests/var/log/guix/drvs/ir//yf8h5akyy02qd3dd9ps1ka026cyanz-multiple-output.drv.bz2
@ build-succeeded /tmp/guix-tests/store/iryf8h5akyy02qd3dd9ps1ka026cyanz-multiple-output.drv -
@ build-started /tmp/guix-tests/store/d1iq16cxzglxwmv478pk9viic0vm0ca2-multiple-output-user.drv - x86_64-linux /tmp/guix-tests/var/log/guix/drvs/d1//iq16cxzglxwmv478pk9viic0vm0ca2-multiple-output-user.drv.bz2
@ build-succeeded /tmp/guix-tests/store/d1iq16cxzglxwmv478pk9viic0vm0ca2-multiple-output-user.drv -
@ build-started /tmp/guix-tests/store/mbi7gj0nlckkz5xchza6rl5vwsnybh73-closure-graphs.drv - x86_64-linux /tmp/guix-tests/var/log/guix/drvs/mb//i7gj0nlckkz5xchza6rl5vwsnybh73-closure-graphs.drv.bz2
@ build-succeeded /tmp/guix-tests/store/mbi7gj0nlckkz5xchza6rl5vwsnybh73-closure-graphs.drv -
@ build-started /tmp/guix-tests/store/q4wh93j1i84snrx51al231wnj4g5i99b-allowed.drv - x86_64-linux /tmp/guix-tests/var/log/guix/drvs/q4//wh93j1i84snrx51al231wnj4g5i99b-allowed.drv.bz2
@ build-succeeded /tmp/guix-tests/store/q4wh93j1i84snrx51al231wnj4g5i99b-allowed.drv -
@ build-started /tmp/guix-tests/store/nxjmh1ipl69ak2x01igkqr2m0qg312bs-disallowed.drv - x86_64-linux /tmp/guix-tests/var/log/guix/drvs/nx//jmh1ipl69ak2x01igkqr2m0qg312bs-disallowed.drv.bz2
output (`/tmp/guix-tests/store/sjsz32mf9z3nwz33v72l68x0l3m4gdy0-disallowed') is not allowed to refer to path `/tmp/guix-tests/store/bdx3lhq3793i8lz6fvldrp917ba52v1v-foo'
@ build-failed /tmp/guix-tests/store/nxjmh1ipl69ak2x01igkqr2m0qg312bs-disallowed.drv - 1 output (`/tmp/guix-tests/store/sjsz32mf9z3nwz33v72l68x0l3m4gdy0-disallowed') is not allowed to refer to path `/tmp/guix-tests/store/bdx3lhq3793i8lz6fvldrp917ba52v1v-foo'
/tmp/guix-tests/store/01sib6yydjyifqm8is82l8q4xr6g84lx-multiple-output-user 1d7c8c0>)
actual-value: #t
result: PASS
test-name: derivation with #:references-graphs
location: /tmp/guix-build-guix-0.13.0.drv-0/source/tests/derivations.scm:542
source:
+ (test-assert
+ "derivation with #:references-graphs"
+ (let* ((input1
+ (add-text-to-store
+ %store
+ "foo"
+ "hello"
+ (list %bash)))
+ (input2
+ (add-text-to-store
+ %store
+ "bar"
+ (number->string (random 7777))
+ (list input1)))
+ (builder
+ (add-text-to-store
+ %store
+ "build-graph"
+ (format
+ #f
+ "\n~a $out\n (while read l ; do echo $l ; done) < bash > $out/bash\n (while read l ; do echo $l ; done) < input1 > $out/input1\n (while read l ; do echo $l ; done) < input2 > $out/input2"
+ %mkdir)
+ (list %mkdir)))
+ (drv (derivation
+ %store
+ "closure-graphs"
+ %bash
+ `(,builder)
+ #:references-graphs
+ `(("bash" unquote %bash)
+ ("input1" unquote input1)
+ ("input2" unquote input2))
+ #:inputs
+ `((,%bash) (,builder))))
+ (out (derivation->output-path drv)))
+ (define (deps path . deps)
+ (let ((count (length deps)))
+ (string-append
+ path
+ "\n\n"
+ (number->string count)
+ "\n"
+ (string-join (sort deps string<?) "\n")
+ (if (zero? count) "" "\n"))))
+ (and (build-derivations %store (list drv))
+ (equal?
+ (directory-contents out get-string-all)
+ `(("/bash" unquote (string-append %bash "\n\n0\n"))
+ ("/input1"
+ unquote
+ (if (string>? input1 %bash)
+ (string-append (deps %bash) (deps input1 %bash))
+ (string-append (deps input1 %bash) (deps %bash))))
+ ("/input2"
+ unquote
+ (string-concatenate
+ (map cdr
+ (sort (map (lambda (p d) (cons p (apply deps p d)))
+ (list %bash input1 input2)
+ (list '() (list %bash) (list input1)))
+ (lambda (x y)
+ (match x
+ ((p1 . _)
+ (match y
+ ((p2 . _)
+ (string<? p1 p2)))))))))))))))
actual-value: #t
result: PASS
test-name: derivation #:allowed-references, ok
location: /tmp/guix-build-guix-0.13.0.drv-0/source/tests/derivations.scm:592
source:
+ (test-assert
+ "derivation #:allowed-references, ok"
+ (let ((drv (derivation
+ %store
+ "allowed"
+ %bash
+ '("-c" "echo hello > $out")
+ #:inputs
+ `((,%bash))
+ #:allowed-references
+ '())))
+ (build-derivations %store (list drv))))
actual-value: #t
result: PASS
test-name: derivation #:allowed-references, not allowed
location: /tmp/guix-build-guix-0.13.0.drv-0/source/tests/derivations.scm:599
source:
+ (test-assert
+ "derivation #:allowed-references, not allowed"
+ (let* ((txt (add-text-to-store %store "foo" "Hello, world."))
+ (drv (derivation
+ %store
+ "disallowed"
+ %bash
+ `("-c" ,(string-append "echo " txt "> $out"))
+ #:inputs
+ `((,%bash) (,txt))
+ #:allowed-references
+ '())))
+ (guard (c ((nix-protocol-error? c) #t))
+ (build-derivations %store (list drv))
+ #f)))
actual-value: #t
result: PASS
test-name: @ build-started /tmp/guix-tests/store/gn8l3dbhnpjd4xnaq16jnigicb2yqv68-allowed.drv - x86_64-linux /tmp/guix-tests/var/log/guix/drvs/gn//8l3dbhnpjd4xnaq16jnigicb2yqv68-allowed.drv.bz2
@ build-succeeded /tmp/guix-tests/store/gn8l3dbhnpjd4xnaq16jnigicb2yqv68-allowed.drv -
@ build-started /tmp/guix-tests/store/wi2xv7yipw4nx5xls95bygbj7dl62ml8-disallowed.drv - x86_64-linux /tmp/guix-tests/var/log/guix/drvs/wi//2xv7yipw4nx5xls95bygbj7dl62ml8-disallowed.drv.bz2
output (`/tmp/guix-tests/store/x16606f0yf78viwdwhzcgvqcm8p8m1zf-disallowed') is not allowed to refer to path `/tmp/guix-tests/store/x16606f0yf78viwdwhzcgvqcm8p8m1zf-disallowed'
@ build-failed /tmp/guix-tests/store/wi2xv7yipw4nx5xls95bygbj7dl62ml8-disallowed.drv - 1 output (`/tmp/guix-tests/store/x16606f0yf78viwdwhzcgvqcm8p8m1zf-disallowed') is not allowed to refer to path `/tmp/guix-tests/store/x16606f0yf78viwdwhzcgvqcm8p8m1zf-disallowed'
@ build-started /tmp/guix-tests/store/vbnwanpq295lszpzd9x5rw8gyvzdai6f-disallowed.drv - x86_64-linux /tmp/guix-tests/var/log/guix/drvs/vb//nwanpq295lszpzd9x5rw8gyvzdai6f-disallowed.drv.bz2
@ build-succeeded /tmp/guix-tests/store/vbnwanpq295lszpzd9x5rw8gyvzdai6f-disallowed.drv -
@ build-started /tmp/guix-tests/store/cbw7ax1vdz8i453gibbky564xs1iggmr-disdisallowed.drv - x86_64-linux /tmp/guix-tests/var/log/guix/drvs/cb//w7ax1vdz8i453gibbky564xs1iggmr-disdisallowed.drv.bz2
output (`/tmp/guix-tests/store/lnay1n74vhpqndqwd4r7k439xw98kd2a-disdisallowed') is not allowed to refer to path `/tmp/guix-tests/store/bdx3lhq3793i8lz6fvldrp917ba52v1v-foo'
@ build-failed /tmp/guix-tests/store/cbw7ax1vdz8i453gibbky564xs1iggmr-disdisallowed.drv - 1 output (`/tmp/guix-tests/store/lnay1n74vhpqndqwd4r7k439xw98kd2a-disdisallowed') is not allowed to refer to path `/tmp/guix-tests/store/bdx3lhq3793i8lz6fvldrp917ba52v1v-foo'
@ build-started /tmp/guix-tests/store/h9mpwgprl6b5b966ravblk34ffy4qaq0-leaked-env-vars.drv - x86_64-linux /tmp/guix-tests/var/log/guix/drvs/h9//mpwgprl6b5b966ravblk34ffy4qaq0-leaked-env-vars.drv.bz2
@ build-succeeded /tmp/guix-tests/store/h9mpwgprl6b5b966ravblk34ffy4qaq0-leaked-env-vars.drv -
derivation #:allowed-references, self allowed
location: /tmp/guix-build-guix-0.13.0.drv-0/source/tests/derivations.scm:611
source:
+ (test-assert
+ "derivation #:allowed-references, self allowed"
+ (let ((drv (derivation
+ %store
+ "allowed"
+ %bash
+ '("-c" "echo $out > $out")
+ #:inputs
+ `((,%bash))
+ #:allowed-references
+ '("out"))))
+ (build-derivations %store (list drv))))
actual-value: #t
result: PASS
test-name: derivation #:allowed-references, self not allowed
location: /tmp/guix-build-guix-0.13.0.drv-0/source/tests/derivations.scm:618
source:
+ (test-assert
+ "derivation #:allowed-references, self not allowed"
+ (let ((drv (derivation
+ %store
+ "disallowed"
+ %bash
+ `("-c" ,"echo $out > $out")
+ #:inputs
+ `((,%bash))
+ #:allowed-references
+ '())))
+ (guard (c ((nix-protocol-error? c) #t))
+ (build-derivations %store (list drv))
+ #f)))
actual-value: #t
result: PASS
test-name: derivation #:disallowed-references, ok
location: /tmp/guix-build-guix-0.13.0.drv-0/source/tests/derivations.scm:629
source:
+ (test-assert
+ "derivation #:disallowed-references, ok"
+ (let ((drv (derivation
+ %store
+ "disallowed"
+ %bash
+ '("-c" "echo hello > $out")
+ #:inputs
+ `((,%bash))
+ #:disallowed-references
+ '("out"))))
+ (build-derivations %store (list drv))))
actual-value: #t
result: PASS
test-name: derivation #:disallowed-references, not ok
location: /tmp/guix-build-guix-0.13.0.drv-0/source/tests/derivations.scm:636
source:
+ (test-assert
+ "derivation #:disallowed-references, not ok"
+ (let* ((txt (add-text-to-store %store "foo" "Hello, world."))
+ (drv (derivation
+ %store
+ "disdisallowed"
+ %bash
+ `("-c" ,(string-append "echo " txt "> $out"))
+ #:inputs
+ `((,%bash) (,txt))
+ #:disallowed-references
+ (list txt))))
+ (guard (c ((nix-protocol-error? c) #t))
+ (build-derivations %store (list drv))
+ #f)))
actual-value: #t
result: PASS
test-name: derivation #:leaked-env-vars
location: /tmp/guix-build-guix-0.13.0.drv-0/source/tests/derivations.scm:651
source:
+ (test-equal
+ "derivation #:leaked-env-vars"
+ (getenv "NIX_STATE_DIR")
+ (let* ((value (getenv "NIX_STATE_DIR"))
+ (drv (derivation
+ %store
+ "leaked-env-vars"
+ %bash
+ '("-c" "echo -n $NIX_STATE_DIR > $out")
+ #:hash
+ (sha256 (string->utf8 value))
+ #:hash-algo
+ 'sha256
+ #:inputs
+ `((,%bash))
+ #:leaked-env-vars
+ '("NIX_STATE_DIR"))))
+ (and (build-derivations %store (list drv))
+ (call-with-input-file
+ (derivation->output-path drv)
+ get-string-all))))
expected-value: "/tmp/guix-tests/var/11678"
actual-value: "/tmp/guix-tests/var/11678"
result: PASS
test-name: build derivation with coreutils
location: /tmp/guix-build-guix-0.13.0.drv-0/source/tests/derivations.scm:672
source:
+ (test-assert
+ "build derivation with coreutils"
+ (let* ((builder
+ (add-text-to-store
+ %store
+ "build-with-coreutils.sh"
+ "echo $PATH ; mkdir --version ; mkdir $out ; touch $out/good"
+ '()))
+ (drv (derivation
+ %store
+ "foo"
+ %bash
+ `(,builder)
+ #:env-vars
+ `(("PATH"
+ unquote
+ (string-append
+ (derivation->output-path %coreutils)
+ @ build-started /tmp/guix-tests/store/9d7mw11w6hmhnzq7ns8fl91plvyyimpj-a.drv - x86_64-linux /tmp/guix-tests/var/log/guix/drvs/9d//7mw11w6hmhnzq7ns8fl91plvyyimpj-a.drv.bz2
@ build-succeeded /tmp/guix-tests/store/9d7mw11w6hmhnzq7ns8fl91plvyyimpj-a.drv -
"/bin")))
+ #:inputs
+ `((,builder) (,%coreutils))))
+ (succeeded?
+ (build-derivations %store (list drv))))
+ (and succeeded?
+ (let ((p (derivation->output-path drv)))
+ (and (valid-path? %store p)
+ (file-exists? (string-append p "/good")))))))
result: SKIP
test-name: build-expression->derivation and invalid module name
location: /tmp/guix-build-guix-0.13.0.drv-0/source/tests/derivations.scm:695
source:
+ (test-equal
+ "build-expression->derivation and invalid module name"
+ '(file-search-error
+ "guix/module/that/does/not/exist.scm")
+ (guard (c ((file-search-error? c)
+ (list 'file-search-error
+ (file-search-error-file-name c))))
+ (build-expression->derivation
+ %store
+ "foo"
+ #t
+ #:modules
+ '((guix module that does not exist)))))
expected-value: (file-search-error "guix/module/that/does/not/exist.scm")
actual-value: (file-search-error "guix/module/that/does/not/exist.scm")
result: PASS
test-name: build-expression->derivation and builder encoding
location: /tmp/guix-build-guix-0.13.0.drv-0/source/tests/derivations.scm:704
source:
+ (test-equal
+ "build-expression->derivation and builder encoding"
+ '("UTF-8" #t)
+ (let* ((exp '(λ (α) (+ α 1)))
+ (drv (build-expression->derivation %store "foo" exp)))
+ (match (derivation-builder-arguments drv)
+ ((... builder)
+ (with-fluids
+ ((%default-port-encoding "UTF-8"))
+ (call-with-input-file
+ builder
+ (lambda (port)
+ (list (port-encoding port)
+ (->bool
+ (string-contains
+ (get-string-all port)
+ "(λ (α) (+ α 1))"))))))))))
expected-value: ("UTF-8" #t)
actual-value: ("UTF-8" #t)
result: PASS
test-name: build-expression->derivation and derivation-prerequisites
location: /tmp/guix-build-guix-0.13.0.drv-0/source/tests/derivations.scm:718
source:
+ (test-assert
+ "build-expression->derivation and derivation-prerequisites"
+ (let ((drv (build-expression->derivation %store "fail" #f)))
+ (any (match-lambda
+ (($ <derivation-input> path)
+ (string=?
+ path
+ (derivation-file-name (%guile-for-build)))))
+ (derivation-prerequisites drv))))
actual-value: #t
result: PASS
test-name: derivation-prerequisites and valid-derivation-input?
location: /tmp/guix-build-guix-0.13.0.drv-0/source/tests/derivations.scm:725
source:
+ (test-assert
+ "derivation-prerequisites and valid-derivation-input?"
+ (let* ((a (build-expression->derivation
+ %store
+ "a"
+ '(mkdir %output)))
+ (b (build-expression->derivation
+ %store
+ "b"
+ `(list ,(random-text))))
+ (c (build-expression->derivation
+ %store
+ "c"
+ `(mkdir %output)
+ #:inputs
+ `(("a" ,a) ("b" ,b)))))
+ (build-derivations
+ %store
+ (list a
+ (package-derivation %store %bootstrap-guile)))
+ (match (derivation-prerequisites
+ c
+ (cut valid-derivation-input? %store <>))
+ ((($ <derivation-input> file ("out")))
+ (string=? file (derivation-file-name b)))
+ (x (pk 'fail x #f)))))
actual-value: #t
result: PASS
test-name: build-expression->derivation without inputs
location: /tmp/guix-build-guix-0.13.0.drv-0/source/tests/derivations.scm:743
source:
+ (test-assert
+ "build-expression->derivation without inputs"
+ (let* ((builder
+ '(begin
+ (mkdir %output)
+ (call-with-output-file
+ (string-append %output "/test")
+ (lambda (p) (display '(hello guix) p)))))
+ (drv (@ build-started /tmp/guix-tests/store/siz27i7vk0g1xngsx049p9vrvss9c712-goo.drv - x86_64-linux /tmp/guix-tests/var/log/guix/drvs/si//z27i7vk0g1xngsx049p9vrvss9c712-goo.drv.bz2
@ build-succeeded /tmp/guix-tests/store/siz27i7vk0g1xngsx049p9vrvss9c712-goo.drv -
substitute: warning: authentication and authorization of substitutes disabled!
substitute: guix substitute: warning: ACL for archive imports seems to be uninitialized, substitutes may be unavailable
@ build-started /tmp/guix-tests/store/qfl2559affw2jnz43j8c6dx0rjngqns3-silent.drv - x86_64-linux /tmp/guix-tests/var/log/guix/drvs/qf//l2559affw2jnz43j8c6dx0rjngqns3-silent.drv.bz2
building of `/tmp/guix-tests/store/qfl2559affw2jnz43j8c6dx0rjngqns3-silent.drv' timed out after 1 seconds of silence
@ build-failed /tmp/guix-tests/store/qfl2559affw2jnz43j8c6dx0rjngqns3-silent.drv - timeout
killing process 11945
substitute: warning: authentication and authorization of substitutes disabled!
substitute: guix substitute: warning: ACL for archive imports seems to be uninitialized, substitutes may be unavailable
@ build-started /tmp/guix-tests/store/6d3dbcj98inv78d5abwp41fbis15kvy6-slow.drv - x86_64-linux /tmp/guix-tests/var/log/guix/drvs/6d//3dbcj98inv78d5abwp41fbis15kvy6-slow.drv.bz2
building of `/tmp/guix-tests/store/6d3dbcj98inv78d5abwp41fbis15kvy6-slow.drv' timed out after 1 seconds
@ build-failed /tmp/guix-tests/store/6d3dbcj98inv78d5abwp41fbis15kvy6-slow.drv - timeout
killing process 11959
@ build-started /tmp/guix-tests/store/cbc4v7vanc01h71qnngr0k35kvvvik9v-input.drv - x86_64-linux /tmp/guix-tests/var/log/guix/drvs/cb//c4v7vanc01h71qnngr0k35kvvvik9v-input.drv.bz2
@ build-succeeded /tmp/guix-tests/store/cbc4v7vanc01h71qnngr0k35kvvvik9v-input.drv -
@ build-started /tmp/guix-tests/store/5ykgrvz6nsm8rz51hww0wfb7kj83s5x7-something.drv - x86_64-linux /tmp/guix-tests/var/log/guix/drvs/5y//kgrvz6nsm8rz51hww0wfb7kj83s5x7-something.drv.bz2
@ build-succeeded /tmp/guix-tests/store/5ykgrvz6nsm8rz51hww0wfb7kj83s5x7-something.drv -
finding garbage collector roots...
removing stale temporary roots file `/tmp/guix-tests/var/11678/temproots/11696'
deleting unused links...
build-expression->derivation
+ %store
+ "goo"
+ builder))
+ (succeeded?
+ (build-derivations %store (list drv))))
+ (and succeeded?
+ (let ((p (derivation->output-path drv)))
+ (equal?
+ '(hello guix)
+ (call-with-input-file
+ (string-append p "/test")
+ read))))))
actual-value: #t
result: PASS
test-name: build-expression->derivation and max-silent-time
location: /tmp/guix-build-guix-0.13.0.drv-0/source/tests/derivations.scm:756
source:
+ (test-assert
+ "build-expression->derivation and max-silent-time"
+ (let* ((store (let ((s (open-connection)))
+ (set-build-options s #:max-silent-time 1)
+ s))
+ (builder '(begin (sleep 100) (mkdir %output) #t))
+ (drv (build-expression->derivation
+ store
+ "silent"
+ builder))
+ (out-path (derivation->output-path drv)))
+ (guard (c ((nix-protocol-error? c)
+ (and (string-contains
+ (nix-protocol-error-message c)
+ "failed")
+ (not (valid-path? store out-path)))))
+ (build-derivations store (list drv))
+ #f)))
actual-value: #t
result: PASS
test-name: build-expression->derivation and timeout
location: /tmp/guix-build-guix-0.13.0.drv-0/source/tests/derivations.scm:770
source:
+ (test-assert
+ "build-expression->derivation and timeout"
+ (let* ((store (let ((s (open-connection)))
+ (set-build-options s #:timeout 1)
+ s))
+ (builder '(begin (sleep 100) (mkdir %output) #t))
+ (drv (build-expression->derivation
+ store
+ "slow"
+ builder))
+ (out-path (derivation->output-path drv)))
+ (guard (c ((nix-protocol-error? c)
+ (and (string-contains
+ (nix-protocol-error-message c)
+ "failed")
+ (not (valid-path? store out-path)))))
+ (build-derivations store (list drv))
+ #f)))
actual-value: #t
result: PASS
test-name: build-expression->derivation and derivation-prerequisites-to-build
location: /tmp/guix-build-guix-0.13.0.drv-0/source/tests/derivations.scm:784
source:
+ (test-assert
+ "build-expression->derivation and derivation-prerequisites-to-build"
+ (let ((drv (build-expression->derivation %store "fail" #f)))
+ (null? (derivation-prerequisites-to-build %store drv))))
actual-value: #t
result: PASS
test-name: derivation-prerequisites-to-build when outputs already present
location: /tmp/guix-build-guix-0.13.0.drv-0/source/tests/derivations.scm:790
source:
+ (test-assert
+ "derivation-prerequisites-to-build when outputs already present"
+ (let* ((builder '(begin (mkdir %output) #t))
+ (input-drv
+ (build-expression->derivation
+ %store
+ "input"
+ builder))
+ (input-path
+ (derivation-output-path
+ (assoc-ref (derivation-outputs input-drv) "out")))
+ (drv (build-expression->derivation
+ %store
+ "something"
+ builder
+ #:inputs
+ `(("i" ,input-drv))))
+ (output (derivation->output-path drv)))
+ (when (valid-path? %store input-path)
+ (delete-paths %store (list input-path)))
+ (when (valid-path? %store output)
+ (delete-paths %store (list output)))
+ (and (equal?
+ (map derivation-input-path
+ (derivation-prerequisites-to-build %store drv))
+ (list (derivation-file-name input-drv)))
+ (build-derivations %store (list drv))
+ (delete-paths %store (list input-path))
+ (not (valid-path? %store input-path))
+ (null? (derivation-prerequisites-to-build %store drv)))))
actual-value: #t
result: PASS
test-name: substitute: warning: authentication and authorization of substitutes disabled!
substitute: guix substitute: warning: ACL for archive imports seems to be uninitialized, substitutes may be unavailable
substitute: warning: authentication and authorization of substitutes disabled!
substitute: guix substitute: warning: ACL for archive imports seems to be uninitialized, substitutes may be unavailable
derivation-prerequisites-to-build and substitutes
location: /tmp/guix-build-guix-0.13.0.drv-0/source/tests/derivations.scm:819
source:
+ (test-assert
+ "derivation-prerequisites-to-build and substitutes"
+ (let* ((store (open-connection))
+ (drv (build-expression->derivation
+ store
+ "prereq-subst"
+ (random 1000)))
+ (output (derivation->output-path drv)))
+ (set-build-options
+ store
+ #:use-substitutes?
+ #t
+ #:substitute-urls
+ (%test-substitute-urls))
+ (with-derivation-narinfo
+ drv
+ (let-values
+ (((build download)
+ (derivation-prerequisites-to-build store drv))
+ ((build* download*)
+ (derivation-prerequisites-to-build
+ store
+ drv
+ #:substitutable?
+ (const #f))))
+ (and (null? build)
+ (equal? download (list output))
+ (null? download*)
+ (null? build*))))))
actual-value: #t
result: PASS
test-name: derivation-prerequisites-to-build and substitutes, non-substitutable build
location: /tmp/guix-build-guix-0.13.0.drv-0/source/tests/derivations.scm:841
source:
+ (test-assert
+ "derivation-prerequisites-to-build and substitutes, non-substitutable build"
+ (let* ((store (open-connection))
+ (drv (build-expression->derivation
+ store
+ "prereq-no-subst"
+ (random 1000)
+ #:substitutable?
+ #f))
+ (output (derivation->output-path drv)))
+ (set-build-options
+ store
+ #:use-substitutes?
+ #t
+ #:substitute-urls
+ (%test-substitute-urls))
+ (with-derivation-narinfo
+ drv
+ (let-values
+ (((build download)
+ (derivation-prerequisites-to-build store drv)))
+ (and (null? download)
+ (match build
+ (((? derivation-input? input))
+ (string=?
+ (derivation-input-path input)
+ (derivation-file-name drv)))))))))
actual-value: #t
result: PASS
test-name: derivation-prerequisites-to-build and substitutes, local build
location: /tmp/guix-build-guix-0.13.0.drv-0/source/tests/derivations.scm:863
source:
+ (test-assert
+ "derivation-prerequisites-to-build and substitutes, local build"
+ (with-store
+ store
+ (let* ((drv (build-expression->derivation
+ store
+ "prereq-subst-local"
+ (random 1000)
+ #:local-build?
+ #t))
+ (output (derivation->output-path drv)))
+ (set-build-options
+ store
+ #:use-substitutes?
+ #t
+ #:substitute-urls
+ (%test-substitute-urls))
+ (with-derivation-narinfo
+ drv
+ (let-values
+ (((build download)
+ (derivation-prerequisites-to-build store drv)))
+ (and (null? build)
+ (match download
+ (((? string? item))
+ (string=? item (derivation->output-path drv))))))))))
actual-value: #t
result: PASS
test-name: derivation-prerequisites-to-build in 'check' mode
location: /tmp/guix-build-guix-0.13.0.drv-0/source/tests/derivations.scm:885
source:
+ (test-assert
+ "derivation-prerequisites-to-build in 'check' mode"
+ (with-store
+ store
+ (let* ((dep (build-expression->derivation
+ store
+ "dep"
+ `(begin ,(random-text) (mkdir %output))))
+ (drv (build-expression->derivation
+ store
+ "to-check"
+ '(mkdir %output)
+ #:inputs
+ `(("dep" ,dep)))))
+ (build-derivations store (list drv))
+ (delete-paths
+ store
+ (list (derivation->output-path dep)))
+ (and (null? (derivation-prerequisites-to-build store drv))
+ (match (substitute: warning: authentication and authorization of substitutes disabled!
substitute: guix substitute: warning: ACL for archive imports seems to be uninitialized, substitutes may be unavailable
building path(s) `/tmp/guix-tests/store/0qkhy40mh59all8jx9v72ywpjlivjjwj-dep'
building path(s) `/tmp/guix-tests/store/nak33yc70xvmanh7yy1swx9hv5n119l4-to-check'
finding garbage collector roots...
removing stale temporary roots file `/tmp/guix-tests/var/11678/temproots/11989'
removing stale temporary roots file `/tmp/guix-tests/var/11678/temproots/.fuse_hidden0000f99a0000237f'
deleting `/tmp/guix-tests/store/0qkhy40mh59all8jx9v72ywpjlivjjwj-dep'
deleting `/tmp/guix-tests/store/trash'
deleting unused links...
note: currently hard linking saves 0.14 MiB
@ build-started /tmp/guix-tests/store/kvz3csrwpha43pk3mvhwsrzw2yz5qviv-fail.drv - x86_64-linux /tmp/guix-tests/var/log/guix/drvs/kv//z3csrwpha43pk3mvhwsrzw2yz5qviv-fail.drv.bz2
builder for `/tmp/guix-tests/store/kvz3csrwpha43pk3mvhwsrzw2yz5qviv-fail.drv' failed with exit code 1
@ build-failed /tmp/guix-tests/store/kvz3csrwpha43pk3mvhwsrzw2yz5qviv-fail.drv - 1 builder for `/tmp/guix-tests/store/kvz3csrwpha43pk3mvhwsrzw2yz5qviv-fail.drv' failed with exit code 1
@ build-started /tmp/guix-tests/store/v3d6ak4h46illn6yqkid6fsid3i749yy-double.drv - x86_64-linux /tmp/guix-tests/var/log/guix/drvs/v3//d6ak4h46illn6yqkid6fsid3i749yy-double.drv.bz2
@ build-succeeded /tmp/guix-tests/store/v3d6ak4h46illn6yqkid6fsid3i749yy-double.drv -
derivation-prerequisites-to-build
+ store
+ drv
+ #:mode
+ (build-mode check))
+ ((input)
+ (string=?
+ (derivation-input-path input)
+ (derivation-file-name dep))))))))
actual-value: #t
result: PASS
test-name: substitution-oracle and #:substitute? #f
location: /tmp/guix-build-guix-0.13.0.drv-0/source/tests/derivations.scm:905
source:
+ (test-assert
+ "substitution-oracle and #:substitute? #f"
+ (with-store
+ store
+ (let* ((dep (build-expression->derivation
+ store
+ "dep"
+ `(begin ,(random-text) (mkdir %output))))
+ (drv (build-expression->derivation
+ store
+ "not-subst"
+ `(begin ,(random-text) (mkdir %output))
+ #:substitutable?
+ #f
+ #:inputs
+ `(("dep" ,dep))))
+ (query #f))
+ (define (record-substitutable-path-query store paths)
+ (when query (error "already called!" query))
+ (set! query paths)
+ '())
+ (mock ((guix store)
+ substitutable-paths
+ record-substitutable-path-query)
+ (let ((pred (substitution-oracle store (list drv))))
+ (pred (derivation->output-path drv))))
+ (equal?
+ (pk 'query query)
+ (list (derivation->output-path dep))))))
;;; (query ("/tmp/guix-tests/store/93m3pmns6b2f5pmvkmrbcz3wjf8mncpg-dep"))
actual-value: #t
result: PASS
test-name: build-expression->derivation with expression returning #f
location: /tmp/guix-build-guix-0.13.0.drv-0/source/tests/derivations.scm:934
source:
+ (test-assert
+ "build-expression->derivation with expression returning #f"
+ (let* ((builder '(begin (mkdir %output) #f))
+ (drv (build-expression->derivation
+ %store
+ "fail"
+ builder))
+ (out-path (derivation->output-path drv)))
+ (guard (c ((nix-protocol-error? c)
+ (and (string-match
+ "build .* failed"
+ (nix-protocol-error-message c))
+ (not (valid-path? %store out-path)))))
+ (build-derivations %store (list drv))
+ #f)))
actual-value: #t
result: PASS
test-name: build-expression->derivation with two outputs
location: /tmp/guix-build-guix-0.13.0.drv-0/source/tests/derivations.scm:949
source:
+ (test-assert
+ "build-expression->derivation with two outputs"
+ (let* ((builder
+ '(begin
+ (call-with-output-file
+ (assoc-ref %outputs "out")
+ (lambda (p) (display '(hello) p)))
+ (call-with-output-file
+ (assoc-ref %outputs "second")
+ (lambda (p) (display '(world) p)))))
+ (drv (build-expression->derivation
+ %store
+ "double"
+ builder
+ #:outputs
+ '("out" "second")))
+ (succeeded?
+ (build-derivations %store (list drv))))
+ (and succeeded?
+ (let ((one (derivation->output-path drv))
+ (two (derivation->output-path drv "second")))
+ (and (equal? '(hello) (call-with-input-file one read))
+ (equal? '(world) (call-with-input-file two read)))))))
actual-value: #t
result: PASS
test-name: build-expression->derivation with one input
location: /tmp/guix-build-guix-0.13.0.drv-0/source/tests/derivations.scm:968
source:
+ (test-assert
+ "build-expression->derivation with one input"
+ (let* ((builder
+ '(call-with-output-file
+ %output
+ (lambda (p)
+ (let ((cu (assoc-ref %build-inputs "cu")))
+ (close 1)
+ (dup2 (port->fdes p) 1)
+ (execl (string-append cu "/bin/uname")
+ @ build-started /tmp/guix-tests/store/vs63w833h9dn987d6j80x9nggmjhjj6n-module-import.drv - x86_64-linux /tmp/guix-tests/var/log/guix/drvs/vs//63w833h9dn987d6j80x9nggmjhjj6n-module-import.drv.bz2
@ build-succeeded /tmp/guix-tests/store/vs63w833h9dn987d6j80x9nggmjhjj6n-module-import.drv -
@ build-started /tmp/guix-tests/store/9xp57zkgn9n85i77xd2975k2lh6hlxrl-module-import-compiled.drv - x86_64-linux /tmp/guix-tests/var/log/guix/drvs/9x//p57zkgn9n85i77xd2975k2lh6hlxrl-module-import-compiled.drv.bz2
@ build-succeeded /tmp/guix-tests/store/9xp57zkgn9n85i77xd2975k2lh6hlxrl-module-import-compiled.drv -
@ build-started /tmp/guix-tests/store/yz1m0dxzg68vryd8yra1fiaxlni4ppfp-test-with-modules.drv - x86_64-linux /tmp/guix-tests/var/log/guix/drvs/yz//1m0dxzg68vryd8yra1fiaxlni4ppfp-test-with-modules.drv.bz2
@ build-succeeded /tmp/guix-tests/store/yz1m0dxzg68vryd8yra1fiaxlni4ppfp-test-with-modules.drv -
"uname"
+ "-a")))))
+ (drv (build-expression->derivation
+ %store
+ "uname"
+ builder
+ #:inputs
+ `(("cu" ,%coreutils))))
+ (succeeded?
+ (build-derivations %store (list drv))))
+ (and succeeded?
+ (let ((p (derivation->output-path drv)))
+ (string-contains
+ (call-with-input-file p read-line)
+ "GNU")))))
result: SKIP
test-name: build-expression->derivation with modules
location: /tmp/guix-build-guix-0.13.0.drv-0/source/tests/derivations.scm:984
source:
+ (test-assert
+ "build-expression->derivation with modules"
+ (let* ((builder
+ `(begin
+ (use-modules (guix build utils))
+ (let ((out (assoc-ref %outputs "out")))
+ (mkdir-p (string-append out "/guile/guix/nix"))
+ #t)))
+ (drv (build-expression->derivation
+ %store
+ "test-with-modules"
+ builder
+ #:modules
+ '((guix build utils)))))
+ (and (build-derivations %store (list drv))
+ (let* ((p (derivation->output-path drv))
+ (s (stat (string-append p "/guile/guix/nix"))))
+ (eq? (stat:type s) 'directory)))))
actual-value: #t
result: PASS
test-name: build-expression->derivation: same fixed-output path
location: /tmp/guix-build-guix-0.13.0.drv-0/source/tests/derivations.scm:999
source:
+ (test-assert
+ "build-expression->derivation: same fixed-output path"
+ (let* ((builder1
+ '(call-with-output-file
+ %output
+ (lambda (p) (write "hello" p))))
+ (builder2
+ '(call-with-output-file
+ (pk 'difference-here! %output)
+ (lambda (p) (write "hello" p))))
+ (hash (sha256 (string->utf8 "hello")))
+ (input1
+ (build-expression->derivation
+ %store
+ "fixed"
+ builder1
+ #:hash
+ hash
+ #:hash-algo
+ 'sha256))
+ (input2
+ (build-expression->derivation
+ %store
+ "fixed"
+ builder2
+ #:hash
+ hash
+ #:hash-algo
+ 'sha256))
+ (succeeded?
+ (build-derivations %store (list input1 input2))))
+ (and succeeded?
+ (not (string=?
+ (derivation-file-name input1)
+ (derivation-file-name input2)))
+ (string=?
+ (derivation->output-path input1)
+ (derivation->output-path input2)))))
actual-value: #t
result: PASS
test-name: build-expression->derivation with a fixed-output input
location: /tmp/guix-build-guix-0.13.0.drv-0/source/tests/derivations.scm:1020
source:
+ (test-assert
+ "build-expression->derivation with a fixed-output input"
+ (let* ((builder1
+ '(call-with-output-file
+ %output
+ (lambda (p) (write "hello" p))))
+ (builder2
+ '(call-with-output-file
+ (pk 'difference-here! %output)
+ (lambda (p) (write "hello" p))))
+ (hash (sha256 (string->utf8 "hello")))
+ (input1
+ (build-expression->derivation
+ %store
+ "fixed"
+ builder1
+ #:hash
+ hash
+ #:hash-algo
+ 'sha256))
+ (input2
+ (build-expression->derivation
+ %store
+ "fixed"
+ builder2
+ #:hash
+ hash
+ #:hash-algo
+ 'sha256))
+ (builder3
+ '(let ((input (assoc-ref %build-inputs "input")))
+ (call-with-output-file
+ %output
+ (lambda (out)
+ (format #f "My input is ~a.~%" input)))))
+ (final1
+ (@ build-started /tmp/guix-tests/store/8dkhnfprkjn6p5hh6abjbvhcypif1djn-final.drv - x86_64-linux /tmp/guix-tests/var/log/guix/drvs/8d//khnfprkjn6p5hh6abjbvhcypif1djn-final.drv.bz2
@ build-succeeded /tmp/guix-tests/store/8dkhnfprkjn6p5hh6abjbvhcypif1djn-final.drv -
@ build-started /tmp/guix-tests/store/q9ml6iwz4b8jffgd6l3jkllm0lm9g7aw-fixed-rec.drv - x86_64-linux /tmp/guix-tests/var/log/guix/drvs/q9//ml6iwz4b8jffgd6l3jkllm0lm9g7aw-fixed-rec.drv.bz2
@ build-succeeded /tmp/guix-tests/store/q9ml6iwz4b8jffgd6l3jkllm0lm9g7aw-fixed-rec.drv -
@ build-started /tmp/guix-tests/store/9a2z4zz7sraa065z4fa12g9sg6mlhkj5-small-fixed-rec.drv - x86_64-linux /tmp/guix-tests/var/log/guix/drvs/9a//2z4zz7sraa065z4fa12g9sg6mlhkj5-small-fixed-rec.drv.bz2
@ build-succeeded /tmp/guix-tests/store/9a2z4zz7sraa065z4fa12g9sg6mlhkj5-small-fixed-rec.drv -
@ build-started /tmp/guix-tests/store/aakag457jih22azd1mkhcvnlnv9115ky-fixed-rec-user.drv - x86_64-linux /tmp/guix-tests/var/log/guix/drvs/aa//kag457jih22azd1mkhcvnlnv9115ky-fixed-rec-user.drv.bz2
@ build-succeeded /tmp/guix-tests/store/aakag457jih22azd1mkhcvnlnv9115ky-fixed-rec-user.drv -
build-expression->derivation
+ %store
+ "final"
+ builder3
+ #:inputs
+ `(("input" ,input1))))
+ (final2
+ (build-expression->derivation
+ %store
+ "final"
+ builder3
+ #:inputs
+ `(("input" ,input2)))))
+ (and (string=?
+ (derivation->output-path final1)
+ (derivation->output-path final2))
+ (string=?
+ (derivation->output-path final1)
+ (derivation-path->output-path
+ (derivation-file-name final1)))
+ (build-derivations %store (list final1 final2)))))
actual-value: #t
result: PASS
test-name: build-expression->derivation produces recursive fixed-output
location: /tmp/guix-build-guix-0.13.0.drv-0/source/tests/derivations.scm:1051
source:
+ (test-assert
+ "build-expression->derivation produces recursive fixed-output"
+ (let* ((builder
+ '(begin
+ (use-modules (srfi srfi-26))
+ (mkdir %output)
+ (chdir %output)
+ (call-with-output-file
+ "exe"
+ (cut display "executable" <>))
+ (chmod "exe" 511)
+ (symlink "exe" "symlink")
+ (mkdir "subdir")))
+ (drv (build-expression->derivation
+ %store
+ "fixed-rec"
+ builder
+ #:hash-algo
+ 'sha256
+ #:hash
+ (base32
+ "10k1lw41wyrjf9mxydi0is5nkpynlsvgslinics4ppir13g7d74p")
+ #:recursive?
+ #t)))
+ (and (build-derivations %store (list drv))
+ (let* ((dir (derivation->output-path drv))
+ (exe (string-append dir "/exe"))
+ (link (string-append dir "/symlink"))
+ (subdir (string-append dir "/subdir")))
+ (and (executable-file? exe)
+ (string=?
+ "executable"
+ (call-with-input-file exe get-string-all))
+ (string=? "exe" (readlink link))
+ (file-is-directory? subdir))))))
actual-value: #t
result: PASS
test-name: build-expression->derivation uses recursive fixed-output
location: /tmp/guix-build-guix-0.13.0.drv-0/source/tests/derivations.scm:1077
source:
+ (test-assert
+ "build-expression->derivation uses recursive fixed-output"
+ (let* ((builder
+ '(call-with-output-file
+ %output
+ (lambda (port) (display "hello" port))))
+ (fixed (build-expression->derivation
+ %store
+ "small-fixed-rec"
+ builder
+ #:hash-algo
+ 'sha256
+ #:hash
+ (base32
+ "0sg9f58l1jj88w6pdrfdpj5x9b1zrwszk84j81zvby36q9whhhqa")
+ #:recursive?
+ #t))
+ (in (derivation->output-path fixed))
+ (builder
+ `(begin
+ (mkdir %output)
+ (chdir %output)
+ (symlink ,in "symlink")))
+ (drv (build-expression->derivation
+ %store
+ "fixed-rec-user"
+ builder
+ #:inputs
+ `(("fixed" ,fixed)))))
+ (and (build-derivations %store (list drv))
+ (let ((out (derivation->output-path drv)))
+ (string=?
+ (readlink (string-append out "/symlink"))
+ in)))))
actual-value: #t
result: PASS
test-name: build-expression->derivation with #:references-graphs
location: /tmp/guix-build-guix-0.13.0.drv-0/source/tests/derivations.scm:1099
source:
+ (test-assert
+ "build-expression->derivation with #:references-graphs"
+ (let* ((input (add-text-to-store
+ %store
+ "foo"
+ "hello"
+ (list %bash %mkdir)))
+ (builder '(copy-file "input" %output))
+ @ build-started /tmp/guix-tests/store/33xr95dfil5qna3dxlzlzyvrlw9nycn0-references-graphs.drv - x86_64-linux /tmp/guix-tests/var/log/guix/drvs/33//xr95dfil5qna3dxlzlzyvrlw9nycn0-references-graphs.drv.bz2
@ build-succeeded /tmp/guix-tests/store/33xr95dfil5qna3dxlzlzyvrlw9nycn0-references-graphs.drv -
@ build-started /tmp/guix-tests/store/ajqc0l1rbgd83hdid7ain2wr0wiwvvh4-original-drv2.drv - x86_64-linux /tmp/guix-tests/var/log/guix/drvs/aj//qc0l1rbgd83hdid7ain2wr0wiwvvh4-original-drv2.drv.bz2
@ build-succeeded /tmp/guix-tests/store/ajqc0l1rbgd83hdid7ain2wr0wiwvvh4-original-drv2.drv -
@ build-started /tmp/guix-tests/store/vks5g20fjlmi5daip35rrd34869fnql9-drv-to-remap.drv - x86_64-linux /tmp/guix-tests/var/log/guix/drvs/vk//s5g20fjlmi5daip35rrd34869fnql9-drv-to-remap.drv.bz2
@ build-succeeded /tmp/guix-tests/store/vks5g20fjlmi5daip35rrd34869fnql9-drv-to-remap.drv -
(drv (build-expression->derivation
+ %store
+ "references-graphs"
+ builder
+ #:references-graphs
+ `(("input" unquote input))))
+ (out (derivation->output-path drv)))
+ (define (deps path . deps)
+ (let ((count (length deps)))
+ (string-append
+ path
+ "\n\n"
+ (number->string count)
+ "\n"
+ (string-join (sort deps string<?) "\n")
+ (if (zero? count) "" "\n"))))
+ (and (build-derivations %store (list drv))
+ (equal?
+ (call-with-input-file out get-string-all)
+ (string-concatenate
+ (map cdr
+ (sort (map (lambda (p d) (cons p (apply deps p d)))
+ (list input %bash %mkdir)
+ (list (list %bash %mkdir) '() '()))
+ (lambda (x y)
+ (match x
+ ((p1 . _)
+ (match y
+ ((p2 . _)
+ (string<? p1 p2)))))))))))))
actual-value: #t
result: PASS
test-name: map-derivation
location: /tmp/guix-build-guix-0.13.0.drv-0/source/tests/derivations.scm:1130
source:
+ (test-equal
+ "map-derivation"
+ "hello"
+ (let* ((joke (package-derivation %store guile-1.8))
+ (good (package-derivation %store %bootstrap-guile))
+ (drv1 (build-expression->derivation
+ %store
+ "original-drv1"
+ #f
+ #:guile-for-build
+ joke))
+ (drv2 (build-expression->derivation
+ %store
+ "original-drv2"
+ '(call-with-output-file
+ %output
+ (lambda (p) (display "hello" p)))))
+ (drv3 (build-expression->derivation
+ %store
+ "drv-to-remap"
+ '(let ((in (assoc-ref %build-inputs "in")))
+ (copy-file in %output))
+ #:inputs
+ `(("in" ,drv1))
+ #:guile-for-build
+ joke))
+ (drv4 (map-derivation
+ %store
+ drv3
+ `((,drv1 unquote drv2) (,joke unquote good))))
+ (out (derivation->output-path drv4)))
+ (and (build-derivations
+ %store
+ (list (pk 'remapped drv4)))
+ (call-with-input-file out get-string-all))))
;;; (remapped #<derivation /tmp/guix-tests/store/vks5g20fjlmi5daip35rrd34869fnql9-drv-to-remap.drv => /tmp/guix-tests/store/f8prvykpaplzl0gw9qykipviq3vil9ws-drv-to-remap 223ff00>)
expected-value: "hello"
actual-value: "hello"
result: PASS
test-name: map-derivation, sources
location: /tmp/guix-build-guix-0.13.0.drv-0/source/tests/derivations.scm:1153
source:
+ (test-equal
+ "map-derivation, sources"
+ "hello"
+ (let* ((script1
+ (add-text-to-store %store "fail.sh" "exit 1"))
+ (script2
+ (add-text-to-store
+ %store
+ "hi.sh"
+ "echo -n hello > $out"))
+ (bash-full
+ (package-derivation
+ %store
+ (@ (gnu packages bash) bash)))
+ (drv1 (derivation
+ %store
+ "drv-to-remap"
+ (derivation->output-path bash-full)
+ `("-e" ,script1)
+ #:inputs
+ `((,bash-full) (,script1))))
+ (drv2 (map-derivation
+ %store
+ drv1
+ `((,bash-full unquote %bash)
+ (,script1 unquote script2))))
+ (out (derivation->output-path drv2)))
+ (and (build-derivations
+ %store
+ (list (pk 'remapped* drv2)))
+ (call-with-input-file out get-string-all))))
;;; (remapped* #<derivation @ build-started /tmp/guix-tests/store/3b1r9qvgpcami02g66iqgnbfm3xxsx95-drv-to-remap.drv - x86_64-linux /tmp/guix-tests/var/log/guix/drvs/3b//1r9qvgpcami02g66iqgnbfm3xxsx95-drv-to-remap.drv.bz2
@ build-succeeded /tmp/guix-tests/store/3b1r9qvgpcami02g66iqgnbfm3xxsx95-drv-to-remap.drv -
/tmp/guix-tests/store/3b1r9qvgpcami02g66iqgnbfm3xxsx95-drv-to-remap.drv => /tmp/guix-tests/store/d16rf6zch2w23cn1v1gm8r3w12pc7y2m-drv-to-remap 23b6190>)
expected-value: "hello"
actual-value: "hello"
result: PASS
SKIP: tests/packages
====================
test-name: printer with location
location: /tmp/guix-build-guix-0.13.0.drv-0/source/tests/packages.scm:69
source:
+ (test-assert
+ "printer with location"
+ (string-match
+ "^#<package foo@0 foo.scm:42 [[:xdigit:]]+>$"
+ (with-output-to-string
+ (lambda ()
+ (write (dummy-package
+ "foo"
+ (location (make-location "foo.scm" 42 7))))))))
actual-value: #("#<package foo@0 foo.scm:42 1938000>" (0 . 35))
result: PASS
test-name: printer without location
location: /tmp/guix-build-guix-0.13.0.drv-0/source/tests/packages.scm:77
source:
+ (test-assert
+ "printer without location"
+ (string-match
+ "^#<package foo@0 [[:xdigit:]]+>$"
+ (with-output-to-string
+ (lambda ()
+ (write (dummy-package "foo" (location #f)))))))
actual-value: #("#<package foo@0 1a2ce40>" (0 . 24))
result: PASS
test-name: hidden-package
location: /tmp/guix-build-guix-0.13.0.drv-0/source/tests/packages.scm:84
source:
+ (test-assert
+ "hidden-package"
+ (and (hidden-package?
+ (hidden-package (dummy-package "foo")))
+ (not (hidden-package? (dummy-package "foo")))))
actual-value: #t
result: PASS
test-name: package-superseded
location: /tmp/guix-build-guix-0.13.0.drv-0/source/tests/packages.scm:88
source:
+ (test-assert
+ "package-superseded"
+ (let* ((new (dummy-package "bar"))
+ (old (deprecated-package "foo" new)))
+ (and (eq? (package-superseded old) new)
+ (mock ((gnu packages)
+ find-best-packages-by-name
+ (const (list old)))
+ (specification->package "foo")
+ (and (eq? new (specification->package "foo"))
+ (eq? new (specification->package+output "foo")))))))
actual-value: #t
result: PASS
test-name: transaction-upgrade-entry, zero upgrades
location: /tmp/guix-build-guix-0.13.0.drv-0/source/tests/packages.scm:97
source:
+ (test-assert
+ "transaction-upgrade-entry, zero upgrades"
+ (let* ((old (dummy-package "foo" (version "1")))
+ (tx (mock ((gnu packages)
+ find-newest-available-packages
+ (const vlist-null))
+ ((@@ (guix scripts package)
+ transaction-upgrade-entry)
+ (manifest-entry
+ (inherit (package->manifest-entry old))
+ (item (string-append
+ (%store-prefix)
+ "/"
+ (make-string 32 #\e)
+ "-foo-1")))
+ (manifest-transaction)))))
+ (manifest-transaction-null? tx)))
actual-value: #t
result: PASS
test-name: transaction-upgrade-entry, one upgrade
location: /tmp/guix-build-guix-0.13.0.drv-0/source/tests/packages.scm:109
source:
+ (test-assert
+ "transaction-upgrade-entry, one upgrade"
+ (let* ((old (dummy-package "foo" (version "1")))
+ (new (dummy-package "foo" (version "2")))
+ (tx (mock ((gnu packages)
+ find-newest-available-packages
+ (const (vhash-cons "foo" (list "2" new) vlist-null)))
+ ((@@ (guix scripts package)
+ transaction-upgrade-entry)
+ (manifest-entry
+ (inherit (package->manifest-entry old))
+ (item (string-append
+ (%store-prefix)
+ "/"
+ (make-string 32 #\e)
+ "-foo-1")))
+ (manifest-transaction)))))
+ (and (match (manifest-transaction-install tx)
+ ((($ <manifest-entry> "foo" "2" "out" item))
+ (eq? item new)))
+ (null? (manifest-transaction-remove tx)))))
actual-value: #t
result: PASS
test-name: transaction-upgrade-entry, superseded package
location: /tmp/guix-build-guix-0.13.0.drv-0/source/tests/packages.scm:125
source:
+ (test-assert
+ "transaction-upgrade-entry, superseded package"
+ (let* ((old (dummy-package "foo" (version "1")))
+ (new (dummy-package "bar" (version "2")))
+ (dep (deprecated-package "foo" new))
+ (tx (mock ((gnu packages)
+ find-newest-available-packages
+ (const (vhash-cons "foo" (list "2" dep) vlist-null)))
+ ((@@ (guix scripts package)
+ transaction-upgrade-entry)
+ (manifest-entry
+ (inherit (package->manifest-entry old))
+ (item (string-append
+ (%store-prefix)
+ "/"
+ (make-string 32 #\e)
+ "-foo-1")))
+ (manifest-transaction)))))
+ (and (match (manifest-transaction-install tx)
+ ((($ <manifest-entry> "bar" "2" "out" item))
+ (eq? item new)))
+ (match (manifest-transaction-remove tx)
+ (((? manifest-pattern? pattern))
+ (and (string=? (manifest-pattern-name pattern) "foo")
+ (string=? (manifest-pattern-version pattern) "1")
+ (string=?
+ (manifest-pattern-output pattern)
+ "out")))))))
actual-value: #t
result: PASS
test-name: package-field-location
location: /tmp/guix-build-guix-0.13.0.drv-0/source/tests/packages.scm:146
source:
+ (test-assert
+ "package-field-location"
+ (let ()
+ (define (goto port line column)
+ (unless
+ (and (= (port-column port) (- column 1))
+ (= (port-line port) (- line 1)))
+ (unless
+ (eof-object? (get-char port))
+ (goto port line column))))
+ (define read-at
+ (match-lambda
+ (($ <location> file line column)
+ (call-with-input-file
+ (search-path %load-path file)
+ (lambda (port)
+ (goto port line column)
+ (read port))))))
+ (and (member
+ (read-at
+ (package-field-location %bootstrap-guile 'name))
+ (let ((name (package-name %bootstrap-guile)))
+ (list name `(name ,name))))
+ (member
+ (read-at
+ (package-field-location
+ %bootstrap-guile
+ 'version))
+ (let ((version (package-version %bootstrap-guile)))
+ (list version `(version ,version))))
+ (not (package-field-location
+ %bootstrap-guile
+ 'does-not-exist)))))
actual-value: #t
result: PASS
test-name: package-field-location, relative file name
location: /tmp/guix-build-guix-0.13.0.drv-0/source/tests/packages.scm:173
source:
+ (test-equal
+ "package-field-location, relative file name"
+ (location-file
+ (package-location %bootstrap-guile))
+ (with-fluids
+ ((%file-port-name-canonicalization 'absolute))
+ (location-file
+ (package-field-location
+ %bootstrap-guile
+ 'version))))
expected-value: "gnu/packages/bootstrap.scm"
actual-value: "gnu/packages/bootstrap.scm"
result: PASS
test-name: package-transitive-inputs
location: /tmp/guix-build-guix-0.13.0.drv-0/source/tests/packages.scm:178
source:
+ (test-assert
+ "package-transitive-inputs"
+ (let* ((a (dummy-package "a"))
+ (b (dummy-package
+ "b"
+ (propagated-inputs `(("a" ,a)))))
+ (c (dummy-package "c" (inputs `(("a" ,a)))))
+ (d (dummy-package
+ "d"
+ (propagated-inputs `(("x" "something.drv")))))
+ (e (dummy-package
+ "e"
+ (inputs `(("b" ,b) ("c" ,c) ("d" ,d))))))
+ (and (null? (package-transitive-inputs a))
+ (equal?
+ `(("a" ,a))
+ (package-transitive-inputs b))
+ (equal?
+ `(("a" ,a))
+ (package-transitive-inputs c))
+ (equal?
+ (package-propagated-inputs d)
+ (package-transitive-inputs d))
+ (equal?
+ `(("b" ,b)
+ ("c" ,c)
+ ("d" ,d)
+ ("a" ,a)
+ ("x" "something.drv"))
+ (pk 'x (package-transitive-inputs e))))))
;;; (x (("b" #<package b@0 /tmp/guix-build-guix-0.13.0.drv-0/source/tests/packages.scm:180 10eaa80>) ("c" #<package c@0 /tmp/guix-build-guix-0.13.0.drv-0/source/tests/packages.scm:182 10ea900>) ("d" #<package d@0 /tmp/guix-build-guix-0.13.0.drv-0/source/tests/packages.scm:184 10ea780>) ("a" #<package a@0 /tmp/guix-build-guix-0.13.0.drv-0/source/tests/packages.scm:179 10eac00>) ("x" "something.drv")))
actual-value: #t
result: PASS
test-name: package-transitive-inputs, no duplicates
location: /tmp/guix-build-guix-0.13.0.drv-0/source/tests/packages.scm:197
source:
+ (test-assert
+ "package-transitive-inputs, no duplicates"
+ (let* ((a (dummy-package "a"))
+ (b (dummy-package
+ "b"
+ (inputs `(("a+" ,a)))
+ (native-inputs `(("a*" ,a)))
+ (propagated-inputs `(("a" ,a)))))
+ (c (dummy-package
+ "c"
+ (propagated-inputs `(("b" ,b)))))
+ (d (dummy-package "d" (inputs `(("a" ,a) ("c" ,c)))))
+ (e (dummy-package "e" (inputs `(("b" ,b) ("c" ,c))))))
+ (and (null? (package-transitive-inputs a))
+ (equal?
+ `(("a*" ,a) ("a+" ,a) ("a" ,a))
+ (package-transitive-inputs b))
+ (equal?
+ `(("b" ,b) ("a" ,a))
+ (package-transitive-inputs c))
+ (equal?
+ `(("a" ,a) ("c" ,c) ("b" ,b))
+ (package-transitive-inputs d))
+ (equal?
+ `(("b" ,b) ("c" ,c) ("a" ,a))
+ (package-transitive-inputs e)))))
actual-value: #t
result: PASS
test-name: package-transitive-supported-systems
location: /tmp/guix-build-guix-0.13.0.drv-0/source/tests/packages.scm:219
source:
+ (test-equal
+ "package-transitive-supported-systems"
+ '(("x" "y" "z") ("x" "y") ("y") ("y") ("y"))
+ (let* ((a (dummy-package
+ "a"
+ (build-system trivial-build-system)
+ (supported-systems '("x" "y" "z"))))
+ (b (dummy-package
+ "b"
+ (build-system trivial-build-system)
+ (supported-systems '("x" "y"))
+ (inputs `(("a" ,a)))))
+ (c (dummy-package
+ "c"
+ (build-system trivial-build-system)
+ (supported-systems '("y" "z"))
+ (inputs `(("b" ,b)))))
+ (d (dummy-package
+ "d"
+ (build-system trivial-build-system)
+ (supported-systems '("x" "y" "z"))
+ (inputs `(("b" ,b) ("c" ,c)))))
+ (e (dummy-package
+ "e"
+ (build-system trivial-build-system)
+ (supported-systems '("x" "y" "z"))
+ (inputs `(("d" ,d))))))
+ (list (package-transitive-supported-systems a)
+ (package-transitive-supported-systems b)
+ (package-transitive-supported-systems c)
+ (package-transitive-supported-systems d)
+ (package-transitive-supported-systems e))))
expected-value: (("x" "y" "z") ("x" "y") ("y") ("y") ("y"))
actual-value: (("x" "y" "z") ("x" "y") ("y") ("y") ("y"))
result: PASS
test-name: origin-actual-file-name
location: /tmp/guix-build-guix-0.13.0.drv-0/source/tests/packages.scm:252
source:
+ (test-equal
+ "origin-actual-file-name"
+ "foo-1.tar.gz"
+ (let ((o (dummy-origin
+ (uri "http://www.example.com/foo-1.tar.gz"))))
+ (origin-actual-file-name o)))
expected-value: "foo-1.tar.gz"
actual-value: "foo-1.tar.gz"
result: PASS
test-name: origin-actual-file-name, file-name
location: /tmp/guix-build-guix-0.13.0.drv-0/source/tests/packages.scm:257
source:
+ (test-equal
+ "origin-actual-file-name, file-name"
+ "foo-1.tar.gz"
+ (let ((o (dummy-origin
+ (uri "http://www.example.com/tarball")
+ (file-name "foo-1.tar.gz"))))
+ (origin-actual-file-name o)))
expected-value: "foo-1.tar.gz"
actual-value: "foo-1.tar.gz"
result: PASS
test-name: package-direct-sources, no source
location: /tmp/guix-build-guix-0.13.0.drv-0/source/tests/packages.scm:274
source:
+ (test-assert
+ "package-direct-sources, no source"
+ (null? (package-direct-sources a)))
actual-value: #t
result: PASS
test-name: package-direct-sources, #f source
location: /tmp/guix-build-guix-0.13.0.drv-0/source/tests/packages.scm:276
source:
+ (test-equal
+ "package-direct-sources, #f source"
+ (list i)
+ (package-direct-sources b))
expected-value: (#<origin "http://www.example.com" xx35467pxx35467pxx35467pxx35467pxx35467pxx35467pxx3q () 18a7360>)
actual-value: (#<origin "http://www.example.com" xx35467pxx35467pxx35467pxx35467pxx35467pxx35467pxx3q () 18a7360>)
result: PASS
test-name: package-direct-sources, not input source
location: /tmp/guix-build-guix-0.13.0.drv-0/source/tests/packages.scm:279
source:
+ (test-equal
+ "package-direct-sources, not input source"
+ (list u)
+ (package-direct-sources d))
expected-value: (#<origin "http://www.example.com" xx35467pxx35467pxx35467pxx35467pxx35467pxx35467pxx3q () 18a7420>)
actual-value: (#<origin "http://www.example.com" xx35467pxx35467pxx35467pxx35467pxx35467pxx35467pxx3q () 18a7420>)
result: PASS
test-name: package-direct-sources
location: /tmp/guix-build-guix-0.13.0.drv-0/source/tests/packages.scm:282
source:
+ (test-assert
+ "package-direct-sources"
+ (let ((s (package-direct-sources c)))
+ (and (= (length (pk 's-sources s)) 2)
+ (member o s)
+ (member i s))))
;;; (s-sources (#<origin "http://www.example.com" xx35467pxx35467pxx35467pxx35467pxx35467pxx35467pxx3q () 18a74e0> #<origin "http://www.example.com" xx35467pxx35467pxx35467pxx35467pxx35467pxx35467pxx3q () 18a7360>))
actual-value: (#<origin "http://www.example.com" xx35467pxx35467pxx35467pxx35467pxx35467pxx35467pxx3q () 18a7360>)
result: PASS
test-name: package-transitive-sources
location: /tmp/guix-build-guix-0.13.0.drv-0/source/tests/packages.scm:287
source:
+ (test-assert
+ "package-transitive-sources"
+ (let ((s (package-transitive-sources d)))
+ (and (= (length (pk 'd-sources s)) 3)
+ (member o s)
+ (member i s)
+ (member u s))))
;;; (d-sources (#<origin "http://www.example.com" xx35467pxx35467pxx35467pxx35467pxx35467pxx35467pxx3q () 18a7420> #<origin "http://www.example.com" xx35467pxx35467pxx35467pxx35467pxx35467pxx35467pxx3q () 18a74e0> #<origin "http://www.example.com" xx35467pxx35467pxx35467pxx35467pxx35467pxx35467pxx3q () 18a7360>))
actual-value: (#<origin "http://www.example.com" xx35467pxx35467pxx35467pxx35467pxx35467pxx35467pxx3q () 18a7420> #<origin "http://www.example.com" xx35467pxx35467pxx35467pxx35467pxx35467pxx35467pxx3q () 18a74e0> #<origin "http://www.example.com" xx35467pxx35467pxx35467pxx35467pxx35467pxx35467pxx3q () 18a7360>)
result: PASS
test-name: transitive-input-references
location: /tmp/guix-build-guix-0.13.0.drv-0/source/tests/packages.scm:294
source:
+ (test-assert
+ "transitive-input-references"
+ (let* ((a (dummy-package "a"))
+ (b (dummy-package "b"))
+ (c (dummy-package
+ "c"
+ (inputs `(("a" ,a)))
+ (propagated-inputs `(("boo" ,b)))))
+ (d (dummy-package "d" (inputs `(("c*" ,c)))))
+ (keys (map (match-lambda (('assoc-ref 'l key) key))
+ (pk 'refs
+ (transitive-input-references
+ 'l
+ (package-inputs d))))))
+ (and (= (length keys) 2)
+ (member "c*" keys)
+ (member "boo" keys))))
;;; (refs ((assoc-ref l "c*") (assoc-ref l "boo")))
actual-value: ("boo")
result: PASS
test-name: package-transitive-supported-systems, implicit inputs
location: /tmp/guix-build-guix-0.13.0.drv-0/source/tests/packages.scm:311
source:
+ (test-equal
+ "package-transitive-supported-systems, implicit inputs"
+ %supported-systems
+ (let ((p (dummy-package
+ "foo"
+ (build-system gnu-build-system)
+ (supported-systems
+ `("does-not-exist" "foobar" ,@%supported-systems)))))
+ (package-transitive-supported-systems p)))
expected-value: ("x86_64-linux" "i686-linux" "armhf-linux" "mips64el-linux")
actual-value: ("x86_64-linux" "i686-linux" "armhf-linux" "mips64el-linux")
result: PASS
test-name: supported-package?
location: /tmp/guix-build-guix-0.13.0.drv-0/source/tests/packages.scm:322
source:
+ (test-assert
+ "supported-package?"
+ (let ((p (dummy-package
+ "foo"
+ (build-system gnu-build-system)
+ (supported-systems
+ '("x86_64-linux" "does-not-exist")))))
+ (and (supported-package? p "x86_64-linux")
+ (not (supported-package? p "does-not-exist"))
+ (not (supported-package? p "i686-linux")))))
actual-value: #t
result: PASS
test-name: package-source-derivation, file
location: /tmp/guix-build-guix-0.13.0.drv-0/source/tests/packages.scm:332
source:
+ (test-assert
+ "package-source-derivation, file"
+ (let* ((file (search-path %load-path "guix.scm"))
+ (package
+ (package
+ (inherit (dummy-package "p"))
+ (source file)))
+ (source
+ (package-source-derivation
+ %store
+ (package-source package))))
+ (and (store-path? source)
+ (valid-path? %store source)
+ (equal?
+ (call-with-input-file source get-bytevector-all)
+ (call-with-input-file file get-bytevector-all)))))
actual-value: #t
result: PASS
test-name: package-source-derivation, store path
location: /tmp/guix-build-guix-0.13.0.drv-0/source/tests/packages.scm:343
source:
+ (test-assert
+ "package-source-derivation, store path"
+ (let* ((file (add-to-store
+ %store
+ "guix.scm"
+ #t
+ "sha256"
+ (search-path %load-path "guix.scm")))
+ (package
+ (package
+ (inherit (dummy-package "p"))
+ (source file)))
+ (source
+ (package-source-derivation
+ %store
+ (package-source package))))
+ (string=? file source)))
actual-value: #t
result: PASS
test-name: package-source-derivation, indirect store path
location: /tmp/guix-build-guix-0.13.0.drv-0/source/tests/packages.scm:352
source:
+ (test-assert
+ "package-source-derivation, indirect store path"
+ (let* ((dir (add-to-store
+ %store
+ "guix-build"
+ #t
+ "sha256"
+ (dirname
+ (search-path %load-path "guix/build/utils.scm"))))
+ (package
+ (package
+ (inherit (dummy-package "p"))
+ (source (string-append dir "/utils.scm"))))
+ (source
+ (package-source-derivation
+ %store
+ (package-source package))))
+ (and (direct-store-path? source)
+ (string-suffix? "utils.scm" source))))
actual-value: #t
result: PASS
test-name: package-source-derivation, local-file
location: /tmp/guix-build-guix-0.13.0.drv-0/source/tests/packages.scm:363
source:
+ (test-assert
+ "package-source-derivation, local-file"
+ (let* ((file (local-file "../guix/base32.scm"))
+ (package
+ (package
+ (inherit (dummy-package "p"))
+ (source file)))
+ (source
+ (package-source-derivation
+ %store
+ (package-source package))))
+ (and (store-path? source)
+ (string-suffix? "base32.scm" source)
+ (valid-path? %store source)
+ (equal?
+ (call-with-input-file source get-bytevector-all)
+ (call-with-input-file
+ (search-path %load-path "guix/base32.scm")
+ get-bytevector-all)))))
actual-value: #t
result: PASS
test-name: package-source-derivation, snippet
location: /tmp/guix-build-guix-0.13.0.drv-0/source/tests/packages.scm:378
source:
+ (test-equal
+ "package-source-derivation, snippet"
+ "OK"
+ (let* ((file (search-bootstrap-binary
+ (match (%current-system)
+ ("armhf-linux" "guile-2.0.11.tar.xz")
+ ("aarch64-linux" "guile-2.0.14.tar.xz")
+ (_ "guile-2.0.9.tar.xz"))
+ (%current-system)))
+ (sha256 (call-with-input-file file port-sha256))
+ (fetch (lambda* (url hash-algo hash #:optional name #:key system)
+ (pk 'fetch url hash-algo hash name system)
+ (interned-file url)))
+ (source
+ (bootstrap-origin
+ (origin
+ (method fetch)
+ (uri file)
+ (sha256 sha256)
+ (patch-inputs
+ `(("tar" ,%bootstrap-coreutils&co)
+ ("xz" ,%bootstrap-coreutils&co)
+ ("patch" ,%bootstrap-coreutils&co)))
+ (patch-guile %bootstrap-guile)
+ (modules '((guix build utils)))
+ (snippet
+ '(begin
+ (chmod "." 511)
+ (symlink "guile" "guile-rocks")
+ (copy-recursively
+ "../share/guile/2.0/scripts"
+ "scripts")
+ (chmod ".." 511))))))
+ (package
+ (package
+ (inherit (dummy-package "with-snippet"))
+ (source source)
+ (build-system trivial-build-system)
+ (inputs
+ `(("tar"
+ ,(search-bootstrap-binary "tar" (%current-system)))
+ ("xz"
+ ,(search-bootstrap-binary "xz" (%current-system)))))
+ (arguments
+ `(#:guile
+ ,%bootstrap-guile
+ #:builder
+ (let ((tar (assoc-ref %build-inputs "tar"))
+ (xz (assoc-ref %build-inputs "xz"))
+ (source (assoc-ref %build-inputs "source")))
+ (and (zero? (system*
+ tar
+ "xvf"
+ source
+ "--use-compress-program"
+ xz))
+ (string=? "guile" (readlink "bin/guile-rocks"))
+ (file-exists? "bin/scripts/compile.scm")
+ (let ((out (assoc-ref %outputs "out")))
+ (call-with-output-file
+ out
+ (lambda (p) (display "OK" p))))))))))
+ (drv (package-derivation %store package))
+ (out (derivation->output-path drv)))
+ (and (build-derivations
+ %store
+ (list (pk 'snippet-drv drv)))
+ (call-with-input-file out get-string-all))))
result: SKIP
test-name: return value
location: /tmp/guix-build-guix-0.13.0.drv-0/source/tests/packages.scm:442
source:
+ (test-assert
+ "return value"
+ (let ((drv (package-derivation %store (dummy-package "p"))))
+ (and (derivation? drv)
+ (file-exists? (derivation-file-name drv)))))
actual-value: #t
result: PASS
test-name: package-output
location: /tmp/guix-build-guix-0.13.0.drv-0/source/tests/packages.scm:447
source:
+ (test-assert
+ "package-output"
+ (let* ((package (dummy-package "p"))
+ (drv (package-derivation %store package)))
+ (and (derivation? drv)
+ (string=?
+ (derivation->output-path drv)
+ (package-output %store package "out")))))
actual-value: #t
result: PASS
test-name: patch not found yields a run-time error
location: /tmp/guix-build-guix-0.13.0.drv-0/source/tests/packages.scm:454
source:
+ (test-assert
+ "patch not found yields a run-time error"
+ (guard (c ((condition-has-type? c &message)
+ (and (string-contains
+ random seed for tests: 1495495375
package 'foo' has been superseded by 'bar'
package 'foo' has been superseded by 'bar'
package 'foo' has been superseded by 'bar'
package 'foo' has been superseded by 'bar'
@ build-started /tmp/guix-tests/store/hvyvgjygf729vfvbpl2k3dqvsiwx59cw-trivial-0.drv - x86_64-linux /tmp/guix-tests/var/log/guix/drvs/hv//yvgjygf729vfvbpl2k3dqvsiwx59cw-trivial-0.drv.bz2
@ build-succeeded /tmp/guix-tests/store/hvyvgjygf729vfvbpl2k3dqvsiwx59cw-trivial-0.drv -
(condition-message c)
+ "does-not-exist.patch")
+ (string-contains
+ (condition-message c)
+ "not found"))))
+ (let ((p (package
+ (inherit (dummy-package "p"))
+ (source
+ (origin
+ (method (const #f))
+ (uri "http://whatever")
+ (patches
+ (list (search-patch "does-not-exist.patch")))
+ (sha256
+ (base32
+ "0amn0bbwqvsvvsh6drfwz20ydc2czk374lzw5kksbh6bf78k4ks4")))))))
+ (package-derivation %store p)
+ #f)))
actual-value: 28
result: PASS
test-name: &package-input-error
location: /tmp/guix-build-guix-0.13.0.drv-0/source/tests/packages.scm:474
source:
+ (test-equal
+ "&package-input-error"
+ (list dummy (current-module))
+ (guard (c ((package-input-error? c)
+ (list (package-error-package c)
+ (package-error-invalid-input c))))
+ (package-derivation %store dummy)))
expected-value: (#<package foo@0 /tmp/guix-build-guix-0.13.0.drv-0/source/tests/packages.scm:473 20f7900> #<directory (test-packages) 801320>)
actual-value: (#<package foo@0 /tmp/guix-build-guix-0.13.0.drv-0/source/tests/packages.scm:473 20f7900> #<directory (test-packages) 801320>)
result: PASS
test-name: reference to non-existent output
location: /tmp/guix-build-guix-0.13.0.drv-0/source/tests/packages.scm:481
source:
+ (test-assert
+ "reference to non-existent output"
+ (parameterize
+ ((%graft? #f))
+ (let* ((dep (dummy-package "dep"))
+ (p (dummy-package
+ "p"
+ (inputs `(("dep" ,dep "non-existent"))))))
+ (guard (c ((derivation-missing-output-error? c)
+ (and (string=?
+ (derivation-missing-output c)
+ "non-existent")
+ (equal?
+ (package-derivation %store dep)
+ (derivation-error-derivation c)))))
+ (package-derivation %store p)))))
actual-value: #t
result: PASS
test-name: trivial
location: /tmp/guix-build-guix-0.13.0.drv-0/source/tests/packages.scm:493
source:
+ (test-assert
+ "trivial"
+ (let* ((p (package
+ (inherit (dummy-package "trivial"))
+ (build-system trivial-build-system)
+ (source #f)
+ (arguments
+ `(#:guile
+ ,%bootstrap-guile
+ #:builder
+ (begin
+ (mkdir %output)
+ (call-with-output-file
+ (string-append %output "/test")
+ (lambda (p) (display '(hello guix) p))))))))
+ (d (package-derivation %store p)))
+ (and (build-derivations %store (list d))
+ (let ((p (pk 'drv d (derivation->output-path d))))
+ (equal?
+ '(hello guix)
+ (call-with-input-file
+ (string-append p "/test")
+ read))))))
;;; (drv #<derivation /tmp/guix-tests/store/hvyvgjygf729vfvbpl2k3dqvsiwx59cw-trivial-0.drv => /tmp/guix-tests/store/3pp7cs8ycxg16yldqd62lrk306ck1g72-trivial-0 1ab4f00> "/tmp/guix-tests/store/3pp7cs8ycxg16yldqd62lrk306ck1g72-trivial-0")
actual-value: #t
result: PASS
test-name: trivial with local file as input
location: /tmp/guix-build-guix-0.13.0.drv-0/source/tests/packages.scm:511
source:
+ (test-assert
+ "trivial with local file as input"
+ (let* ((i (search-path %load-path "ice-9/boot-9.scm"))
+ (p (package
+ (inherit
+ (dummy-package "trivial-with-input-file"))
+ (build-system trivial-build-system)
+ (source #f)
+ (arguments
+ `(#:guile
+ ,%bootstrap-guile
+ #:builder
+ (copy-file
+ @ build-started /tmp/guix-tests/store/a6yjh360wy274bw6v69b7i4ybgznhc72-trivial-with-input-file-0.drv - x86_64-linux /tmp/guix-tests/var/log/guix/drvs/a6//yjh360wy274bw6v69b7i4ybgznhc72-trivial-with-input-file-0.drv.bz2
@ build-succeeded /tmp/guix-tests/store/a6yjh360wy274bw6v69b7i4ybgznhc72-trivial-with-input-file-0.drv -
@ build-started /tmp/guix-tests/store/62hvlyvzl8zdm919i5f51clhvy5a5yab-trivial-with-source-0.drv - x86_64-linux /tmp/guix-tests/var/log/guix/drvs/62//hvlyvzl8zdm919i5f51clhvy5a5yab-trivial-with-source-0.drv.bz2
@ build-succeeded /tmp/guix-tests/store/62hvlyvzl8zdm919i5f51clhvy5a5yab-trivial-with-source-0.drv -
@ build-started /tmp/guix-tests/store/jmw8n1jv0clislyswj0gnc7mm52q0kjv-trivial-system-dependent-input-0.drv - x86_64-linux /tmp/guix-tests/var/log/guix/drvs/jm//w8n1jv0clislyswj0gnc7mm52q0kjv-trivial-system-dependent-input-0.drv.bz2
@ build-succeeded /tmp/guix-tests/store/jmw8n1jv0clislyswj0gnc7mm52q0kjv-trivial-system-dependent-input-0.drv -
(assoc-ref %build-inputs "input")
+ %output)))
+ (inputs `(("input" ,i)))))
+ (d (package-derivation %store p)))
+ (and (build-derivations %store (list d))
+ (let ((p (pk 'drv d (derivation->output-path d))))
+ (equal?
+ (call-with-input-file p get-bytevector-all)
+ (call-with-input-file i get-bytevector-all))))))
;;; (drv #<derivation /tmp/guix-tests/store/a6yjh360wy274bw6v69b7i4ybgznhc72-trivial-with-input-file-0.drv => /tmp/guix-tests/store/ig6yxsjih7q2g4zmlplm1psjz5yprqad-trivial-with-input-file-0 1ab4dc0> "/tmp/guix-tests/store/ig6yxsjih7q2g4zmlplm1psjz5yprqad-trivial-with-input-file-0")
actual-value: #t
result: PASS
test-name: trivial with source
location: /tmp/guix-build-guix-0.13.0.drv-0/source/tests/packages.scm:527
source:
+ (test-assert
+ "trivial with source"
+ (let* ((i (search-path %load-path "ice-9/boot-9.scm"))
+ (p (package
+ (inherit (dummy-package "trivial-with-source"))
+ (build-system trivial-build-system)
+ (source i)
+ (arguments
+ `(#:guile
+ ,%bootstrap-guile
+ #:builder
+ (copy-file
+ (assoc-ref %build-inputs "source")
+ %output)))))
+ (d (package-derivation %store p)))
+ (and (build-derivations %store (list d))
+ (let ((p (derivation->output-path d)))
+ (equal?
+ (call-with-input-file p get-bytevector-all)
+ (call-with-input-file i get-bytevector-all))))))
actual-value: #t
result: PASS
test-name: trivial with system-dependent input
location: /tmp/guix-build-guix-0.13.0.drv-0/source/tests/packages.scm:542
source:
+ (test-assert
+ "trivial with system-dependent input"
+ (let* ((p (package
+ (inherit
+ (dummy-package "trivial-system-dependent-input"))
+ (build-system trivial-build-system)
+ (source #f)
+ (arguments
+ `(#:guile
+ ,%bootstrap-guile
+ #:builder
+ (let ((out (assoc-ref %outputs "out"))
+ (bash (assoc-ref %build-inputs "bash")))
+ (zero? (system*
+ bash
+ "-c"
+ (format #f "echo hello > ~a" out))))))
+ (inputs
+ `(("bash"
+ ,(search-bootstrap-binary
+ "bash"
+ (%current-system)))))))
+ (d (package-derivation %store p)))
+ (and (build-derivations %store (list d))
+ (let ((p (pk 'drv d (derivation->output-path d))))
+ (eq? 'hello (call-with-input-file p read))))))
;;; (drv #<derivation /tmp/guix-tests/store/jmw8n1jv0clislyswj0gnc7mm52q0kjv-trivial-system-dependent-input-0.drv => /tmp/guix-tests/store/8pqmam9mmnpd071ya49hv33dnp8p24f5-trivial-system-dependent-input-0 1ab4960> "/tmp/guix-tests/store/8pqmam9mmnpd071ya49hv33dnp8p24f5-trivial-system-dependent-input-0")
actual-value: #t
result: PASS
test-name: search paths
location: /tmp/guix-build-guix-0.13.0.drv-0/source/tests/packages.scm:560
source:
+ (test-assert
+ "search paths"
+ (let* ((p (make-prompt-tag "return-search-paths"))
+ (s (build-system
+ (name 'raw)
+ (description
+ "Raw build system with direct store access")
+ (lower (lambda* (name
+ #:key
+ source
+ inputs
+ system
+ target
+ #:allow-other-keys)
+ (bag (name name)
+ (system system)
+ (target target)
+ (build-inputs inputs)
+ (build (lambda* (store
+ name
+ inputs
+ #:key
+ outputs
+ system
+ search-paths)
+ search-paths)))))))
+ (x (list (search-path-specification
+ (variable "GUILE_LOAD_PATH")
+ (files '("share/guile/site/2.0")))
+ (search-path-specification
+ (variable "GUILE_LOAD_COMPILED_PATH")
+ (files '("share/guile/site/2.0")))))
+ (a (package
+ (inherit (dummy-package "guile"))
+ (build-system s)
+ (native-search-paths x)))
+ (b (package
+ (inherit (dummy-package "guile-foo"))
+ (build-system s)
+ (inputs `(("guile" ,a)))))
+ (c (package
+ (inherit (dummy-package "guile-bar"))
+ (build-system s)
+ (inputs `(("guile" ,a) ("guile-foo" ,b))))))
+ (let-syntax ((collect
+ (syntax-rules ()
+ ((_ body ...)
+ (call-with-prompt
+ p
+ (lambda () body ...)
+ (lambda (k search-paths) search-paths))))))
+ (and (null? (collect (package-derivation %store a)))
+ (equal?
+ x
+ (collect (package-derivation %store b)))
+ (equal?
+ x
+ (collect (package-derivation %store c)))))))
actual-value: #t
result: PASS
test-name: package-transitive-native-search-paths
location: /tmp/guix-build-guix-0.13.0.drv-0/source/tests/packages.scm:602
source:
+ (test-assert
+ "package-transitive-native-search-paths"
+ (let* ((sp (lambda (name)
+ (list (search-path-specification
+ (variable name)
+ (files '("foo/bar"))))))
+ (p0 (dummy-package
+ "p0"
+ (native-search-paths (sp "PATH0"))))
+ (p1 (dummy-package
+ "p1"
+ (native-search-paths (sp "PATH1"))))
+ (p2 (dummy-package
+ "p2"
+ (native-search-paths (sp "PATH2"))
+ (inputs `(("p0" ,p0)))
+ (propagated-inputs `(("p1" ,p1)))))
+ (p3 (dummy-package
+ "p3"
+ (native-search-paths (sp "PATH3"))
+ (native-inputs `(("p0" ,p0)))
+ (propagated-inputs `(("p2" ,p2))))))
+ (lset= string=?
+ '("PATH1" "PATH2" "PATH3")
+ (map search-path-specification-variable
+ (package-transitive-native-search-paths p3)))))
actual-value: #t
result: PASS
test-name: package-cross-derivation
location: /tmp/guix-build-guix-0.13.0.drv-0/source/tests/packages.scm:622
source:
+ (test-assert
+ "package-cross-derivation"
+ (let ((drv (package-cross-derivation
+ %store
+ (dummy-package "p")
+ "mips64el-linux-gnu")))
+ (and (derivation? drv)
+ (file-exists? (derivation-file-name drv)))))
actual-value: #t
result: PASS
test-name: package-cross-derivation, trivial-build-system
location: /tmp/guix-build-guix-0.13.0.drv-0/source/tests/packages.scm:628
source:
+ (test-assert
+ "package-cross-derivation, trivial-build-system"
+ (let ((p (package
+ (inherit (dummy-package "p"))
+ (build-system trivial-build-system)
+ (arguments '(#:builder (exit 1))))))
+ (let ((drv (package-cross-derivation
+ %store
+ p
+ "mips64el-linux-gnu")))
+ (derivation? drv))))
actual-value: #t
result: PASS
test-name: package-cross-derivation, no cross builder
location: /tmp/guix-build-guix-0.13.0.drv-0/source/tests/packages.scm:635
source:
+ (test-assert
+ "package-cross-derivation, no cross builder"
+ (let* ((b (build-system
+ (inherit trivial-build-system)
+ (lower (const #f))))
+ (p (package
+ (inherit (dummy-package "p"))
+ (build-system b))))
+ (guard (c ((package-cross-build-system-error? c)
+ (eq? (package-error-package c) p)))
+ (package-cross-derivation
+ %store
+ p
+ "mips64el-linux-gnu")
+ #f)))
actual-value: #t
result: PASS
test-name: package-grafts, indirect grafts
location: /tmp/guix-build-guix-0.13.0.drv-0/source/tests/packages.scm:663
source:
+ (test-assert
+ "package-grafts, indirect grafts"
+ (let* ((new (dummy-package
+ "dep"
+ (arguments '(#:implicit-inputs? #f))))
+ (dep (package (inherit new) (version "0.0")))
+ (dep* (package (inherit dep) (replacement new)))
+ (dummy (dummy-package
+ "dummy"
+ (arguments '(#:implicit-inputs? #f))
+ (inputs `(("dep" ,dep*))))))
+ (equal?
+ (package-grafts %store dummy)
+ (list (graft (origin (package-derivation %store dep))
+ (replacement (package-derivation %store new)))))))
actual-value: #t
result: PASS
test-name: package-grafts, indirect grafts, propagated inputs
location: /tmp/guix-build-guix-0.13.0.drv-0/source/tests/packages.scm:696
source:
+ (test-assert
+ "package-grafts, indirect grafts, propagated inputs"
+ (let* ((new (dummy-package
+ "dep"
+ (arguments '(#:implicit-inputs? #f))))
+ (dep (package (inherit new) (version "0.0")))
+ (dep* (package (inherit dep) (replacement new)))
+ (prop (dummy-package
+ "propagated"
+ (propagated-inputs `(("dep" ,dep*)))
+ (arguments '(#:implicit-inputs? #f))))
+ (dummy (dummy-package
+ "dummy"
+ (arguments '(#:implicit-inputs? #f))
+ (inputs `(("prop" ,prop))))))
+ (equal?
+ (package-grafts %store dummy)
+ (list (graft (origin (package-derivation %store dep))
+ (replacement (package-derivation %store new)))))))
actual-value: #t
result: PASS
test-name: package-grafts, same replacement twice
location: /tmp/guix-build-guix-0.13.0.drv-0/source/tests/packages.scm:712
source:
+ (test-assert
+ "package-grafts, same replacement twice"
+ (let* ((new (dummy-package
+ "dep"
+ (version "1")
+ (arguments '(#:implicit-inputs? #f))))
+ (dep (package
+ (inherit new)
+ (version "0")
+ (replacement new)))
+ (p1 (dummy-package
+ "intermediate1"
+ (arguments '(#:implicit-inputs? #f))
+ (inputs `(("dep" ,dep)))))
+ (p2 (dummy-package
+ "intermediate2"
+ (arguments '(#:implicit-inputs? #f))
+ (inputs `(("dep" ,(package (inherit dep)))))))
+ (p3 (dummy-package
+ "final"
+ (arguments '(#:implicit-inputs? #f))
+ (inputs `(("p1" ,p1) ("p2" ,p2))))))
+ (equal?
+ (package-grafts %store p3)
+ (list (graft (origin
+ (package-derivation
+ %store
+ (package (inherit dep) (replacement #f))))
+ (replacement (package-derivation %store new)))))))
actual-value: #t
result: PASS
test-name: replacement also grafted
location: /tmp/guix-build-guix-0.13.0.drv-0/source/tests/packages.scm:736
source:
+ (test-assert
+ "replacement also grafted"
+ (let* ((p1r (dummy-package
+ "P1"
+ (build-system trivial-build-system)
+ (arguments
+ `(#:guile
+ ,%bootstrap-guile
+ #:builder
+ (let ((out (assoc-ref %outputs "out")))
+ @ build-started /tmp/guix-tests/store/4fy6qbf23zv784brzwpkkrmwpnmbp2gr-p1-0.drv - x86_64-linux /tmp/guix-tests/var/log/guix/drvs/4f//y6qbf23zv784brzwpkkrmwpnmbp2gr-p1-0.drv.bz2
@ build-succeeded /tmp/guix-tests/store/4fy6qbf23zv784brzwpkkrmwpnmbp2gr-p1-0.drv -
@ build-started /tmp/guix-tests/store/107g7qq7946g9vvbp8vqcpx98xjb79df-P2-0.drv - x86_64-linux /tmp/guix-tests/var/log/guix/drvs/10//7g7qq7946g9vvbp8vqcpx98xjb79df-P2-0.drv.bz2
@ build-succeeded /tmp/guix-tests/store/107g7qq7946g9vvbp8vqcpx98xjb79df-P2-0.drv -
(mkdir out)
+ (call-with-output-file
+ (string-append out "/replacement")
+ (const #t)))))))
+ (p1 (package
+ (inherit p1r)
+ (name "p1")
+ (replacement p1r)
+ (arguments
+ `(#:guile
+ ,%bootstrap-guile
+ #:builder
+ (mkdir (assoc-ref %outputs "out"))))))
+ (p2r (dummy-package
+ "P2"
+ (build-system trivial-build-system)
+ (inputs `(("p1" ,p1)))
+ (arguments
+ `(#:guile
+ ,%bootstrap-guile
+ #:builder
+ (let ((out (assoc-ref %outputs "out")))
+ (mkdir out)
+ (chdir out)
+ (symlink (assoc-ref %build-inputs "p1") "p1")
+ (call-with-output-file
+ (string-append out "/replacement")
+ (const #t)))))))
+ (p2 (package
+ (inherit p2r)
+ (name "p2")
+ (replacement p2r)
+ (arguments
+ `(#:guile
+ ,%bootstrap-guile
+ #:builder
+ (let ((out (assoc-ref %outputs "out")))
+ (mkdir out)
+ (chdir out)
+ (symlink (assoc-ref %build-inputs "p1") "p1"))))))
+ (p3 (dummy-package
+ "p3"
+ (build-system trivial-build-system)
+ (inputs `(("p2" ,p2)))
+ (arguments
+ `(#:guile
+ ,%bootstrap-guile
+ #:builder
+ (let ((out (assoc-ref %outputs "out")))
+ (mkdir out)
+ (chdir out)
+ (symlink (assoc-ref %build-inputs "p2") "p2")))))))
+ (lset= equal?
+ (package-grafts %store p3)
+ (list (graft (origin
+ (package-derivation %store p1 #:graft? #f))
+ (replacement (package-derivation %store p1r)))
+ (graft (origin
+ (package-derivation %store p2 #:graft? #f))
+ (replacement
+ (package-derivation %store p2r #:graft? #t)))))))
actual-value: #t
result: PASS
test-name: package->bag
location: /tmp/guix-build-guix-0.13.0.drv-0/source/tests/packages.scm:829
source:
+ (test-equal
+ "package->bag"
+ `("foo86-hurd"
+ #f
+ (,(package-source gnu-make))
+ (,(canonical-package glibc))
+ (,(canonical-package coreutils)))
+ (let ((bag (package->bag gnu-make "foo86-hurd")))
+ (list (bag-system bag)
+ (bag-target bag)
+ (assoc-ref (bag-build-inputs bag) "source")
+ (assoc-ref (bag-build-inputs bag) "libc")
+ (assoc-ref (bag-build-inputs bag) "coreutils"))))
expected-value: ("foo86-hurd" #f (#<origin "mirror://gnu/make/make-4.2.1.tar.bz2" 23rgfpzwag2c2ky6j34dcabj4hopeaedyvcgws32uzyid7p7yweq ("/tmp/guix-build-guix-0.13.0.drv-0/source/gnu/packages/patches/make-impure-dirs.patch") 192d420>) (#<package glibc@2.25 gnu/packages/commencement.scm:643 1c0b240>) (#<package coreutils@8.26 gnu/packages/bootstrap.scm:147 1c0d180>))
actual-value: ("foo86-hurd" #f (#<origin "mirror://gnu/make/make-4.2.1.tar.bz2" 23rgfpzwag2c2ky6j34dcabj4hopeaedyvcgws32uzyid7p7yweq ("/tmp/guix-build-guix-0.13.0.drv-0/source/gnu/packages/patches/make-impure-dirs.patch") 192d420>) (#<package glibc@2.25 gnu/packages/commencement.scm:643 1c0b240>) (#<package coreutils@8.26 gnu/packages/bootstrap.scm:147 1c0d180>))
result: PASS
test-name: package->bag, cross-compilation
location: /tmp/guix-build-guix-0.13.0.drv-0/source/tests/packages.scm:838
source:
+ (test-equal
+ "package->bag, cross-compilation"
+ `(,(%current-system)
+ "foo86-hurd"
+ (,(package-source gnu-make))
+ (,(canonical-package glibc))
+ (,(canonical-package coreutils)))
+ (let ((bag (package->bag
+ gnu-make
+ (%current-system)
+ "foo86-hurd")))
+ (list (bag-system bag)
+ (bag-target bag)
+ (assoc-ref (bag-build-inputs bag) "source")
+ (assoc-ref (bag-build-inputs bag) "libc")
+ (assoc-ref (bag-build-inputs bag) "coreutils"))))
expected-value: ("x86_64-linux" "foo86-hurd" (#<origin "mirror://gnu/make/make-4.2.1.tar.bz2" 23rgfpzwag2c2ky6j34dcabj4hopeaedyvcgws32uzyid7p7yweq ("/tmp/guix-build-guix-0.13.0.drv-0/source/gnu/packages/patches/make-impure-dirs.patch") 192d420>) (#<package glibc@2.25 gnu/packages/commencement.scm:643 1c0b240>) (#<package coreutils@8.26 gnu/packages/bootstrap.scm:147 1c0d180>))
actual-value: ("x86_64-linux" "foo86-hurd" (#<origin "mirror://gnu/make/make-4.2.1.tar.bz2" 23rgfpzwag2c2ky6j34dcabj4hopeaedyvcgws32uzyid7p7yweq ("/tmp/guix-build-guix-0.13.0.drv-0/source/gnu/packages/patches/make-impure-dirs.patch") 192d420>) (#<package glibc@2.25 gnu/packages/commencement.scm:643 1c0b240>) (#<package coreutils@8.26 gnu/packages/bootstrap.scm:147 1c0d180>))
result: PASS
test-name: package->bag, propagated inputs
location: /tmp/guix-build-guix-0.13.0.drv-0/source/tests/packages.scm:848
source:
+ (test-assert
+ "package->bag, propagated inputs"
+ (let* ((dep (dummy-package "dep"))
+ (prop (dummy-package
+ "prop"
+ (propagated-inputs `(("dep" ,dep)))))
+ (dummy (dummy-package
+ "dummy"
+ (inputs `(("prop" ,prop)))))
+ (inputs
+ (bag-transitive-inputs
+ (package->bag dummy #:graft? #f))))
+ (match (assoc "dep" inputs)
+ (("dep" package) (eq? package dep)))))
actual-value: #t
result: PASS
test-name: bag->derivation
location: /tmp/guix-build-guix-0.13.0.drv-0/source/tests/packages.scm:859
source:
+ (test-assert
+ "bag->derivation"
+ (parameterize
+ ((%graft? #f))
+ (let ((bag (package->bag gnu-make))
+ (drv (package-derivation %store gnu-make)))
+ (parameterize
+ ((%current-system "foox86-hurd"))
+ (equal? drv (bag->derivation %store bag))))))
actual-value: #t
result: PASS
test-name: bag->derivation, cross-compilation
location: /tmp/guix-build-guix-0.13.0.drv-0/source/tests/packages.scm:866
source:
+ (test-assert
+ "bag->derivation, cross-compilation"
+ (parameterize
+ ((%graft? #f))
+ (let* ((target "mips64el-linux-gnu")
+ (bag (package->bag gnu-make (%current-system) target))
+ (drv (package-cross-derivation %store gnu-make target)))
+ (parameterize
+ ((%current-system "foox86-hurd")
+ (%current-target-system "foo64-linux-gnu"))
+ (equal? drv (bag->derivation %store bag))))))
actual-value: #t
result: PASS
test-name: GNU Make, bootstrap
location: /tmp/guix-build-guix-0.13.0.drv-0/source/tests/packages.scm:877
source:
+ (test-assert
+ "GNU Make, bootstrap"
+ (let ((gnu-make
+ (@@ (gnu packages commencement) gnu-make-boot0)))
+ (and (package? gnu-make)
+ (or (location? (package-location gnu-make))
+ (not (package-location gnu-make)))
+ (let* ((drv (package-derivation %store gnu-make))
+ (out (derivation->output-path drv)))
+ (and (build-derivations %store (list drv))
+ (file-exists? (string-append out "/bin/make")))))))
result: SKIP
test-name: package-mapping
location: /tmp/guix-build-guix-0.13.0.drv-0/source/tests/packages.scm:889
source:
+ (test-equal
+ "package-mapping"
+ 42
+ (let* ((dep (dummy-package
+ "chbouib"
+ (native-inputs `(("x" ,grep)))))
+ (p0 (dummy-package
+ "example"
+ (inputs
+ `(("foo" ,coreutils) ("bar" ,grep) ("baz" ,dep)))))
+ (transform
+ (lambda (p) (package (inherit p) (source 42))))
+ (rewrite (package-mapping transform))
+ (p1 (rewrite p0)))
+ (and (eq? p1 (rewrite p0))
+ (eqv? 42 (package-source p1))
+ (match (package-inputs p1)
+ ((("foo" dep1) ("bar" dep2) ("baz" dep3))
+ (and (eq? dep1 (rewrite coreutils))
+ (eq? dep2 (rewrite grep))
+ (eq? dep3 (rewrite dep))
+ (eqv? 42
+ (package-source dep1)
+ (package-source dep2)
+ (package-source dep3))
+ (match (package-native-inputs dep3)
+ ((("x" dep))
+ (and (eq? dep (rewrite grep))
+ (package-source dep))))))))))
expected-value: 42
actual-value: 42
result: PASS
test-name: package-input-rewriting
location: /tmp/guix-build-guix-0.13.0.drv-0/source/tests/packages.scm:916
source:
+ (test-assert
+ "package-input-rewriting"
+ (let* ((dep (dummy-package
+ "chbouib"
+ (native-inputs `(("x" ,grep)))))
+ (p0 (dummy-package
+ "example"
+ (inputs
+ `(("foo" ,coreutils) ("bar" ,grep) ("baz" ,dep)))))
+ (rewrite
+ (package-input-rewriting
+ `((,coreutils unquote sed)
+ (,grep unquote findutils))
+ (cut string-append "r-" <>)))
+ (p1 (rewrite p0))
+ (p2 (rewrite p0)))
+ (and (not (eq? p1 p0))
+ (eq? p1 p2)
+ (string=? "r-example" (package-name p1))
+ (match (package-inputs p1)
+ ((("foo" dep1) ("bar" dep2) ("baz" dep3))
+ (and (eq? dep1 sed)
+ (eq? dep2 findutils)
+ (string=? (package-name dep3) "r-chbouib")
+ (eq? dep3 (rewrite dep))
+ (match (package-native-inputs dep3)
+ ((("x" dep)) (eq? dep findutils)))))))))
actual-value: #t
result: PASS
test-name: fold-packages
location: /tmp/guix-build-guix-0.13.0.drv-0/source/tests/packages.scm:941
source:
+ (test-eq
+ "fold-packages"
+ hello
+ (fold-packages
+ (lambda (p r)
+ (if (string=? (package-name p) "hello") p r))
+ #f))
expected-value: #<package hello@2.10 gnu/packages/base.scm:60 19303c0>
actual-value: #<package hello@2.10 gnu/packages/base.scm:60 19303c0>
result: PASS
test-name: fold-packages, hidden package
location: /tmp/guix-build-guix-0.13.0.drv-0/source/tests/packages.scm:948
source:
+ (test-assert
+ "fold-packages, hidden package"
+ (match (fold-packages
+ (lambda (p r)
+ (if (and (string=? (package-name p) "guile")
+ (string-prefix? "2.0" (package-version p)))
+ (cons p r)
+ r))
+ '())
+ ((one) (eq? one guile-2.0))))
actual-value: #t
result: PASS
test-name: find-packages-by-name
location: /tmp/guix-build-guix-0.13.0.drv-0/source/tests/packages.scm:962
source:
+ (test-assert
+ "find-packages-by-name"
+ (match (find-packages-by-name "hello")
+ (((? (cut eq? hello <>))) #t)
+ (wrong (pk 'find-packages-by-name wrong #f))))
actual-value: #t
result: PASS
test-name: find-packages-by-name with version
location: /tmp/guix-build-guix-0.13.0.drv-0/source/tests/packages.scm:967
source:
+ (test-assert
+ "find-packages-by-name with version"
+ (match (find-packages-by-name
+ "hello"
+ (package-version hello))
+ (((? (cut eq? hello <>))) #t)
+ (wrong (pk 'find-packages-by-name wrong #f))))
actual-value: #t
result: PASS
test-name: --search-paths with pattern
location: /tmp/guix-build-guix-0.13.0.drv-0/source/tests/packages.scm:972
source:
+ (test-assert
+ "--search-paths with pattern"
+ (let* ((p1 (package
+ (name "foo")
+ (version "0")
+ (source #f)
+ (build-system trivial-build-system)
+ @ build-started /tmp/guix-tests/store/776fmfgvl86sycqhwylvbxvj8lampqyr-foo-0.drv - x86_64-linux /tmp/guix-tests/var/log/guix/drvs/77//6fmfgvl86sycqhwylvbxvj8lampqyr-foo-0.drv.bz2
@ build-succeeded /tmp/guix-tests/store/776fmfgvl86sycqhwylvbxvj8lampqyr-foo-0.drv -
@ build-started /tmp/guix-tests/store/r2cwc0ymafj3fih71ddlpvv48ibh3r5f-libxml2-0.0.0.drv - x86_64-linux /tmp/guix-tests/var/log/guix/drvs/r2//cwc0ymafj3fih71ddlpvv48ibh3r5f-libxml2-0.0.0.drv.bz2
@ build-succeeded /tmp/guix-tests/store/r2cwc0ymafj3fih71ddlpvv48ibh3r5f-libxml2-0.0.0.drv -
@ build-started /tmp/guix-tests/store/2kgydlmck3v1yhapigr0nngwsii3zg09-module-import.drv - x86_64-linux /tmp/guix-tests/var/log/guix/drvs/2k//gydlmck3v1yhapigr0nngwsii3zg09-module-import.drv.bz2
@ build-succeeded /tmp/guix-tests/store/2kgydlmck3v1yhapigr0nngwsii3zg09-module-import.drv -
@ build-started /tmp/guix-tests/store/zlmj31wzwc9zr5x2jcjlbcq8v04jfmli-module-import-compiled.drv - x86_64-linux /tmp/guix-tests/var/log/guix/drvs/zl//mj31wzwc9zr5x2jcjlbcq8v04jfmli-module-import-compiled.drv.bz2
@ build-succeeded /tmp/guix-tests/store/zlmj31wzwc9zr5x2jcjlbcq8v04jfmli-module-import-compiled.drv -
@ build-started /tmp/guix-tests/store/vpkk5ncdij2jxrq5rzbkanigs8ykfzvb-profile.drv - x86_64-linux /tmp/guix-tests/var/log/guix/drvs/vp//kk5ncdij2jxrq5rzbkanigs8ykfzvb-profile.drv.bz2
@ build-succeeded /tmp/guix-tests/store/vpkk5ncdij2jxrq5rzbkanigs8ykfzvb-profile.drv -
(arguments
+ `(#:guile
+ ,%bootstrap-guile
+ #:modules
+ ((guix build utils))
+ #:builder
+ (begin
+ (use-modules (guix build utils))
+ (let ((out (assoc-ref %outputs "out")))
+ (mkdir-p (string-append out "/xml/bar/baz"))
+ (call-with-output-file
+ (string-append out "/xml/bar/baz/catalog.xml")
+ (lambda (port) (display "xml? wat?!" port)))))))
+ (synopsis #f)
+ (description #f)
+ (home-page #f)
+ (license #f)))
+ (p2 (package
+ (name "libxml2")
+ (version "0.0.0")
+ (source #f)
+ (build-system trivial-build-system)
+ (arguments
+ `(#:guile
+ ,%bootstrap-guile
+ #:builder
+ (mkdir (assoc-ref %outputs "out"))))
+ (native-search-paths
+ (package-native-search-paths libxml2))
+ (synopsis #f)
+ (description #f)
+ (home-page #f)
+ (license #f)))
+ (prof (run-with-store
+ %store
+ (profile-derivation
+ (manifest
+ (map package->manifest-entry (list p1 p2)))
+ #:hooks
+ '()
+ #:locales?
+ #f)
+ #:guile-for-build
+ (%guile-for-build))))
+ (build-derivations %store (list prof))
+ (string-match
+ (format
+ #f
+ "^export XML_CATALOG_FILES=\"~a/xml/+bar/baz/catalog\\.xml\"\n"
+ (regexp-quote (derivation->output-path prof)))
+ (with-output-to-string
+ (lambda ()
+ (guix-package
+ "-p"
+ (derivation->output-path prof)
+ "--search-paths"))))))
actual-value: #("export XML_CATALOG_FILES=\"/tmp/guix-tests/store/xfvb2php359331lx0yvs40csll9rag95-profile/xml/bar/baz/catalog.xml\"\n" (0 . 114))
result: PASS
test-name: --search-paths with single-item search path
location: /tmp/guix-build-guix-0.13.0.drv-0/source/tests/packages.scm:1020
source:
+ (test-assert
+ "--search-paths with single-item search path"
+ (let* ((p1 (dummy-package
+ "foo"
+ (build-system trivial-build-system)
+ (arguments
+ `(#:guile
+ ,%bootstrap-guile
+ #:modules
+ ((guix build utils))
+ #:builder
+ (begin
+ (use-modules (guix build utils))
+ (let ((out (assoc-ref %outputs "out")))
+ (mkdir-p (string-append out "/etc/ssl/certs"))
+ (call-with-output-file
+ (string-append
+ out
+ "/etc/ssl/certs/ca-certificates.crt")
+ (const #t))))))))
+ (p2 (package (inherit p1) (name "bar")))
+ (p3 (dummy-package
+ "git"
+ (build-system trivial-build-system)
+ (arguments
+ `(#:guile
+ ,%bootstrap-guile
+ #:builder
+ (mkdir (assoc-ref %outputs "out"))))
+ (native-search-paths
+ (package-native-search-paths git))))
+ (prof1 (run-with-store
+ %store
+ (profile-derivation
+ (packages->manifest (list p1 p3))
+ #:hooks
+ '()
+ #:locales?
+ #f)
+ #:guile-for-build
+ (%guile-for-build)))
+ (prof2 (run-with-store
+ %store
+ @ build-started /tmp/guix-tests/store/z037c1pxr6gd46nxgv66r14x3bvmacc6-bar-0.drv - x86_64-linux /tmp/guix-tests/var/log/guix/drvs/z0//37c1pxr6gd46nxgv66r14x3bvmacc6-bar-0.drv.bz2
@ build-succeeded /tmp/guix-tests/store/z037c1pxr6gd46nxgv66r14x3bvmacc6-bar-0.drv -
@ build-started /tmp/guix-tests/store/rvhc8kmr5b52q16m0cmhlm321sy7cczb-foo-0.drv - x86_64-linux /tmp/guix-tests/var/log/guix/drvs/rv//hc8kmr5b52q16m0cmhlm321sy7cczb-foo-0.drv.bz2
@ build-succeeded /tmp/guix-tests/store/rvhc8kmr5b52q16m0cmhlm321sy7cczb-foo-0.drv -
@ build-started /tmp/guix-tests/store/ilbcggmc6x2s6gffll2k7b1ryyvr0p3j-git-0.drv - x86_64-linux /tmp/guix-tests/var/log/guix/drvs/il//bcggmc6x2s6gffll2k7b1ryyvr0p3j-git-0.drv.bz2
@ build-succeeded /tmp/guix-tests/store/ilbcggmc6x2s6gffll2k7b1ryyvr0p3j-git-0.drv -
@ build-started /tmp/guix-tests/store/6dls0qzhbnza3g7f93p1a612dqkr76hz-profile.drv - x86_64-linux /tmp/guix-tests/var/log/guix/drvs/6d//ls0qzhbnza3g7f93p1a612dqkr76hz-profile.drv.bz2
@ build-succeeded /tmp/guix-tests/store/6dls0qzhbnza3g7f93p1a612dqkr76hz-profile.drv -
@ build-started /tmp/guix-tests/store/wlbck30fx0hyrvw6w83fn0a3y2rc0gbp-profile.drv - x86_64-linux /tmp/guix-tests/var/log/guix/drvs/wl//bck30fx0hyrvw6w83fn0a3y2rc0gbp-profile.drv.bz2
@ build-succeeded /tmp/guix-tests/store/wlbck30fx0hyrvw6w83fn0a3y2rc0gbp-profile.drv -
error: this-package-does-not-exist: unknown package
(profile-derivation
+ (packages->manifest (list p2 p3))
+ #:hooks
+ '()
+ #:locales?
+ #f)
+ #:guile-for-build
+ (%guile-for-build))))
+ (build-derivations %store (list prof1 prof2))
+ (string-match
+ (format
+ #f
+ "^export GIT_SSL_CAINFO=\"~a/etc/ssl/certs/ca-certificates.crt"
+ (regexp-quote (derivation->output-path prof1)))
+ (with-output-to-string
+ (lambda ()
+ (guix-package
+ "-p"
+ (derivation->output-path prof1)
+ "-p"
+ (derivation->output-path prof2)
+ "--search-paths"))))))
actual-value: #("export GIT_SSL_CAINFO=\"/tmp/guix-tests/store/gvd1ajkzd5yvzqs3z4cdqixk2gll8245-profile/etc/ssl/certs/ca-certificates.crt\"\n" (0 . 119))
result: PASS
test-name: specification->package when not found
location: /tmp/guix-build-guix-0.13.0.drv-0/source/tests/packages.scm:1066
source:
+ (test-equal
+ "specification->package when not found"
+ 'quit
+ (catch 'quit
+ (lambda ()
+ (specification->package
+ "this-package-does-not-exist"))
+ (lambda (key . args) key)))
expected-value: quit
actual-value: quit
result: PASS
SKIP: tests/snix
================
test-name: factorize-uri
location: /tmp/guix-build-guix-0.13.0.drv-0/source/tests/snix.scm:36
source:
+ (test-assert
+ "factorize-uri"
+ (every?
+ (match-lambda
+ ((uri version '-> expected)
+ (equal? (factorize-uri uri version) expected)))
+ '(("http://example.com/foo.tgz"
+ "1.0"
+ ->
+ "http://example.com/foo.tgz")
+ ("http://example.com/foo-2.8.tgz"
+ "2.8"
+ ->
+ ("http://example.com/foo-" version ".tgz"))
+ ("http://example.com/2.8/foo-2.8.tgz"
+ "2.8"
+ ->
+ ("http://example.com/"
+ version
+ "/foo-"
+ version
+ ".tgz")))))
actual-value: #t
result: PASS
test-name: nixpkgs->guix-package
location: /tmp/guix-build-guix-0.13.0.drv-0/source/tests/snix.scm:54
source:
+ (test-assert
+ "nixpkgs->guix-package"
+ (match (nixpkgs->guix-package
+ %nixpkgs-directory
+ "guile")
+ (('package
+ ('name "guile")
+ ('version (? string?))
+ ('source ('origin _ ...))
+ ('build-system _)
+ ('inputs ('quasiquote (inputs ...)))
+ ('propagated-inputs ('quasiquote (pinputs ...)))
+ ('home-page (? string?))
+ ('synopsis (? string?))
+ ('description (? string?))
+ ('license (? symbol?)))
+ (and (member '("libffi" ,libffi) inputs)
+ (member '("gmp" ,gmp) pinputs)
+ #t))
+ (x (pk 'fail x #f))))
result: SKIP
FAIL: tests/store
=================
test-name: open-connection with file:// URI
location: /tmp/guix-build-guix-0.13.0.drv-0/source/tests/store.scm:51
source:
+ (test-assert
+ "open-connection with file:// URI"
+ (let ((store (open-connection
+ (string-append "file://" (%daemon-socket-uri)))))
+ (and (add-text-to-store store "foo" "bar")
+ (begin (close-connection store) #t))))
actual-value: #t
result: PASS
test-name: connection handshake error
location: /tmp/guix-build-guix-0.13.0.drv-0/source/tests/store.scm:59
source:
+ (test-equal
+ "connection handshake error"
+ EPROTO
+ (let ((port (%make-void-port "rw")))
+ (guard (c ((nix-connection-error? c)
+ (and (eq? port (nix-connection-error-file c))
+ (nix-connection-error-code c))))
+ (open-connection #f #:port port)
+ 'broken)))
expected-value: 71
actual-value: 71
result: PASS
test-name: store-path-hash-part
location: /tmp/guix-build-guix-0.13.0.drv-0/source/tests/store.scm:68
source:
+ (test-equal
+ "store-path-hash-part"
+ "283gqy39v3g9dxjy26rynl0zls82fmcg"
+ (store-path-hash-part
+ (string-append
+ (%store-prefix)
+ "/283gqy39v3g9dxjy26rynl0zls82fmcg-guile-2.0.7")))
expected-value: "283gqy39v3g9dxjy26rynl0zls82fmcg"
actual-value: "283gqy39v3g9dxjy26rynl0zls82fmcg"
result: PASS
test-name: store-path-hash-part #f
location: /tmp/guix-build-guix-0.13.0.drv-0/source/tests/store.scm:74
source:
+ (test-equal
+ "store-path-hash-part #f"
+ #f
+ (store-path-hash-part
+ (string-append
+ (%store-prefix)
+ "/foo/bar/283gqy39v3g9dxjy26rynl0zls82fmcg-guile-2.0.7")))
expected-value: #f
actual-value: #f
result: PASS
test-name: store-path-package-name
location: /tmp/guix-build-guix-0.13.0.drv-0/source/tests/store.scm:80
source:
+ (test-equal
+ "store-path-package-name"
+ "guile-2.0.7"
+ (store-path-package-name
+ (string-append
+ (%store-prefix)
+ "/283gqy39v3g9dxjy26rynl0zls82fmcg-guile-2.0.7")))
expected-value: "guile-2.0.7"
actual-value: "guile-2.0.7"
result: PASS
test-name: store-path-package-name #f
location: /tmp/guix-build-guix-0.13.0.drv-0/source/tests/store.scm:86
source:
+ (test-equal
+ "store-path-package-name #f"
+ #f
+ (store-path-package-name
+ "/foo/bar/283gqy39v3g9dxjy26rynl0zls82fmcg-guile-2.0.7"))
expected-value: #f
actual-value: #f
result: PASS
test-name: direct-store-path?
location: /tmp/guix-build-guix-0.13.0.drv-0/source/tests/store.scm:91
source:
+ (test-assert
+ "direct-store-path?"
+ (and (direct-store-path?
+ (string-append
+ (%store-prefix)
+ "/283gqy39v3g9dxjy26rynl0zls82fmcg-guile-2.0.7"))
+ (not (direct-store-path?
+ (string-append
+ (%store-prefix)
+ "/283gqy39v3g9dxjy26rynl0zls82fmcg-guile-2.0.7/bin/guile")))
+ (not (direct-store-path? (%store-prefix)))))
actual-value: #t
result: PASS
test-name: add-data-to-store
location: /tmp/guix-build-guix-0.13.0.drv-0/source/tests/store.scm:103
source:
+ (test-equal
+ "add-data-to-store"
+ #vu8(1 2 3 4 5)
+ (call-with-input-file
+ (add-data-to-store %store "data" #vu8(1 2 3 4 5))
+ get-bytevector-all))
expected-value: #vu8(1 2 3 4 5)
actual-value: #vu8(1 2 3 4 5)
result: PASS
test-name: valid-path? live
location: /tmp/guix-build-guix-0.13.0.drv-0/source/tests/store.scm:108
source:
+ (test-assert
+ "valid-path? live"
+ (let ((p (add-text-to-store %store "hello" "hello, world")))
+ (valid-path? %store p)))
actual-value: #t
result: PASS
test-name: valid-path? false
location: /tmp/guix-build-guix-0.13.0.drv-0/source/tests/store.scm:112
source:
+ (test-assert
+ "valid-path? false"
+ (not (valid-path?
+ %store
+ (string-append
+ (%store-prefix)
+ "/"
+ (make-string 32 #\e)
+ "-foobar"))))
actual-value: #t
result: PASS
test-name: valid-path? error
location: /tmp/guix-build-guix-0.13.0.drv-0/source/tests/store.scm:117
source:
+ (test-assert
+ "valid-path? error"
+ (with-store
+ s
+ (random seed for tests: 1495495557
finding garbage collector roots...
removing stale temporary roots file `/tmp/guix-tests/var/12700/temproots/12718'
determining live/dead paths...
finding garbage collector roots...
removing stale temporary roots file `/tmp/guix-tests/var/12700/temproots/.fuse_hidden0001096600002605'
determining live/dead paths...
finding garbage collector roots...
removing stale temporary roots file `/tmp/guix-tests/var/12700/temproots/.fuse_hidden0001096600002607'
determining live/dead paths...
finding garbage collector roots...
removing stale temporary roots file `/tmp/guix-tests/var/12700/temproots/.fuse_hidden0001096600002608'
deleting unused links...
finding garbage collector roots...
removing stale temporary roots file `/tmp/guix-tests/var/12700/temproots/12747'
removing stale temporary roots file `/tmp/guix-tests/var/12700/temproots/.fuse_hidden000109660000260a'
deleting `/tmp/guix-tests/store/82kp2v2zf1mr8ay3pm6nnkc1537fz8qr-delete-me'
deleting `/tmp/guix-tests/store/trash'
deleting unused links...
note: currently hard linking saves 0.61 MiB
finding garbage collector roots...
removing stale temporary roots file `/tmp/guix-tests/var/12700/temproots/12754'
removing stale temporary roots file `/tmp/guix-tests/var/12700/temproots/.fuse_hidden000109660000260d'
deleting `/tmp/guix-tests/store/a27v317kpgsn1k82vnqhn02s9hjqwg5f-delete-me'
deleting `/tmp/guix-tests/store/trash'
deleting unused links...
note: currently hard linking saves 0.61 MiB
guard (c ((nix-protocol-error? c) #t))
+ (valid-path? s "foo")
+ #f)))
actual-value: #t
result: PASS
test-name: valid-path? recovery
location: /tmp/guix-build-guix-0.13.0.drv-0/source/tests/store.scm:123
source:
+ (test-assert
+ "valid-path? recovery"
+ (with-store
+ s
+ (let-syntax ((true-if-error
+ (syntax-rules ()
+ ((_ exp)
+ (guard (c ((nix-protocol-error? c) #t)) exp #f)))))
+ (and (true-if-error (valid-path? s "foo"))
+ (true-if-error (valid-path? s "bar"))
+ (true-if-error (valid-path? s "baz"))
+ (true-if-error (valid-path? s "chbouib"))
+ (valid-path?
+ s
+ (add-text-to-store s "valid" "yeah"))))))
actual-value: #t
result: PASS
test-name: hash-part->path
location: /tmp/guix-build-guix-0.13.0.drv-0/source/tests/store.scm:140
source:
+ (test-assert
+ "hash-part->path"
+ (let ((p (add-text-to-store %store "hello" "hello, world")))
+ (equal?
+ (hash-part->path %store (store-path-hash-part p))
+ p)))
actual-value: #t
result: PASS
test-name: dead-paths
location: /tmp/guix-build-guix-0.13.0.drv-0/source/tests/store.scm:145
source:
+ (test-assert
+ "dead-paths"
+ (let ((p (add-text-to-store
+ %store
+ "random-text"
+ (random-text))))
+ (->bool (member p (dead-paths %store)))))
actual-value: #t
result: PASS
test-name: permanent root
location: /tmp/guix-build-guix-0.13.0.drv-0/source/tests/store.scm:166
source:
+ (test-assert
+ "permanent root"
+ (let* ((p (with-store
+ store
+ (let ((p (add-text-to-store
+ store
+ "random-text"
+ (random-text))))
+ (add-permanent-root p)
+ (add-permanent-root p)
+ p))))
+ (and (member p (live-paths %store))
+ (begin
+ (remove-permanent-root p)
+ (->bool (member p (dead-paths %store)))))))
actual-value: #t
result: PASS
test-name: dead path can be explicitly collected
location: /tmp/guix-build-guix-0.13.0.drv-0/source/tests/store.scm:178
source:
+ (test-assert
+ "dead path can be explicitly collected"
+ (let ((p (add-text-to-store
+ %store
+ "random-text"
+ (random-text)
+ '())))
+ (let-values
+ (((paths freed) (delete-paths %store (list p))))
+ (and (equal? paths (list p))
+ (> freed 0)
+ (not (file-exists? p))))))
actual-value: #f
result: FAIL
test-name: add-text-to-store vs. delete-paths
location: /tmp/guix-build-guix-0.13.0.drv-0/source/tests/store.scm:186
source:
+ (test-assert
+ "add-text-to-store vs. delete-paths"
+ (with-store
+ store
+ (let* ((text (random-text))
+ (path (add-text-to-store store "delete-me" text))
+ (deleted (delete-paths store (list path)))
+ (path2 (add-text-to-store store "delete-me" text)))
+ (and (string=? path path2)
+ (equal? deleted (list path))
+ (valid-path? store path)
+ (file-exists? path)))))
actual-value: #t
result: PASS
test-name: add-to-store vs. delete-paths
location: /tmp/guix-build-guix-0.13.0.drv-0/source/tests/store.scm:199
source:
+ (test-assert
+ "add-to-store vs. delete-paths"
+ (with-store
+ store
+ (let* ((file (search-path %load-path "guix.scm"))
+ (path (add-to-store store "delete-me" #t "sha256" file))
+ (deleted (delete-paths store (list path)))
+ (path2 (add-to-store store "delete-me" #t "sha256" file)))
+ (and (string=? path path2)
+ (equal? deleted (list path))
+ (valid-path? store path)
+ (file-exists? path)))))
actual-value: #t
result: PASS
test-name: references
location: /tmp/guix-build-guix-0.13.0.drv-0/source/tests/store.scm:211
source:
+ (test-assert
+ "references"
+ (let* ((t1 (add-text-to-store
+ %store
+ substitute: warning: authentication and authorization of substitutes disabled!
substitute: guix substitute: warning: ACL for archive imports seems to be uninitialized, substitutes may be unavailable
"random1"
+ (random-text)))
+ (t2 (add-text-to-store
+ %store
+ "random2"
+ (random-text)
+ (list t1))))
+ (and (equal? (list t1) (references %store t2))
+ (equal? (list t2) (referrers %store t1))
+ (null? (references %store t1))
+ (null? (referrers %store t2)))))
actual-value: #t
result: PASS
test-name: references/substitutes missing reference info
location: /tmp/guix-build-guix-0.13.0.drv-0/source/tests/store.scm:221
source:
+ (test-assert
+ "references/substitutes missing reference info"
+ (with-store
+ s
+ (set-build-options s #:use-substitutes? #f)
+ (guard (c ((nix-protocol-error? c) #t))
+ (let* ((b (add-to-store
+ s
+ "bash"
+ #t
+ "sha256"
+ (search-bootstrap-binary
+ "bash"
+ (%current-system))))
+ (d (derivation
+ s
+ "the-thing"
+ b
+ '("--help")
+ #:inputs
+ `((,b)))))
+ (references/substitutes
+ s
+ (list (derivation->output-path d) b))
+ #f))))
actual-value: #t
result: PASS
test-name: references/substitutes with substitute info
location: /tmp/guix-build-guix-0.13.0.drv-0/source/tests/store.scm:233
source:
+ (test-assert
+ "references/substitutes with substitute info"
+ (with-store
+ s
+ (set-build-options s #:use-substitutes? #t)
+ (let* ((t1 (add-text-to-store s "random1" (random-text)))
+ (t2 (add-text-to-store
+ s
+ "random2"
+ (random-text)
+ (list t1)))
+ (t3 (add-text-to-store
+ s
+ "build"
+ "echo -n $t2 > $out"))
+ (b (add-to-store
+ s
+ "bash"
+ #t
+ "sha256"
+ (search-bootstrap-binary
+ "bash"
+ (%current-system))))
+ (d (derivation
+ s
+ "the-thing"
+ b
+ `("-e" ,t3)
+ #:inputs
+ `((,b) (,t3) (,t2))
+ #:env-vars
+ `(("t2" unquote t2))))
+ (o (derivation->output-path d)))
+ (with-derivation-narinfo
+ d
+ (sha256 => (sha256 (string->utf8 t2)))
+ (references => (list t2))
+ (equal?
+ (references/substitutes s (list o t3 t2 t1))
+ `((,t2) () (,t1) ()))))))
actual-value: #t
result: PASS
test-name: substitutable-path-info when substitutes are turned off
location: /tmp/guix-build-guix-0.13.0.drv-0/source/tests/store.scm:257
source:
+ (test-equal
+ "substitutable-path-info when substitutes are turned off"
+ '()
+ (with-store
+ s
+ (set-build-options s #:use-substitutes? #f)
+ (let* ((b (add-to-store
+ s
+ "bash"
+ #t
+ "sha256"
+ (search-bootstrap-binary
+ "bash"
+ (%current-system))))
+ (d (derivation
+ s
+ "the-thing"
+ b
+ '("--version")
+ #:inputs
+ `((,b))))
+ (o (derivation->output-path d)))
+ (with-derivation-narinfo
+ d
+ (substitutable-path-info s (list o))))))
expected-value: ()
actual-value: ()
result: PASS
test-name: substitutable-paths when substitutes are turned off
location: /tmp/guix-build-guix-0.13.0.drv-0/source/tests/store.scm:270
source:
+ (test-equal
+ "substitutable-paths when substitutes are turned off"
+ '()
+ (with-store
+ s
+ (set-build-options s #:use-substitutes? #f)
+ (let* ((b (@ build-started /tmp/guix-tests/store/s25yp6rixfdjv9z2zpb1wg405qy3yif1-the-thing.drv - x86_64-linux /tmp/guix-tests/var/log/guix/drvs/s2//5yp6rixfdjv9z2zpb1wg405qy3yif1-the-thing.drv.bz2
@ build-succeeded /tmp/guix-tests/store/s25yp6rixfdjv9z2zpb1wg405qy3yif1-the-thing.drv -
add-to-store
+ s
+ "bash"
+ #t
+ "sha256"
+ (search-bootstrap-binary
+ "bash"
+ (%current-system))))
+ (d (derivation
+ s
+ "the-thing"
+ b
+ '("--version")
+ #:inputs
+ `((,b))))
+ (o (derivation->output-path d)))
+ (with-derivation-narinfo
+ d
+ (substitutable-paths s (list o))))))
expected-value: ()
actual-value: ()
result: PASS
test-name: requisites
location: /tmp/guix-build-guix-0.13.0.drv-0/source/tests/store.scm:283
source:
+ (test-assert
+ "requisites"
+ (let* ((t1 (add-text-to-store
+ %store
+ "random1"
+ (random-text)
+ '()))
+ (t2 (add-text-to-store
+ %store
+ "random2"
+ (random-text)
+ (list t1)))
+ (t3 (add-text-to-store
+ %store
+ "random3"
+ (random-text)
+ (list t2)))
+ (t4 (add-text-to-store
+ %store
+ "random4"
+ (random-text)
+ (list t1 t3))))
+ (define (same? x y)
+ (and (= (length x) (length y))
+ (lset= equal? x y)))
+ (and (same? (requisites %store (list t1)) (list t1))
+ (same? (requisites %store (list t2))
+ (list t1 t2))
+ (same? (requisites %store (list t3))
+ (list t1 t2 t3))
+ (same? (requisites %store (list t4))
+ (list t1 t2 t3 t4))
+ (same? (requisites %store (list t1 t2 t3 t4))
+ (list t1 t2 t3 t4)))))
actual-value: #t
result: PASS
test-name: derivers
location: /tmp/guix-build-guix-0.13.0.drv-0/source/tests/store.scm:303
source:
+ (test-assert
+ "derivers"
+ (let* ((b (add-text-to-store
+ %store
+ "build"
+ "echo $foo > $out"
+ '()))
+ (s (add-to-store
+ %store
+ "bash"
+ #t
+ "sha256"
+ (search-bootstrap-binary
+ "bash"
+ (%current-system))))
+ (d (derivation
+ %store
+ "the-thing"
+ s
+ `("-e" ,b)
+ #:env-vars
+ `(("foo" unquote (random-text)))
+ #:inputs
+ `((,b) (,s))))
+ (o (derivation->output-path d)))
+ (and (build-derivations %store (list d))
+ (equal?
+ (query-derivation-outputs
+ %store
+ (derivation-file-name d))
+ (list o))
+ (equal?
+ (valid-derivers %store o)
+ (list (derivation-file-name d))))))
actual-value: #t
result: PASS
test-name: topologically-sorted, one item
location: /tmp/guix-build-guix-0.13.0.drv-0/source/tests/store.scm:319
source:
+ (test-assert
+ "topologically-sorted, one item"
+ (let* ((a (add-text-to-store %store "a" "a"))
+ (b (add-text-to-store %store "b" "b" (list a)))
+ (c (add-text-to-store %store "c" "c" (list b)))
+ (d (add-text-to-store %store "d" "d" (list c)))
+ (s (topologically-sorted %store (list d))))
+ (equal? s (list a b c d))))
actual-value: #t
result: PASS
test-name: topologically-sorted, several items
location: /tmp/guix-build-guix-0.13.0.drv-0/source/tests/store.scm:327
source:
+ (test-assert
+ "topologically-sorted, several items"
+ (let* ((a (add-text-to-store %store "a" "a"))
+ (b (add-text-to-store %store "b" "b" (list a)))
+ (c (add-text-to-store %store "c" "c" (list b)))
+ (d (add-text-to-store %store "d" "d" (list c)))
+ (s1 (topologically-sorted %store (list d a c b)))
+ (s2 (topologically-sorted %store (list b d c a b d))))
+ (equal? s1 s2 (list a b c d))))
actual-value: #t
result: PASS
test-name: topologically-sorted, more difficult
location: /tmp/guix-build-guix-0.13.0.drv-0/source/tests/store.scm:336
source:
+ (test-assert
+ "topologically-sorted, more difficult"
+ (let* ((a (add-text-to-store %store "a" "a"))
+ (b (add-text-to-store %store "b" "b" (list a)))
+ (c (add-text-to-store %store "c" "c" (list b)))
+ (d (add-text-to-store %store "d" "d" (list c)))
+ (w (add-text-to-store %store "w" "w"))
+ (x (add-text-to-store %store "x" "x" (list w)))
+ (y (add-text-to-store %store "y" "y" (list x d)))
+ (s1 (topologically-sorted %store (list y)))
+ (s2 (topologically-sorted %store (list c y)))
+ (s3 (topologically-sorted
+ %store
+ (cons y (references %store y)))))
+ (let* ((x-then-d?
+ (equal? (references %store y) (list x d))))
+ (and (equal?
+ s1
+ (if x-then-d?
+ (list w x a b c d y)
+ (list a b c d w x y)))
+ (equal?
+ s2
+ (if x-then-d?
+ (list a b c w x d y)
+ (list a b c d w x y)))
+ (lset= string=? s1 s3)))))
actual-value: #t
result: PASS
test-name: current-build-output-port, UTF-8
location: /tmp/guix-build-guix-0.13.0.drv-0/source/tests/store.scm:360
source:
+ (test-assert
+ "current-build-output-port, UTF-8"
+ (string-contains
+ (with-fluids
+ ((%default-port-encoding "UTF-8"))
+ (call-with-output-string
+ (lambda (port)
+ (parameterize
+ ((current-build-output-port port))
+ (let* ((s "Here’s a Greek letter: λ.")
+ (d (build-expression->derivation
+ %store
+ "foo"
+ `(display ,s)
+ #:guile-for-build
+ (package-derivation
+ s
+ %bootstrap-guile
+ (%current-system)))))
+ (guard (c ((nix-protocol-error? c) #t))
+ (build-derivations %store (list d))))))))
+ "Here’s a Greek letter: λ."))
actual-value: 175
result: PASS
test-name: current-build-output-port, UTF-8 + garbage
location: /tmp/guix-build-guix-0.13.0.drv-0/source/tests/store.scm:376
source:
+ (test-assert
+ "current-build-output-port, UTF-8 + garbage"
+ (string-contains
+ (with-fluids
+ ((%default-port-encoding "UTF-8"))
+ (call-with-output-string
+ (lambda (port)
+ (parameterize
+ ((current-build-output-port port))
+ (let ((d (build-expression->derivation
+ %store
+ "foo"
+ `(begin
+ (use-modules (rnrs io ports))
+ (display "garbage: ")
+ (put-bytevector (current-output-port) #vu8(128))
+ (display "lambda: λ\n"))
+ #:guile-for-build
+ (package-derivation %store %bootstrap-guile))))
+ (guard (c ((nix-protocol-error? c) #t))
+ (build-derivations %store (list d))))))))
+ (cond-expand
+ (guile-2.2 "garbage: �lambda: λ")
+ (else "garbage: ?lambda: λ"))))
actual-value: 175
result: PASS
test-name: log-file, derivation
location: /tmp/guix-build-guix-0.13.0.drv-0/source/tests/store.scm:398
source:
+ (test-assert
+ "log-file, derivation"
+ (let* ((b (add-text-to-store
+ %store
+ "build"
+ "echo $foo > $out"
+ '()))
+ (s (add-to-store
+ %store
+ "bash"
+ #t
+ "sha256"
+ (search-bootstrap-binary
+ "bash"
+ (%current-system))))
+ (d (derivation
+ %store
+ "the-thing"
+ s
+ `("-e" ,b)
+ #:env-vars
+ @ build-started /tmp/guix-tests/store/w1yzgwcpadkcrm6k9drqvnzzrpcnzk68-the-thing.drv - x86_64-linux /tmp/guix-tests/var/log/guix/drvs/w1//yzgwcpadkcrm6k9drqvnzzrpcnzk68-the-thing.drv.bz2
@ build-succeeded /tmp/guix-tests/store/w1yzgwcpadkcrm6k9drqvnzzrpcnzk68-the-thing.drv -
@ build-started /tmp/guix-tests/store/qnbzlzx0fqiy6cz1si00k6cwl98sy024-the-thing.drv - x86_64-linux /tmp/guix-tests/var/log/guix/drvs/qn//bzlzx0fqiy6cz1si00k6cwl98sy024-the-thing.drv.bz2
@ build-succeeded /tmp/guix-tests/store/qnbzlzx0fqiy6cz1si00k6cwl98sy024-the-thing.drv -
`(("foo" unquote (random-text)))
+ #:inputs
+ `((,b) (,s)))))
+ (and (build-derivations %store (list d))
+ (file-exists?
+ (pk (log-file %store (derivation-file-name d)))))))
;;; ("/tmp/guix-tests/var/log/guix/drvs/w1/yzgwcpadkcrm6k9drqvnzzrpcnzk68-the-thing.drv.bz2")
actual-value: #t
result: PASS
test-name: log-file, output file name
location: /tmp/guix-build-guix-0.13.0.drv-0/source/tests/store.scm:410
source:
+ (test-assert
+ "log-file, output file name"
+ (let* ((b (add-text-to-store
+ %store
+ "build"
+ "echo $foo > $out"
+ '()))
+ (s (add-to-store
+ %store
+ "bash"
+ #t
+ "sha256"
+ (search-bootstrap-binary
+ "bash"
+ (%current-system))))
+ (d (derivation
+ %store
+ "the-thing"
+ s
+ `("-e" ,b)
+ #:env-vars
+ `(("foo" unquote (random-text)))
+ #:inputs
+ `((,b) (,s))))
+ (o (derivation->output-path d)))
+ (and (build-derivations %store (list d))
+ (file-exists? (pk (log-file %store o)))
+ (string=?
+ (log-file %store (derivation-file-name d))
+ (log-file %store o)))))
;;; ("/tmp/guix-tests/var/log/guix/drvs/qn/bzlzx0fqiy6cz1si00k6cwl98sy024-the-thing.drv.bz2")
actual-value: #t
result: PASS
test-name: no substitutes
location: /tmp/guix-build-guix-0.13.0.drv-0/source/tests/store.scm:425
source:
+ (test-assert
+ "no substitutes"
+ (with-store
+ s
+ (let* ((d1 (package-derivation
+ s
+ %bootstrap-guile
+ (%current-system)))
+ (d2 (package-derivation
+ s
+ %bootstrap-glibc
+ (%current-system)))
+ (o (map derivation->output-path (list d1 d2))))
+ (set-build-options s #:use-substitutes? #f)
+ (and (not (has-substitutes? s (derivation-file-name d1)))
+ (not (has-substitutes? s (derivation-file-name d2)))
+ (null? (substitutable-paths s o))
+ (null? (substitutable-path-info s o))))))
actual-value: #t
result: PASS
test-name: build-things with output path
location: /tmp/guix-build-guix-0.13.0.drv-0/source/tests/store.scm:436
source:
+ (test-assert
+ "build-things with output path"
+ (with-store
+ s
+ (let* ((c (random-text))
+ (d (build-expression->derivation
+ s
+ "substitute-me"
+ `(call-with-output-file
+ %output
+ (lambda (p) (display ,c p)))
+ #:guile-for-build
+ (package-derivation
+ s
+ %bootstrap-guile
+ (%current-system))))
+ (o (derivation->output-path d)))
+ (set-build-options s #:use-substitutes? #f)
+ (build-things s (list o))
+ (not (valid-path? s o)))))
actual-value: #t
result: PASS
test-name: substitute query
location: /tmp/guix-build-guix-0.13.0.drv-0/source/tests/store.scm:456
source:
+ (test-assert
+ "substitute query"
+ (with-store
+ s
+ (let* ((d (package-derivation
+ s
+ %bootstrap-guile
+ (%current-system)))
+ (o (derivation->output-path d)))
+ (with-derivation-narinfo
+ d
+ (false-if-exception
+ (delete-file-recursively
+ (string-append
+ (getenv "XDG_CACHE_HOME")
+ "/guix/substitute")))
+ (set-build-options
+ s
+ #:use-substitutes?
+ #t
+ #:substitute-urls
+ (%test-substitute-urls))
+ (and (has-substitutes? s o)
+ (equal?
+ (list o)
+ (substitutable-paths s (list o)))
+ (match (pk 'spi (substitutable-path-info s (list o)))
+ substitute: warning: authentication and authorization of substitutes disabled!
substitute: guix substitute: warning: ACL for archive imports seems to be uninitialized, substitutes may be unavailable
substitute: warning: authentication and authorization of substitutes disabled!
substitute: guix substitute: warning: ACL for archive imports seems to be uninitialized, substitutes may be unavailable
substitute: warning: authentication and authorization of substitutes disabled!
substitute: guix substitute: warning: ACL for archive imports seems to be uninitialized, substitutes may be unavailable
substitute: warning: authentication and authorization of substitutes disabled!
substitute: guix substitute: warning: ACL for archive imports seems to be uninitialized, substitutes may be unavailable
substitute: warning: authentication and authorization of substitutes disabled!
substitute: guix substitute: warning: ACL for archive imports seems to be uninitialized, substitutes may be unavailable
substitute: warning: authentication and authorization of substitutes disabled!
substitute: guix substitute: warning: ACL for archive imports seems to be uninitialized, substitutes may be unavailable
@ substituter-started /tmp/guix-tests/store/zmgkhlq6xzlm0xs9s3ramqlwmd5lrlj0-substitute-me /tmp/guix-build-guix-0.13.0.drv-0/source/nix/scripts/substitute
warning: authentication and authorization of substitutes disabled!
guix substitute: warning: ACL for archive imports seems to be uninitialized, substitutes may be unavailable
Downloading file:/tmp/guix-tests/var/12700/substituter-data/example.nar (1KiB installed)...
\r^[[K example.nar 176B 0B/s 00:00 [####################] 100.0%
@ substituter-succeeded /tmp/guix-tests/store/zmgkhlq6xzlm0xs9s3ramqlwmd5lrlj0-substitute-me
(((? substitutable? s))
+ (and (string=?
+ (substitutable-deriver s)
+ (derivation-file-name d))
+ (null? (substitutable-references s))
+ (equal? (substitutable-nar-size s) 1234)))))))))
;;; (spi (#<<substitutable> path: "/tmp/guix-tests/store/7y0q8n6zv41lr9viybhihlcmhri6939f-guile-bootstrap-2.0" deriver: "/tmp/guix-tests/store/kn0gx5na8k2nilq6c362bmavywnilkhq-guile-bootstrap-2.0.drv" refs: () dl-size: 0 nar-size: 1234>))
actual-value: #t
result: PASS
test-name: substitute query, alternating URLs
location: /tmp/guix-build-guix-0.13.0.drv-0/source/tests/store.scm:480
source:
+ (test-assert
+ "substitute query, alternating URLs"
+ (let* ((d (with-store
+ s
+ (package-derivation
+ s
+ %bootstrap-guile
+ (%current-system))))
+ (o (derivation->output-path d)))
+ (with-derivation-narinfo
+ d
+ (false-if-exception
+ (delete-file-recursively
+ (string-append
+ (getenv "XDG_CACHE_HOME")
+ "/guix/substitute")))
+ (and (with-store
+ s
+ (set-build-options
+ s
+ #:use-substitutes?
+ #t
+ #:substitute-urls
+ (%test-substitute-urls))
+ (has-substitutes? s o))
+ (with-store
+ s
+ (set-build-options
+ s
+ #:use-substitutes?
+ #t
+ #:substitute-urls
+ (list "http://does-not-exist"))
+ (not (has-substitutes? s o)))
+ (with-store
+ s
+ (set-build-options
+ s
+ #:use-substitutes?
+ #t
+ #:substitute-urls
+ (%test-substitute-urls))
+ (has-substitutes? s o))
+ (with-store
+ s
+ (set-build-options
+ s
+ #:use-substitutes?
+ #t
+ #:substitute-urls
+ '())
+ (not (has-substitutes? s o)))))))
actual-value: #t
result: PASS
test-name: substitute
location: /tmp/guix-build-guix-0.13.0.drv-0/source/tests/store.scm:512
source:
+ (test-assert
+ "substitute"
+ (with-store
+ s
+ (let* ((c (random-text))
+ (d (build-expression->derivation
+ s
+ "substitute-me"
+ `(call-with-output-file
+ %output
+ (lambda (p) (exit 1) (display ,c p)))
+ #:guile-for-build
+ (package-derivation
+ s
+ %bootstrap-guile
+ (%current-system))))
+ (o (derivation->output-path d)))
+ (with-derivation-substitute
+ d
+ c
+ (set-build-options
+ s
+ #:use-substitutes?
+ #t
+ #:substitute-urls
+ (%test-substitute-urls))
+ (and (has-substitutes? s o)
+ (build-derivations s (list d))
+ (equal?
+ c
+ (call-with-input-file o get-string-all)))))))
actual-value: #t
result: PASS
test-name: substitute + build-things with output path
location: /tmp/guix-build-guix-0.13.0.drv-0/source/tests/store.scm:531
source:
+ (test-assert
+ "substitute + build-things with output path"
+ (with-store
+ s
+ (let* ((c (random-text))
+ (d (build-expression->derivation
+ s
+ "substitute-me"
+ `(call-with-output-file
+ %output
+ (lambda (p) (exit 1) (display ,c p)))
+ #:guile-for-build
+ (package-derivation
+ s
+ %bootstrap-guile
+ (%current-system))))
+ (o (derivation->output-path d)))
+ (substitute: warning: authentication and authorization of substitutes disabled!
substitute: guix substitute: warning: ACL for archive imports seems to be uninitialized, substitutes may be unavailable
@ substituter-started /tmp/guix-tests/store/57gqm81hrn29k7cf0076x52zmlcax2vr-substitute-me /tmp/guix-build-guix-0.13.0.drv-0/source/nix/scripts/substitute
warning: authentication and authorization of substitutes disabled!
guix substitute: warning: ACL for archive imports seems to be uninitialized, substitutes may be unavailable
Downloading file:/tmp/guix-tests/var/12700/substituter-data/example.nar (1KiB installed)...
\r^[[K example.nar 176B 0B/s 00:00 [####################] 100.0%
@ substituter-succeeded /tmp/guix-tests/store/57gqm81hrn29k7cf0076x52zmlcax2vr-substitute-me
substitute: warning: authentication and authorization of substitutes disabled!
substitute: guix substitute: warning: ACL for archive imports seems to be uninitialized, substitutes may be unavailable
@ substituter-started /tmp/guix-tests/store/4l2phlryfj24z74xw4jb45zia952rjri-corrupt-substitute /tmp/guix-build-guix-0.13.0.drv-0/source/nix/scripts/substitute
warning: authentication and authorization of substitutes disabled!
guix substitute: warning: ACL for archive imports seems to be uninitialized, substitutes may be unavailable
Downloading file:/tmp/guix-tests/var/12700/substituter-data/example.nar (1KiB installed)...
\r^[[K example.nar 128B 0B/s 00:00 [####################] 100.0%
@ substituter-failed /tmp/guix-tests/store/4l2phlryfj24z74xw4jb45zia952rjri-corrupt-substitute 0 hash mismatch in downloaded path `/tmp/guix-tests/store/4l2phlryfj24z74xw4jb45zia952rjri-corrupt-substitute': expected 0000000000000000000000000000000000000000000000000000000000000000, got b8f73a6eb280e63169b1de2a5b5e154676fe1ada685f1e5c7183cbb2c1dcd535
substitute: warning: authentication and authorization of substitutes disabled!
substitute: guix substitute: warning: ACL for archive imports seems to be uninitialized, substitutes may be unavailable
@ substituter-started /tmp/guix-tests/store/5idi3iqz8aq2qn6zll308ipxz65b32p2-substitute-me-not /tmp/guix-build-guix-0.13.0.drv-0/source/nix/scripts/substitute
warning: authentication and authorization of substitutes disabled!
guix substitute: warning: ACL for archive imports seems to be uninitialized, substitutes may be unavailable
Downloading file:/tmp/guix-tests/var/12700/substituter-data/example.nar (1KiB installed)...
guix substitute: error: open-file: No such file or directory: "/tmp/guix-tests/var/12700/substituter-data/example.nar"
@ substituter-failed /tmp/guix-tests/store/5idi3iqz8aq2qn6zll308ipxz65b32p2-substitute-me-not 256 fetching path `/tmp/guix-tests/store/5idi3iqz8aq2qn6zll308ipxz65b32p2-substitute-me-not' failed with exit code 1
@ substituter-started /tmp/guix-tests/store/5idi3iqz8aq2qn6zll308ipxz65b32p2-substitute-me-not /tmp/guix-build-guix-0.13.0.drv-0/source/nix/scripts/substitute
warning: authentication and authorization of substitutes disabled!
guix substitute: warning: ACL for archive imports seems to be uninitialized, substitutes may be unavailable
Downloading file:/tmp/guix-tests/var/12700/substituter-data/example.nar (1KiB installed)...
guix substitute: error: open-file: No such file or directory: "/tmp/guix-tests/var/12700/substituter-data/example.nar"
@ substituter-failed /tmp/guix-tests/store/5idi3iqz8aq2qn6zll308ipxz65b32p2-substitute-me-not 256 fetching path `/tmp/guix-tests/store/5idi3iqz8aq2qn6zll308ipxz65b32p2-substitute-me-not' failed with exit code 1
@ build-started /tmp/guix-tests/store/yy8rjfxwqc995kjmnvqzdrpi5xb6s7fp-substitute-me-not.drv - x86_64-linux /tmp/guix-tests/var/log/guix/drvs/yy//8rjfxwqc995kjmnvqzdrpi5xb6s7fp-substitute-me-not.drv.bz2
@ build-succeeded /tmp/guix-tests/store/yy8rjfxwqc995kjmnvqzdrpi5xb6s7fp-substitute-me-not.drv -
with-derivation-substitute
+ d
+ c
+ (set-build-options
+ s
+ #:use-substitutes?
+ #t
+ #:substitute-urls
+ (%test-substitute-urls))
+ (and (has-substitutes? s o)
+ (build-things s (list o))
+ (valid-path? s o)
+ (equal?
+ c
+ (call-with-input-file o get-string-all)))))))
actual-value: #t
result: PASS
test-name: substitute, corrupt output hash
location: /tmp/guix-build-guix-0.13.0.drv-0/source/tests/store.scm:551
source:
+ (test-assert
+ "substitute, corrupt output hash"
+ (with-store
+ s
+ (let* ((c "hello, world")
+ (d (build-expression->derivation
+ s
+ "corrupt-substitute"
+ `(mkdir %output)
+ #:guile-for-build
+ (package-derivation
+ s
+ %bootstrap-guile
+ (%current-system))))
+ (o (derivation->output-path d)))
+ (with-derivation-substitute
+ d
+ c
+ (sha256 => (make-bytevector 32 0))
+ (set-build-options
+ s
+ #:use-substitutes?
+ #t
+ #:fallback?
+ #f
+ #:substitute-urls
+ (%test-substitute-urls))
+ (and (has-substitutes? s o)
+ (guard (c ((nix-protocol-error? c)
+ (pk 'corrupt c)
+ (not (zero? (nix-protocol-error-status c)))))
+ (build-derivations s (list d))
+ #f))))))
;;; (corrupt #<condition &nix-protocol-error [message: "some substitutes for the outputs of derivation `/tmp/guix-tests/store/392j6h3j3jg1srjvzppd9x1g86vlk44n-corrupt-substitute.drv' failed (usually happens due to networking issues); try `--fallback' to build derivation from source " status: 1] 101c690>)
actual-value: #t
result: PASS
test-name: substitute --fallback
location: /tmp/guix-build-guix-0.13.0.drv-0/source/tests/store.scm:581
source:
+ (test-assert
+ "substitute --fallback"
+ (with-store
+ s
+ (let* ((t (random-text))
+ (d (build-expression->derivation
+ s
+ "substitute-me-not"
+ `(call-with-output-file
+ %output
+ (lambda (p) (display ,t p)))
+ #:guile-for-build
+ (package-derivation
+ s
+ %bootstrap-guile
+ (%current-system))))
+ (o (derivation->output-path d)))
+ (with-derivation-narinfo
+ d
+ (set-build-options
+ s
+ #:use-substitutes?
+ #t
+ #:substitute-urls
+ (%test-substitute-urls))
+ (and (has-substitutes? s o)
+ (guard (c ((nix-protocol-error? c)
+ (set-build-options
+ s
+ #:use-substitutes?
+ #t
+ #:substitute-urls
+ (%test-substitute-urls)
+ #:fallback?
+ #t)
+ (and (build-derivations s (list d))
+ (equal?
+ t
+ (call-with-input-file o get-string-all)))))
+ (build-derivations s (list d))
+ #f))))))
actual-value: #t
result: PASS
test-name: export/import several paths
location: /tmp/guix-build-guix-0.13.0.drv-0/source/tests/store.scm:613
source:
+ (test-assert
+ "export/import several paths"
+ (let* ((texts (unfold
+ (cut >= <> 10)
+ (lambda _ (random-text))
+ #{1+}#
+ 0))
+ (files (map (cut add-text-to-store %store "text" <>)
+ texts))
+ (dump (call-with-bytevector-output-port
+ (cut export-paths %store files <>))))
+ finding garbage collector roots...
removing stale temporary roots file `/tmp/guix-tests/var/12700/temproots/.fuse_hidden0001096600002611'
deleting unused links...
finding garbage collector roots...
removing stale temporary roots file `/tmp/guix-tests/var/12700/temproots/.fuse_hidden000109660000264c'
deleting unused links...
finding garbage collector roots...
removing stale temporary roots file `/tmp/guix-tests/var/12700/temproots/.fuse_hidden000109660000265a'
deleting unused links...
(delete-paths %store files)
+ (and (every (negate file-exists?) files)
+ (let* ((source (open-bytevector-input-port dump))
+ (imported (import-paths %store source)))
+ (and (equal? imported files)
+ (every file-exists? files)
+ (equal?
+ texts
+ (map (lambda (file)
+ (call-with-input-file file get-string-all))
+ files)))))))
actual-value: #t
result: PASS
test-name: export/import paths, ensure topological order
location: /tmp/guix-build-guix-0.13.0.drv-0/source/tests/store.scm:633
source:
+ (test-assert
+ "export/import paths, ensure topological order"
+ (let* ((file0 (add-text-to-store %store "baz" (random-text)))
+ (file1 (add-text-to-store
+ %store
+ "foo"
+ (random-text)
+ (list file0)))
+ (file2 (add-text-to-store
+ %store
+ "bar"
+ (random-text)
+ (list file1)))
+ (files (list file1 file2))
+ (dump1 (call-with-bytevector-output-port
+ (cute export-paths %store (list file1 file2) <>)))
+ (dump2 (call-with-bytevector-output-port
+ (cute export-paths %store (list file2 file1) <>))))
+ (delete-paths %store files)
+ (and (every (negate file-exists?) files)
+ (bytevector=? dump1 dump2)
+ (let* ((source (open-bytevector-input-port dump1))
+ (imported (import-paths %store source)))
+ (and (equal? imported (list file1 file2))
+ (every file-exists? files)
+ (equal? (list file0) (references %store file1))
+ (equal? (list file1) (references %store file2)))))))
actual-value: #t
result: PASS
test-name: export/import incomplete
location: /tmp/guix-build-guix-0.13.0.drv-0/source/tests/store.scm:655
source:
+ (test-assert
+ "export/import incomplete"
+ (let* ((file0 (add-text-to-store %store "baz" (random-text)))
+ (file1 (add-text-to-store
+ %store
+ "foo"
+ (random-text)
+ (list file0)))
+ (file2 (add-text-to-store
+ %store
+ "bar"
+ (random-text)
+ (list file1)))
+ (dump (call-with-bytevector-output-port
+ (cute export-paths %store (list file2) <>))))
+ (delete-paths %store (list file0 file1 file2))
+ (guard (c ((nix-protocol-error? c)
+ (and (not (zero? (nix-protocol-error-status c)))
+ (string-contains
+ (nix-protocol-error-message c)
+ "not valid"))))
+ (import-paths
+ %store
+ (open-bytevector-input-port dump)))))
actual-value: 69
result: PASS
test-name: export/import recursive
location: /tmp/guix-build-guix-0.13.0.drv-0/source/tests/store.scm:672
source:
+ (test-assert
+ "export/import recursive"
+ (let* ((file0 (add-text-to-store %store "baz" (random-text)))
+ (file1 (add-text-to-store
+ %store
+ "foo"
+ (random-text)
+ (list file0)))
+ (file2 (add-text-to-store
+ %store
+ "bar"
+ (random-text)
+ (list file1)))
+ (dump (call-with-bytevector-output-port
+ (cute export-paths
+ %store
+ (list file2)
+ <>
+ #:recursive?
+ #t))))
+ (delete-paths %store (list file0 file1 file2))
+ (let ((imported
+ (import-paths
+ %store
+ (open-bytevector-input-port dump))))
+ (and (equal? imported (list file0 file1 file2))
+ (every file-exists? (list file0 file1 file2))
+ finding garbage collector roots...
removing stale temporary roots file `/tmp/guix-tests/var/12700/temproots/.fuse_hidden0001096600002660'
deleting unused links...
@ build-started /tmp/guix-tests/store/81dysylmirpp9m0brx7nj5p2a2kj8fbn-bunch.drv - x86_64-linux /tmp/guix-tests/var/log/guix/drvs/81//dysylmirpp9m0brx7nj5p2a2kj8fbn-bunch.drv.bz2
@ build-succeeded /tmp/guix-tests/store/81dysylmirpp9m0brx7nj5p2a2kj8fbn-bunch.drv -
finding garbage collector roots...
removing stale temporary roots file `/tmp/guix-tests/var/12700/temproots/.fuse_hidden0001096600002664'
deleting unused links...
(equal? (list file0) (references %store file1))
+ (equal? (list file1) (references %store file2))))))
actual-value: #t
result: PASS
test-name: write-file & export-path yield the same result
location: /tmp/guix-build-guix-0.13.0.drv-0/source/tests/store.scm:688
source:
+ (test-assert
+ "write-file & export-path yield the same result"
+ (run-with-store
+ %store
+ (mlet* %store-monad
+ ((drv1 (package->derivation %bootstrap-guile))
+ (out1 -> (derivation->output-path drv1))
+ (data ->
+ (unfold
+ (cut >= <> 26)
+ (lambda (i) (random-bytevector 128))
+ #{1+}#
+ 0))
+ (build ->
+ (gexp (begin
+ (use-modules (rnrs io ports) (srfi srfi-1))
+ (let ()
+ (define letters
+ (map (lambda (i)
+ (string
+ (integer->char
+ (+ i (char->integer #\a)))))
+ (iota 26)))
+ (define (touch file data)
+ (call-with-output-file
+ file
+ (lambda (port) (put-bytevector port data))))
+ (mkdir (ungexp output))
+ (chdir (ungexp output))
+ (for-each
+ touch
+ (append (drop letters 10) (take letters 10))
+ (list (ungexp-splicing data)))
+ #t))))
+ (drv2 (gexp->derivation "bunch" build))
+ (out2 -> (derivation->output-path drv2))
+ (item-info -> (store-lift query-path-info)))
+ (mbegin
+ %store-monad
+ (built-derivations (list drv1 drv2))
+ (foldm %store-monad
+ (lambda (item result)
+ (define ref-hash
+ (let-values
+ (((port get) (open-sha256-port)))
+ (write-file item port)
+ (close-port port)
+ (get)))
+ (>>= (item-info item)
+ (lambda (info)
+ (return
+ (and result
+ (bytevector=?
+ (path-info-hash info)
+ ref-hash))))))
+ #t
+ (list out1 out2))))
+ #:guile-for-build
+ (%guile-for-build)))
actual-value: #t
result: PASS
test-name: import corrupt path
location: /tmp/guix-build-guix-0.13.0.drv-0/source/tests/store.scm:754
source:
+ (test-assert
+ "import corrupt path"
+ (let* ((text (random-text))
+ (file (add-text-to-store %store "text" text))
+ (dump (call-with-bytevector-output-port
+ (cut export-paths %store (list file) <>))))
+ (delete-paths %store (list file))
+ (let* ((index 112)
+ (byte (bytevector-u8-ref dump index)))
+ (bytevector-u8-set! dump index (logxor 255 byte)))
+ (and (not (file-exists? file))
+ (guard (c ((nix-protocol-error? c)
+ (pk 'c c)
+ (and (not (zero? (nix-protocol-error-status c)))
+ (string-contains
+ (nix-protocol-error-message c)
+ "corrupt"))))
+ (let* ((source (open-bytevector-input-port dump))
+ (imported (import-paths %store source)))
+ (pk 'corrupt-imported imported)
+ #f)))))
;;; (c #<condition &nix-protocol-error [reading the Nix store...
reading the Nix store...
path `/tmp/guix-tests/store/v7hzdqgwg7asavxjlzsmr141dkrf1zwi-foo' disappeared, but it still has valid referrers!
reading the Nix store...
substitute: warning: authentication and authorization of substitutes disabled!
substitute: guix substitute: warning: ACL for archive imports seems to be uninitialized, substitutes may be unavailable
fetching path `/tmp/guix-tests/store/p5bvlbi87wvs4ssxq40zl9jx9fzbpwwp-corrupt'...
warning: authentication and authorization of substitutes disabled!
guix substitute: warning: ACL for archive imports seems to be uninitialized, substitutes may be unavailable
Downloading file:/tmp/guix-tests/var/12700/substituter-data/example.nar (1KiB installed)...
\r^[[K example.nar 176B 0B/s 00:00 [####################] 100.0%
reading the Nix store...
checking path existence...
checking hashes...
reading the Nix store...
checking path existence...
checking hashes...
path `/tmp/guix-tests/store/p5bvlbi87wvs4ssxq40zl9jx9fzbpwwp-corrupt' was modified! expected hash `d7f417f7389810a5553536bdba6e7de6e20145ed67b421ef021689df2885b91a', got `e09c480e2e93336cd3c45aa129f81a0d7ba56c410b849d7779a8136074413b3d'
finding garbage collector roots...
removing stale temporary roots file `/tmp/guix-tests/var/12700/temproots/13163'
message: "signed hash doesn't match actual contents of imported archive; archive could be corrupt, or someone is trying to import a Trojan horse" status: 1] ed60c0>)
actual-value: 80
result: PASS
test-name: register-path
location: /tmp/guix-build-guix-0.13.0.drv-0/source/tests/store.scm:778
source:
+ (test-assert
+ "register-path"
+ (let ((file (string-append
+ (%store-prefix)
+ "/"
+ (make-string 32 #\f)
+ "-fake")))
+ (when (valid-path? %store file)
+ (delete-paths %store (list file)))
+ (false-if-exception (delete-file file))
+ (let ((ref (add-text-to-store
+ %store
+ "ref-of-fake"
+ (random-text)))
+ (drv (string-append file ".drv")))
+ (call-with-output-file
+ file
+ (cut display "This is a fake store item.\n" <>))
+ (register-path
+ file
+ #:references
+ (list ref)
+ #:deriver
+ drv)
+ (and (valid-path? %store file)
+ (equal? (references %store file) (list ref))
+ (null? (valid-derivers %store file))
+ (null? (referrers %store file))))))
actual-value: #t
result: PASS
test-name: verify-store
location: /tmp/guix-build-guix-0.13.0.drv-0/source/tests/store.scm:798
source:
+ (test-assert
+ "verify-store"
+ (let* ((text (random-text))
+ (file1 (add-text-to-store %store "foo" text))
+ (file2 (add-text-to-store
+ %store
+ "bar"
+ (random-text)
+ (list file1))))
+ (and (pk 'verify1 (verify-store %store))
+ (begin
+ (delete-file file1)
+ (not (pk 'verify2 (verify-store %store))))
+ (begin
+ (call-with-output-file
+ file1
+ (lambda (port) (display text port)))
+ (pk 'verify3 (verify-store %store))))))
;;; (verify1 #t)
;;; (verify2 #f)
;;; (verify3 #t)
actual-value: #t
result: PASS
test-name: verify-store + check-contents
location: /tmp/guix-build-guix-0.13.0.drv-0/source/tests/store.scm:815
source:
+ (test-assert
+ "verify-store + check-contents"
+ (with-store
+ s
+ (let* ((text (random-text))
+ (drv (build-expression->derivation
+ s
+ "corrupt"
+ `(let ((out (assoc-ref %outputs "out")))
+ (call-with-output-file
+ out
+ (lambda (port) (display ,text port)))
+ #t)
+ #:guile-for-build
+ (package-derivation
+ s
+ %bootstrap-guile
+ (%current-system))))
+ (file (derivation->output-path drv)))
+ (with-derivation-substitute
+ drv
+ text
+ (and (build-derivations s (list drv))
+ (verify-store s #:check-contents? #t)
+ (begin
+ (chmod file 420)
+ (call-with-output-file
+ file
+ (lambda (port) (display "corrupt!" port)))
+ #t)
+ (not (verify-store s #:check-contents? #t))
+ (delete-paths s (list file)))))))
actual-value: #f
actual-error:
+ (srfi-34
+ #<condition &nix-protocol-error [message: "path `dtmp/guix-tests/store/462z3fnl7bs44vp9s97jyg1z74nsfvly-tar' is not in the Nix store" status: 1] e171e0>)
result: FAIL
test-name: build-things, check mode
location: /tmp/guix-build-guix-0.13.0.drv-0/source/tests/store.scm:852
source:
+ (test-assert
+ "build-things, check mode"
+ (with-store
+ store
+ (call-with-temporary-output-file
+ (lambda (entropy entropy-port)
+ (write (random-text) entropy-port)
+ (force-output entropy-port)
+ (let* ((drv (build-expression->derivation
+ store
+ "non-deterministic"
+ `(begin
+ substitute: warning: authentication and authorization of substitutes disabled!
substitute: guix substitute: warning: ACL for archive imports seems to be uninitialized, substitutes may be unavailable
building path(s) `/tmp/guix-tests/store/yxdrblahz7n571z3mrqcmw9b8yxvdjn9-non-deterministic'
checking path(s) `/tmp/guix-tests/store/yxdrblahz7n571z3mrqcmw9b8yxvdjn9-non-deterministic'
warning: rewriting hashes in `/tmp/guix-tests/store/yxdrblahz7n571z3mrqcmw9b8yxvdjn9-non-deterministic'; cross fingers
@ build-started /tmp/guix-tests/store/wz4x7fy6s0ilrvcvrjp8w2jal0ldmxj2-non-deterministic.drv - x86_64-linux /tmp/guix-tests/var/log/guix/drvs/wz//4x7fy6s0ilrvcvrjp8w2jal0ldmxj2-non-deterministic.drv.bz2
@ build-started /tmp/guix-tests/store/wz4x7fy6s0ilrvcvrjp8w2jal0ldmxj2-non-deterministic.drv - x86_64-linux /tmp/guix-tests/var/log/guix/drvs/wz//4x7fy6s0ilrvcvrjp8w2jal0ldmxj2-non-deterministic.drv.bz2
output ‘/tmp/guix-tests/store/qj2ycljwvb81vwmbybmkva32zckyv229-non-deterministic’ of ‘/tmp/guix-tests/store/wz4x7fy6s0ilrvcvrjp8w2jal0ldmxj2-non-deterministic.drv’ differs from previous round
@ build-failed /tmp/guix-tests/store/wz4x7fy6s0ilrvcvrjp8w2jal0ldmxj2-non-deterministic.drv - 1 output ‘/tmp/guix-tests/store/qj2ycljwvb81vwmbybmkva32zckyv229-non-deterministic’ of ‘/tmp/guix-tests/store/wz4x7fy6s0ilrvcvrjp8w2jal0ldmxj2-non-deterministic.drv’ differs from previous round
(use-modules (rnrs io ports))
+ (let ((out (assoc-ref %outputs "out")))
+ (call-with-output-file
+ out
+ (lambda (port)
+ (display
+ (call-with-input-file
+ ,entropy
+ get-string-all)
+ port)))
+ #t))
+ #:guile-for-build
+ (package-derivation
+ store
+ %bootstrap-guile
+ (%current-system))))
+ (file (derivation->output-path drv)))
+ (and (build-things
+ store
+ (list (derivation-file-name drv)))
+ (begin
+ (write (random-text) entropy-port)
+ (force-output entropy-port)
+ (guard (c ((nix-protocol-error? c)
+ (pk 'determinism-exception c)
+ (and (not (zero? (nix-protocol-error-status c)))
+ (string-contains
+ (nix-protocol-error-message c)
+ "deterministic"))))
+ (build-things
+ store
+ (list (derivation-file-name drv))
+ (build-mode check))
+ #f))))))))
;;; (determinism-exception #<condition &nix-protocol-error [message: "derivation `/tmp/guix-tests/store/vbbxdzqwydn6c9lqm7yhcpjs6jn15ani-non-deterministic.drv' may not be deterministic: output `/tmp/guix-tests/store/yxdrblahz7n571z3mrqcmw9b8yxvdjn9-non-deterministic' differs" status: 1] eade10>)
actual-value: 71
result: PASS
test-name: build multiple times
location: /tmp/guix-build-guix-0.13.0.drv-0/source/tests/store.scm:889
source:
+ (test-assert
+ "build multiple times"
+ (with-store
+ store
+ (set-build-options
+ store
+ #:rounds
+ 2
+ #:use-substitutes?
+ #f)
+ (call-with-temporary-output-file
+ (lambda (entropy entropy-port)
+ (write (random-text) entropy-port)
+ (force-output entropy-port)
+ (let* ((drv (build-expression->derivation
+ store
+ "non-deterministic"
+ `(begin
+ (use-modules (rnrs io ports))
+ (let ((out (assoc-ref %outputs "out")))
+ (call-with-output-file
+ out
+ (lambda (port)
+ (display
+ (call-with-input-file
+ ,entropy
+ get-string-all)
+ port)
+ (call-with-output-file
+ ,entropy
+ (lambda (port) (write 'foobar port)))))
+ #t))
+ #:guile-for-build
+ (package-derivation
+ store
+ %bootstrap-guile
+ (%current-system))))
+ (file (derivation->output-path drv)))
+ (guard (c ((nix-protocol-error? c)
+ (pk 'multiple-build c)
+ (and (not (zero? (nix-protocol-error-status c)))
+ (string-contains
+ (nix-protocol-error-message c)
+ "deterministic"))))
+ (current-build-output-port (current-error-port))
+ (build-things
+ store
+ (list (derivation-file-name drv)))
+ #f))))))
;;; (multiple-build #<condition &nix-protocol-error [@ build-started /tmp/guix-tests/store/7bmd63xq675b7v5gvr1wz5p7l6nzq54b-the-thing.drv - x86_64-linux /tmp/guix-tests/var/log/guix/drvs/7b//md63xq675b7v5gvr1wz5p7l6nzq54b-the-thing.drv.bz2
@ build-succeeded /tmp/guix-tests/store/7bmd63xq675b7v5gvr1wz5p7l6nzq54b-the-thing.drv -
message: "build of `/tmp/guix-tests/store/wz4x7fy6s0ilrvcvrjp8w2jal0ldmxj2-non-deterministic.drv' failed" status: 1] dce990>)
actual-value: 69
result: PASS
test-name: store-lower
location: /tmp/guix-build-guix-0.13.0.drv-0/source/tests/store.scm:927
source:
+ (test-equal
+ "store-lower"
+ "Lowered."
+ (let* ((add (store-lower text-file))
+ (file (add %store "foo" "Lowered.")))
+ (call-with-input-file file get-string-all)))
expected-value: "Lowered."
actual-value: "Lowered."
result: PASS
test-name: current-system
location: /tmp/guix-build-guix-0.13.0.drv-0/source/tests/store.scm:933
source:
+ (test-equal
+ "current-system"
+ "bar"
+ (parameterize
+ ((%current-system "frob"))
+ (run-with-store
+ %store
+ (mbegin
+ %store-monad
+ (set-current-system "bar")
+ (current-system))
+ #:system
+ "foo")))
expected-value: "bar"
actual-value: "bar"
result: PASS
test-name: query-path-info
location: /tmp/guix-build-guix-0.13.0.drv-0/source/tests/store.scm:942
source:
+ (test-assert
+ "query-path-info"
+ (let* ((ref (add-text-to-store %store "ref" "foo"))
+ (item (add-text-to-store
+ %store
+ "item"
+ "bar"
+ (list ref)))
+ (info (query-path-info %store item)))
+ (and (equal? (path-info-references info) (list ref))
+ (equal?
+ (path-info-hash info)
+ (sha256
+ (string->utf8
+ (call-with-output-string
+ (cut write-file item <>))))))))
actual-value: #t
result: PASS
test-name: path-info-deriver
location: /tmp/guix-build-guix-0.13.0.drv-0/source/tests/store.scm:952
source:
+ (test-assert
+ "path-info-deriver"
+ (let* ((b (add-text-to-store
+ %store
+ "build"
+ "echo $foo > $out"
+ '()))
+ (s (add-to-store
+ %store
+ "bash"
+ #t
+ "sha256"
+ (search-bootstrap-binary
+ "bash"
+ (%current-system))))
+ (d (derivation
+ %store
+ "the-thing"
+ s
+ `("-e" ,b)
+ #:env-vars
+ `(("foo" unquote (random-text)))
+ #:inputs
+ `((,b) (,s))))
+ (o (derivation->output-path d)))
+ (and (build-derivations %store (list d))
+ (not (path-info-deriver (query-path-info %store b)))
+ (string=?
+ (derivation-file-name d)
+ (path-info-deriver (query-path-info %store o))))))
actual-value: #t
result: PASS
test-name: build-cores
location: /tmp/guix-build-guix-0.13.0.drv-0/source/tests/store.scm:967
source:
+ (test-equal
+ "build-cores"
+ (list 0 42)
+ (with-store
+ store
+ (let* ((build (add-text-to-store
+ store
+ "build.sh"
+ "echo $NIX_BUILD_CORES > $out"))
+ (bash (add-to-store
+ store
+ "bash"
+ #t
+ "sha256"
+ (search-bootstrap-binary
+ "bash"
+ (%current-system))))
+ (drv1 (derivation
+ store
+ "the-thing"
+ bash
+ `("-e" ,build)
+ #:inputs
+ `((,bash) (,build))
+ #:env-vars
+ `(("x" unquote (random-text)))))
+ (drv2 (derivation
+ store
+ "the-thing"
+ bash
+ `("-e" ,build)
+ #:inputs
+ `((,bash) (,build))
+ #:env-vars
+ `(("x" unquote (random-text))))))
+ (and (build-derivations store (list drv1))
+ (begin
+ (set-build-options store #:build-cores 42)
+ (build-derivations store (list drv2)))
+ substitute: warning: authentication and authorization of substitutes disabled!
substitute: guix substitute: warning: ACL for archive imports seems to be uninitialized, substitutes may be unavailable
building path(s) `/tmp/guix-tests/store/w4sgq113m6c79qnljh5wgvyfzav3yg26-the-thing'
@ build-started /tmp/guix-tests/store/pavid64p9rfh9gm5l2pqgkclssggx5kg-the-thing.drv - x86_64-linux /tmp/guix-tests/var/log/guix/drvs/pa//vid64p9rfh9gm5l2pqgkclssggx5kg-the-thing.drv.bz2
@ build-succeeded /tmp/guix-tests/store/pavid64p9rfh9gm5l2pqgkclssggx5kg-the-thing.drv -
(list (call-with-input-file
+ (derivation->output-path drv1)
+ read)
+ (call-with-input-file
+ (derivation->output-path drv2)
+ read))))))
expected-value: (0 42)
actual-value: (0 42)
result: PASS
SKIP: tests/union
=================
random seed for tests: 1495496499
@ build-started /tmp/guix-tests/store/w5hzafbhxyj68wdlzydkf3gd2rj9xhbs-module-import.drv - x86_64-linux /tmp/guix-tests/var/log/guix/drvs/w5//hzafbhxyj68wdlzydkf3gd2rj9xhbs-module-import.drv.bz2
@ build-succeeded /tmp/guix-tests/store/w5hzafbhxyj68wdlzydkf3gd2rj9xhbs-module-import.drv -
@ build-started /tmp/guix-tests/store/bk6y6c5s831m315cn5n8p0r4wvjh5w0c-one.drv - x86_64-linux /tmp/guix-tests/var/log/guix/drvs/bk//6y6c5s831m315cn5n8p0r4wvjh5w0c-one.drv.bz2
@ build-succeeded /tmp/guix-tests/store/bk6y6c5s831m315cn5n8p0r4wvjh5w0c-one.drv -
@ build-started /tmp/guix-tests/store/628gfbr4qvj6sp47kb5q54dawrmia3nd-module-import-compiled.drv - x86_64-linux /tmp/guix-tests/var/log/guix/drvs/62//8gfbr4qvj6sp47kb5q54dawrmia3nd-module-import-compiled.drv.bz2
@ build-succeeded /tmp/guix-tests/store/628gfbr4qvj6sp47kb5q54dawrmia3nd-module-import-compiled.drv -
@ build-started /tmp/guix-tests/store/65n0cpnsjxrd997061hc1ypyq0k18anq-two.drv - x86_64-linux /tmp/guix-tests/var/log/guix/drvs/65//n0cpnsjxrd997061hc1ypyq0k18anq-two.drv.bz2
@ build-succeeded /tmp/guix-tests/store/65n0cpnsjxrd997061hc1ypyq0k18anq-two.drv -
@ build-started /tmp/guix-tests/store/jl6cqbn3pmfskmj6p831c2pvk4d14dvm-union-collision-symlink.drv - x86_64-linux /tmp/guix-tests/var/log/guix/drvs/jl//6cqbn3pmfskmj6p831c2pvk4d14dvm-union-collision-symlink.drv.bz2
`/tmp/guix-tests/store/frj54nbxjn5nxa4nv5n8mgz6k70ar75k-two/bar' ~> `/tmp/guix-tests/store/5nnaqsyjniaxw2pfjdq5j55mqcyi8lnp-union-collision-symlink/bar'
`/tmp/guix-tests/store/frj54nbxjn5nxa4nv5n8mgz6k70ar75k-two/foo/two' ~> `/tmp/guix-tests/store/5nnaqsyjniaxw2pfjdq5j55mqcyi8lnp-union-collision-symlink/foo/two'
`/tmp/guix-tests/store/b2jqczfis8zv2x8y1v1wjhrzzw90ibk0-one/foo/one' ~> `/tmp/guix-tests/store/5nnaqsyjniaxw2pfjdq5j55mqcyi8lnp-union-collision-symlink/foo/one'
@ build-succeeded /tmp/guix-tests/store/jl6cqbn3pmfskmj6p831c2pvk4d14dvm-union-collision-symlink.drv -
test-name: union-build with symlink to directory
location: /tmp/guix-build-guix-0.13.0.drv-0/source/tests/union.scm:42
source:
+ (test-assert
+ "union-build with symlink to directory"
+ (let* ((one (build-expression->derivation
+ %store
+ "one"
+ '(begin
+ (use-modules (guix build utils) (srfi srfi-26))
+ (let ((foo (string-append %output "/foo")))
+ (mkdir-p foo)
+ (call-with-output-file
+ (string-append foo "/one")
+ (cut display "one" <>))))
+ #:modules
+ '((guix build utils))))
+ (two (build-expression->derivation
+ %store
+ "two"
+ '(begin
+ (use-modules (guix build utils) (srfi srfi-26))
+ (let ((foo (string-append %output "/foo"))
+ (bar (string-append %output "/bar")))
+ (mkdir-p bar)
+ (call-with-output-file
+ (string-append bar "/two")
+ (cut display "two" <>))
+ (symlink "bar" foo)))
+ #:modules
+ '((guix build utils))))
+ (builder
+ '(begin
+ (use-modules (guix build union))
+ (union-build
+ (assoc-ref %outputs "out")
+ (list (assoc-ref %build-inputs "one")
+ (assoc-ref %build-inputs "two")))))
+ (drv (build-expression->derivation
+ %store
+ "union-collision-symlink"
+ builder
+ #:inputs
+ `(("one" ,one) ("two" ,two))
+ #:modules
+ '((guix build union)))))
+ (and (build-derivations %store (list drv))
+ (with-directory-excursion
+ (pk (derivation->output-path drv))
+ (and (string=?
+ "one"
+ (call-with-input-file "foo/one" get-string-all))
+ (string=?
+ "two"
+ (call-with-input-file "foo/two" get-string-all))
+ (string=?
+ "two"
+ (call-with-input-file "bar/two" get-string-all))
+ (not (file-exists? "bar/one")))))))
;;; ("/tmp/guix-tests/store/5nnaqsyjniaxw2pfjdq5j55mqcyi8lnp-union-collision-symlink")
actual-value: #t
result: PASS
test-name: union-build
location: /tmp/guix-build-guix-0.13.0.drv-0/source/tests/union.scm:91
source:
+ (test-assert
+ "union-build"
+ (let* ((inputs
+ (map (match-lambda
+ ((name package)
+ `(,name ,(package-derivation %store package))))
+ (append
+ %bootstrap-inputs
+ (take %bootstrap-inputs 3))))
+ (builder
+ `(begin
+ (use-modules (guix build union))
+ (union-build
+ (assoc-ref %outputs "out")
+ (map cdr %build-inputs))))
+ (drv (build-expression->derivation
+ %store
+ "union-test"
+ builder
+ #:inputs
+ inputs
+ #:modules
+ '((guix build union)))))
+ (and (build-derivations %store (list (pk 'drv drv)))
+ (with-directory-excursion
+ (derivation->output-path drv)
+ (and (file-exists? "bin/touch")
+ (file-exists? "bin/gcc")
+ (file-exists? "bin/ld")
+ (file-exists? "lib/libc.so")
+ (directory-exists? "lib/gcc")
+ (file-exists? "include/unistd.h")
+ (eq? 'symlink (stat:type (lstat "include/c++")))
+ (eq? 'directory (stat:type (lstat "bin"))))))))
result: SKIP
test-name: union-build #:create-all-directories? #t
location: @ build-started /tmp/guix-tests/store/iwc79z4pnnjaz0hif0xnx65cg2j3qsg9-union-test-all-dirs.drv - x86_64-linux /tmp/guix-tests/var/log/guix/drvs/iw//c79z4pnnjaz0hif0xnx65cg2j3qsg9-union-test-all-dirs.drv.bz2
`/tmp/guix-tests/store/7y0q8n6zv41lr9viybhihlcmhri6939f-guile-bootstrap-2.0/share/guile/2.0/oop/goops.scm' ~> `/tmp/guix-tests/store/0sgpsn768nn73wblh4iw6wl3bcsfn7dd-union-test-all-dirs/share/guile/2.0/oop/goops.scm'
`/tmp/guix-tests/store/7y0q8n6zv41lr9viybhihlcmhri6939f-guile-bootstrap-2.0/share/guile/2.0/oop/goops/dispatch.scm' ~> `/tmp/guix-tests/store/0sgpsn768nn73wblh4iw6wl3bcsfn7dd-union-test-all-dirs/share/guile/2.0/oop/goops/dispatch.scm'
`/tmp/guix-tests/store/7y0q8n6zv41lr9viybhihlcmhri6939f-guile-bootstrap-2.0/share/guile/2.0/oop/goops/accessors.scm' ~> `/tmp/guix-tests/store/0sgpsn768nn73wblh4iw6wl3bcsfn7dd-union-test-all-dirs/share/guile/2.0/oop/goops/accessors.scm'
`/tmp/guix-tests/store/7y0q8n6zv41lr9viybhihlcmhri6939f-guile-bootstrap-2.0/share/guile/2.0/oop/goops/composite-slot.scm' ~> `/tmp/guix-tests/store/0sgpsn768nn73wblh4iw6wl3bcsfn7dd-union-test-all-dirs/share/guile/2.0/oop/goops/composite-slot.scm'
`/tmp/guix-tests/store/7y0q8n6zv41lr9viybhihlcmhri6939f-guile-bootstrap-2.0/share/guile/2.0/oop/goops/util.scm' ~> `/tmp/guix-tests/store/0sgpsn768nn73wblh4iw6wl3bcsfn7dd-union-test-all-dirs/share/guile/2.0/oop/goops/util.scm'
`/tmp/guix-tests/store/7y0q8n6zv41lr9viybhihlcmhri6939f-guile-bootstrap-2.0/share/guile/2.0/oop/goops/describe.scm' ~> `/tmp/guix-tests/store/0sgpsn768nn73wblh4iw6wl3bcsfn7dd-union-test-all-dirs/share/guile/2.0/oop/goops/describe.scm'
`/tmp/guix-tests/store/7y0q8n6zv41lr9viybhihlcmhri6939f-guile-bootstrap-2.0/share/guile/2.0/oop/goops/save.scm' ~> `/tmp/guix-tests/store/0sgpsn768nn73wblh4iw6wl3bcsfn7dd-union-test-all-dirs/share/guile/2.0/oop/goops/save.scm'
`/tmp/guix-tests/store/7y0q8n6zv41lr9viybhihlcmhri6939f-guile-bootstrap-2.0/share/guile/2.0/oop/goops/internal.scm' ~> `/tmp/guix-tests/store/0sgpsn768nn73wblh4iw6wl3bcsfn7dd-union-test-all-dirs/share/guile/2.0/oop/goops/internal.scm'
`/tmp/guix-tests/store/7y0q8n6zv41lr9viybhihlcmhri6939f-guile-bootstrap-2.0/share/guile/2.0/oop/goops/compile.scm' ~> `/tmp/guix-tests/store/0sgpsn768nn73wblh4iw6wl3bcsfn7dd-union-test-all-dirs/share/guile/2.0/oop/goops/compile.scm'
`/tmp/guix-tests/store/7y0q8n6zv41lr9viybhihlcmhri6939f-guile-bootstrap-2.0/share/guile/2.0/oop/goops/simple.scm' ~> `/tmp/guix-tests/store/0sgpsn768nn73wblh4iw6wl3bcsfn7dd-union-test-all-dirs/share/guile/2.0/oop/goops/simple.scm'
`/tmp/guix-tests/store/7y0q8n6zv41lr9viybhihlcmhri6939f-guile-bootstrap-2.0/share/guile/2.0/oop/goops/stklos.scm' ~> `/tmp/guix-tests/store/0sgpsn768nn73wblh4iw6wl3bcsfn7dd-union-test-all-dirs/share/guile/2.0/oop/goops/stklos.scm'
`/tmp/guix-tests/store/7y0q8n6zv41lr9viybhihlcmhri6939f-guile-bootstrap-2.0/share/guile/2.0/oop/goops/active-slot.scm' ~> `/tmp/guix-tests/store/0sgpsn768nn73wblh4iw6wl3bcsfn7dd-union-test-all-dirs/share/guile/2.0/oop/goops/active-slot.scm'
`/tmp/guix-tests/store/7y0q8n6zv41lr9viybhihlcmhri6939f-guile-bootstrap-2.0/share/guile/2.0/system/base/ck.scm' ~> `/tmp/guix-tests/store/0sgpsn768nn73wblh4iw6wl3bcsfn7dd-union-test-all-dirs/share/guile/2.0/system/base/ck.scm'
`/tmp/guix-tests/store/7y0q8n6zv41lr9viybhihlcmhri6939f-guile-bootstrap-2.0/share/guile/2.0/system/base/pmatch.scm' ~> `/tmp/guix-tests/store/0sgpsn768nn73wblh4iw6wl3bcsfn7dd-union-test-all-dirs/share/guile/2.0/system/base/pmatch.scm'
`/tmp/guix-tests/store/7y0q8n6zv41lr9viybhihlcmhri6939f-guile-bootstrap-2.0/share/guile/2.0/system/base/lalr.upstream.scm' ~> `/tmp/guix-tests/store/0sgpsn768nn73wblh4iw6wl3bcsfn7dd-union-test-all-dirs/share/guile/2.0/system/base/lalr.upstream.scm'
`/tmp/guix-tests/store/7y0q8n6zv41lr9viybhihlcmhri6939f-guile-bootstrap-2.0/share/guile/2.0/system/base/message.scm' ~> `/tmp/guix-tests/store/0sgpsn768nn73wblh4iw6wl3bcsfn7dd-union-test-all-dirs/share/guile/2.0/system/base/message.scm'
`/tmp/guix-tests/store/7y0q8n6zv41lr9viybhihlcmhri6939f-guile-bootstrap-2.0/share/guile/2.0/system/base/target.scm' ~> `/tmp/guix-tests/store/0sgpsn768nn73wblh4iw6wl3bcsfn7dd-union-test-all-dirs/share/guile/2.0/system/base/target.scm'
`/tmp/guix-tests/store/7y0q8n6zv41lr9viybhihlcmhri6939f-guile-bootstrap-2.0/share/guile/2.0/system/base/lalr.scm' ~> `/tmp/guix-tests/store/0sgpsn768nn73wblh4iw6wl3bcsfn7dd-union-test-all-dirs/share/guile/2.0/system/base/lalr.scm'
`/tmp/guix-tests/store/7y0q8n6zv41lr9viybhihlcmhri6939f-guile-bootstrap-2.0/share/guile/2.0/system/base/compile.scm' ~> `/tmp/guix-tests/store/0sgpsn768nn73wblh4iw6wl3bcsfn7dd-union-test-all-dirs/share/guile/2.0/system/base/compile.scm'
`/tmp/guix-tests/store/7y0q8n6zv41lr9viybhihlcmhri6939f-guile-bootstrap-2.0/share/guile/2.0/system/base/syntax.scm' ~> `/tmp/guix-tests/store/0sgpsn768nn73wblh4iw6wl3bcsfn7dd-union-test-all-dirs/share/guile/2.0/system/base/syntax.scm'
`/tmp/guix-tests/store/7y0q8n6zv41lr9viybhihlcmhri6939f-guile-bootstrap-2.0/share/guile/2.0/system/base/language.scm' ~> `/tmp/guix-tests/store/0sgpsn768nn73wblh4iw6wl3bcsfn7dd-union-test-all-dirs/share/guile/2.0/system/base/language.scm'
`/tmp/guix-tests/store/7y0q8n6zv41lr9viybhihlcmhri6939f-guile-bootstrap-2.0/share/guile/2.0/system/vm/trap-state.scm' ~> `/tmp/guix-tests/store/0sgpsn768nn73wblh4iw6wl3bcsfn7dd-union-test-all-dirs/share/guile/2.0/system/vm/trap-state.scm'
`/tmp/guix-tests/store/7y0q8n6zv41lr9viybhihlcmhri6939f-guile-bootstrap-2.0/share/guile/2.0/system/vm/trace.scm' ~> `/tmp/guix-tests/store/0sgpsn768nn73wblh4iw6wl3bcsfn7dd-union-test-all-dirs/share/guile/2.0/system/vm/trace.scm'
`/tmp/guix-tests/store/7y0q8n6zv41lr9viybhihlcmhri6939f-guile-bootstrap-2.0/share/guile/2.0/system/vm/program.scm' ~> `/tmp/guix-tests/store/0sgpsn768nn73wblh4iw6wl3bcsfn7dd-union-test-all-dirs/share/guile/2.0/system/vm/program.scm'
`/tmp/guix-tests/store/7y0q8n6zv41lr9viybhihlcmhri6939f-guile-bootstrap-2.0/share/guile/2.0/system/vm/objcode.scm' ~> `/tmp/guix-tests/store/0sgpsn768nn73wblh4iw6wl3bcsfn7dd-union-test-all-dirs/share/guile/2.0/system/vm/objcode.scm'
`/tmp/guix-tests/store/7y0q8n6zv41lr9viybhihlcmhri6939f-guile-bootstrap-2.0/share/guile/2.0/system/vm/frame.scm' ~> `/tmp/guix-tests/store/0sgpsn768nn73wblh4iw6wl3bcsfn7dd-union-test-all-dirs/share/guile/2.0/system/vm/frame.scm'
`/tmp/guix-tests/store/7y0q8n6zv41lr9viybhihlcmhri6939f-guile-bootstrap-2.0/share/guile/2.0/system/vm/traps.scm' ~> `/tmp/guix-tests/store/0sgpsn768nn73wblh4iw6wl3bcsfn7dd-union-test-all-dirs/share/guile/2.0/system/vm/traps.scm'
`/tmp/guix-tests/store/7y0q8n6zv41lr9viybhihlcmhri6939f-guile-bootstrap-2.0/share/guile/2.0/system/vm/vm.scm' ~> `/tmp/guix-tests/store/0sgpsn768nn73wblh4iw6wl3bcsfn7dd-union-test-all-dirs/share/guile/2.0/system/vm/vm.scm'
`/tmp/guix-tests/store/7y0q8n6zv41lr9viybhihlcmhri6939f-guile-bootstrap-2.0/share/guile/2.0/system/vm/instruction.scm' ~> `/tmp/guix-tests/store/0sgpsn768nn73wblh4iw6wl3bcsfn7dd-union-test-all-dirs/share/guile/2.0/system/vm/instruction.scm'
`/tmp/guix-tests/store/7y0q8n6zv41lr9viybhihlcmhri6939f-guile-bootstrap-2.0/share/guile/2.0/system/vm/coverage.scm' ~> `/tmp/guix-tests/store/0sgpsn768nn73wblh4iw6wl3bcsfn7dd-union-test-all-dirs/share/guile/2.0/system/vm/coverage.scm'
`/tmp/guix-tests/store/7y0q8n6zv41lr9viybhihlcmhri6939f-guile-bootstrap-2.0/share/guile/2.0/system/vm/inspect.scm' ~> `/tmp/guix-tests/store/0sgpsn768nn73wblh4iw6wl3bcsfn7dd-union-test-all-dirs/share/guile/2.0/system/vm/inspect.scm'
`/tmp/guix-tests/store/7y0q8n6zv41lr9viybhihlcmhri6939f-guile-bootstrap-2.0/share/guile/2.0/system/xref.scm' ~> `/tmp/guix-tests/store/0sgpsn768nn73wblh4iw6wl3bcsfn7dd-union-test-all-dirs/share/guile/2.0/system/xref.scm'
`/tmp/guix-tests/store/7y0q8n6zv41lr9viybhihlcmhri6939f-guile-bootstrap-2.0/share/guile/2.0/system/repl/repl.scm' ~> `/tmp/guix-tests/store/0sgpsn768nn73wblh4iw6wl3bcsfn7dd-union-test-all-dirs/share/guile/2.0/system/repl/repl.scm'
`/tmp/guix-tests/store/7y0q8n6zv41lr9viybhihlcmhri6939f-guile-bootstrap-2.0/share/guile/2.0/system/repl/error-handling.scm' ~> `/tmp/guix-tests/store/0sgpsn768nn73wblh4iw6wl3bcsfn7dd-union-test-all-dirs/share/guile/2.0/system/repl/error-handling.scm'
`/tmp/guix-tests/store/7y0q8n6zv41lr9viybhihlcmhri6939f-guile-bootstrap-2.0/share/guile/2.0/system/repl/describe.scm' ~> `/tmp/guix-tests/store/0sgpsn768nn73wblh4iw6wl3bcsfn7dd-union-test-all-dirs/share/guile/2.0/system/repl/describe.scm'
`/tmp/guix-tests/store/7y0q8n6zv41lr9viybhihlcmhri6939f-guile-bootstrap-2.0/share/guile/2.0/system/repl/command.scm' ~> `/tmp/guix-tests/store/0sgpsn768nn73wblh4iw6wl3bcsfn7dd-union-test-all-dirs/share/guile/2.0/system/repl/command.scm'
`/tmp/guix-tests/store/7y0q8n6zv41lr9viybhihlcmhri6939f-guile-bootstrap-2.0/share/guile/2.0/system/repl/debug.scm' ~> `/tmp/guix-tests/store/0sgpsn768nn73wblh4iw6wl3bcsfn7dd-union-test-all-dirs/share/guile/2.0/system/repl/debug.scm'
`/tmp/guix-tests/store/7y0q8n6zv41lr9viybhihlcmhri6939f-guile-bootstrap-2.0/share/guile/2.0/system/repl/server.scm' ~> `/tmp/guix-tests/store/0sgpsn768nn73wblh4iw6wl3bcsfn7dd-union-test-all-dirs/share/guile/2.0/system/repl/server.scm'
`/tmp/guix-tests/store/7y0q8n6zv41lr9viybhihlcmhri6939f-guile-bootstrap-2.0/share/guile/2.0/system/repl/common.scm' ~> `/tmp/guix-tests/store/0sgpsn768nn73wblh4iw6wl3bcsfn7dd-union-test-all-dirs/share/guile/2.0/system/repl/common.scm'
`/tmp/guix-tests/store/7y0q8n6zv41lr9viybhihlcmhri6939f-guile-bootstrap-2.0/share/guile/2.0/system/foreign.scm' ~> `/tmp/guix-tests/store/0sgpsn768nn73wblh4iw6wl3bcsfn7dd-union-test-all-dirs/share/guile/2.0/system/foreign.scm'
`/tmp/guix-tests/store/7y0q8n6zv41lr9viybhihlcmhri6939f-guile-bootstrap-2.0/share/guile/2.0/sxml/xpath.scm' ~> `/tmp/guix-tests/store/0sgpsn768nn73wblh4iw6wl3bcsfn7dd-union-test-all-dirs/share/guile/2.0/sxml/xpath.scm'
`/tmp/guix-tests/store/7y0q8n6zv41lr9viybhihlcmhri6939f-guile-bootstrap-2.0/share/guile/2.0/sxml/upstream/SXPath-old.scm' ~> `/tmp/guix-tests/store/0sgpsn768nn73wblh4iw6wl3bcsfn7dd-union-test-all-dirs/share/guile/2.0/sxml/upstream/SXPath-old.scm'
`/tmp/guix-tests/store/7y0q8n6zv41lr9viybhihlcmhri6939f-guile-bootstrap-2.0/share/guile/2.0/sxml/upstream/input-parse.scm' ~> `/tmp/guix-tests/store/0sgpsn768nn73wblh4iw6wl3bcsfn7dd-union-test-all-dirs/share/guile/2.0/sxml/upstream/input-parse.scm'
`/tmp/guix-tests/store/7y0q8n6zv41lr9viybhihlcmhri6939f-guile-bootstrap-2.0/share/guile/2.0/sxml/upstream/assert.scm' ~> `/tmp/guix-tests/store/0sgpsn768nn73wblh4iw6wl3bcsfn7dd-union-test-all-dirs/share/guile/2.0/sxml/upstream/assert.scm'
`/tmp/guix-tests/store/7y0q8n6zv41lr9viybhihlcmhri6939f-guile-bootstrap-2.0/share/guile/2.0/sxml/upstream/SXML-tree-trans.scm' ~> `/tmp/guix-tests/store/0sgpsn768nn73wblh4iw6wl3bcsfn7dd-union-test-all-dirs/share/guile/2.0/sxml/upstream/SXML-tree-trans.scm'
`/tmp/guix-tests/store/7y0q8n6zv41lr9viybhihlcmhri6939f-guile-bootstrap-2.0/share/guile/2.0/sxml/upstream/SSAX.scm' ~> `/tmp/guix-tests/store/0sgpsn768nn73wblh4iw6wl3bcsfn7dd-union-test-all-dirs/share/guile/2.0/sxml/upstream/SSAX.scm'
`/tmp/guix-tests/store/7y0q8n6zv41lr9viybhihlcmhri6939f-guile-bootstrap-2.0/share/guile/2.0/sxml/fold.scm' ~> `/tmp/guix-tests/store/0sgpsn768nn73wblh4iw6wl3bcsfn7dd-union-test-all-dirs/share/guile/2.0/sxml/fold.scm'
`/tmp/guix-tests/store/7y0q8n6zv41lr9viybhihlcmhri6939f-guile-bootstrap-2.0/share/guile/2.0/sxml/transform.scm' ~> `/tmp/guix-tests/store/0sgpsn768nn73wblh4iw6wl3bcsfn7dd-union-test-all-dirs/share/guile/2.0/sxml/transform.scm'
`/tmp/guix-tests/store/7y0q8n6zv41lr9viybhihlcmhri6939f-guile-bootstrap-2.0/share/guile/2.0/sxml/ssax/input-parse.scm' ~> `/tmp/guix-tests/store/0sgpsn768nn73wblh4iw6wl3bcsfn7dd-union-test-all-dirs/share/guile/2.0/sxml/ssax/input-parse.scm'
`/tmp/guix-tests/store/7y0q8n6zv41lr9viybhihlcmhri6939f-guile-bootstrap-2.0/share/guile/2.0/sxml/simple.scm' ~> `/tmp/guix-tests/store/0sgpsn768nn73wblh4iw6wl3bcsfn7dd-union-test-all-dirs/share/guile/2.0/sxml/simple.scm'
`/tmp/guix-tests/store/7y0q8n6zv41lr9viybhihlcmhri6939f-guile-bootstrap-2.0/share/guile/2.0/sxml/sxml-match.ss' ~> `/tmp/guix-tests/store/0sgpsn768nn73wblh4iw6wl3bcsfn7dd-union-test-all-dirs/share/guile/2.0/sxml/sxml-match.ss'
`/tmp/guix-tests/store/7y0q8n6zv41lr9viybhihlcmhri6939f-guile-bootstrap-2.0/share/guile/2.0/sxml/match.scm' ~> `/tmp/guix-tests/store/0sgpsn768nn73wblh4iw6wl3bcsfn7dd-union-test-all-dirs/share/guile/2.0/sxml/match.scm'
`/tmp/guix-tests/store/7y0q8n6zv41lr9viybhihlcmhri6939f-guile-bootstrap-2.0/share/guile/2.0/sxml/apply-templates.scm' ~> `/tmp/guix-tests/store/0sgpsn768nn73wblh4iw6wl3bcsfn7dd-union-test-all-dirs/share/guile/2.0/sxml/apply-templates.scm'
`/tmp/guix-tests/store/7y0q8n6zv41lr9viybhihlcmhri6939f-guile-bootstrap-2.0/share/guile/2.0/sxml/ssax.scm' ~> `/tmp/guix-tests/store/0sgpsn768nn73wblh4iw6wl3bcsfn7dd-union-test-all-dirs/share/guile/2.0/sxml/ssax.scm'
`/tmp/guix-tests/store/7y0q8n6zv41lr9viybhihlcmhri6939f-guile-bootstrap-2.0/share/guile/2.0/texinfo.scm' ~> `/tmp/guix-tests/store/0sgpsn768nn73wblh4iw6wl3bcsfn7dd-union-test-all-dirs/share/guile/2.0/texinfo.scm'
`/tmp/guix-tests/store/7y0q8n6zv41lr9viybhihlcmhri6939f-guile-bootstrap-2.0/share/guile/2.0/ice-9/scm-style-repl.scm' ~> `/tmp/guix-tests/store/0sgpsn768nn73wblh4iw6wl3bcsfn7dd-union-test-all-dirs/share/guile/2.0/ice-9/scm-style-repl.scm'
`/tmp/guix-tests/store/7y0q8n6zv41lr9viybhihlcmhri6939f-guile-bootstrap-2.0/share/guile/2.0/ice-9/control.scm' ~> `/tmp/guix-tests/store/0sgpsn768nn73wblh4iw6wl3bcsfn7dd-union-test-all-dirs/share/guile/2.0/ice-9/control.scm'
`/tmp/guix-tests/store/7y0q8n6zv41lr9viybhihlcmhri6939f-guile-bootstrap-2.0/share/guile/2.0/ice-9/poll.scm' ~> `/tmp/guix-tests/store/0sgpsn768nn73wblh4iw6wl3bcsfn7dd-union-test-all-dirs/share/guile/2.0/ice-9/poll.scm'
`/tmp/guix-tests/store/7y0q8n6zv41lr9viybhihlcmhri6939f-guile-bootstrap-2.0/share/guile/2.0/ice-9/and-let-star.scm' ~> `/tmp/guix-tests/store/0sgpsn768nn73wblh4iw6wl3bcsfn7dd-union-test-all-dirs/share/guile/2.0/ice-9/and-let-star.scm'
`/tmp/guix-tests/store/7y0q8n6zv41lr9viybhihlcmhri6939f-guile-bootstrap-2.0/share/guile/2.0/ice-9/channel.scm' ~> `/tmp/guix-tests/store/0sgpsn768nn73wblh4iw6wl3bcsfn7dd-union-test-all-dirs/share/guile/2.0/ice-9/channel.scm'
`/tmp/guix-tests/store/7y0q8n6zv41lr9viybhihlcmhri6939f-guile-bootstrap-2.0/share/guile/2.0/ice-9/save-stack.scm' ~> `/tmp/guix-tests/store/0sgpsn768nn73wblh4iw6wl3bcsfn7dd-union-test-all-dirs/share/guile/2.0/ice-9/save-stack.scm'
`/tmp/guix-tests/store/7y0q8n6zv41lr9viybhihlcmhri6939f-guile-bootstrap-2.0/share/guile/2.0/ice-9/string-fun.scm' ~> `/tmp/guix-tests/store/0sgpsn768nn73wblh4iw6wl3bcsfn7dd-union-test-all-dirs/share/guile/2.0/ice-9/string-fun.scm'
`/tmp/guix-tests/store/7y0q8n6zv41lr9viybhihlcmhri6939f-guile-bootstrap-2.0/share/guile/2.0/ice-9/calling.scm' ~> `/tmp/guix-tests/store/0sgpsn768nn73wblh4iw6wl3bcsfn7dd-union-test-all-dirs/share/guile/2.0/ice-9/calling.scm'
`/tmp/guix-tests/store/7y0q8n6zv41lr9viybhihlcmhri6939f-guile-bootstrap-2.0/share/guile/2.0/ice-9/threads.scm' ~> `/tmp/guix-tests/store/0sgpsn768nn73wblh4iw6wl3bcsfn7dd-union-test-all-dirs/share/guile/2.0/ice-9/threads.scm'
`/tmp/guix-tests/store/7y0q8n6zv41lr9viybhihlcmhri6939f-guile-bootstrap-2.0/share/guile/2.0/ice-9/r4rs.scm' ~> `/tmp/guix-tests/store/0sgpsn768nn73wblh4iw6wl3bcsfn7dd-union-test-all-dirs/share/guile/2.0/ice-9/r4rs.scm'
`/tmp/guix-tests/store/7y0q8n6zv41lr9viybhihlcmhri6939f-guile-bootstrap-2.0/share/guile/2.0/ice-9/rdelim.scm' ~> `/tmp/guix-tests/store/0sgpsn768nn73wblh4iw6wl3bcsfn7dd-union-test-all-dirs/share/guile/2.0/ice-9/rdelim.scm'
`/tmp/guix-tests/store/7y0q8n6zv41lr9viybhihlcmhri6939f-guile-bootstrap-2.0/share/guile/2.0/ice-9/lineio.scm' ~> `/tmp/guix-tests/store/0sgpsn768nn73wblh4iw6wl3bcsfn7dd-union-test-all-dirs/share/guile/2.0/ice-9/lineio.scm'
`/tmp/guix-tests/store/7y0q8n6zv41lr9viybhihlcmhri6939f-guile-bootstrap-2.0/share/guile/2.0/ice-9/readline.scm' ~> `/tmp/guix-tests/store/0sgpsn768nn73wblh4iw6wl3bcsfn7dd-union-test-all-dirs/share/guile/2.0/ice-9/readline.scm'
`/tmp/guix-tests/store/7y0q8n6zv41lr9viybhihlcmhri6939f-guile-bootstrap-2.0/share/guile/2.0/ice-9/list.scm' ~> `/tmp/guix-tests/store/0sgpsn768nn73wblh4iw6wl3bcsfn7dd-union-test-all-dirs/share/guile/2.0/ice-9/list.scm'
`/tmp/guix-tests/store/7y0q8n6zv41lr9viybhihlcmhri6939f-guile-bootstrap-2.0/share/guile/2.0/ice-9/quasisyntax.scm' ~> `/tmp/guix-tests/store/0sgpsn768nn73wblh4iw6wl3bcsfn7dd-union-test-all-dirs/share/guile/2.0/ice-9/quasisyntax.scm'
`/tmp/guix-tests/store/7y0q8n6zv41lr9viybhihlcmhri6939f-guile-bootstrap-2.0/share/guile/2.0/ice-9/weak-vector.scm' ~> `/tmp/guix-tests/store/0sgpsn768nn73wblh4iw6wl3bcsfn7dd-union-test-all-dirs/share/guile/2.0/ice-9/weak-vector.scm'
`/tmp/guix-tests/store/7y0q8n6zv41lr9viybhihlcmhri6939f-guile-bootstrap-2.0/share/guile/2.0/ice-9/top-repl.scm' ~> `/tmp/guix-tests/store/0sgpsn768nn73wblh4iw6wl3bcsfn7dd-union-test-all-dirs/share/guile/2.0/ice-9/top-repl.scm'
`/tmp/guix-tests/store/7y0q8n6zv41lr9viybhihlcmhri6939f-guile-bootstrap-2.0/share/guile/2.0/ice-9/getopt-long.scm' ~> `/tmp/guix-tests/store/0sgpsn768nn73wblh4iw6wl3bcsfn7dd-union-test-all-dirs/share/guile/2.0/ice-9/getopt-long.scm'
`/tmp/guix-tests/store/7y0q8n6zv41lr9viybhihlcmhri6939f-guile-bootstrap-2.0/share/guile/2.0/ice-9/eval.scm' ~> `/tmp/guix-tests/store/0sgpsn768nn73wblh4iw6wl3bcsfn7dd-union-test-all-dirs/share/guile/2.0/ice-9/eval.scm'
`/tmp/guix-tests/store/7y0q8n6zv41lr9viybhihlcmhri6939f-guile-bootstrap-2.0/share/guile/2.0/ice-9/futures.scm' ~> `/tmp/guix-tests/store/0sgpsn768nn73wblh4iw6wl3bcsfn7dd-union-test-all-dirs/share/guile/2.0/ice-9/futures.scm'
`/tmp/guix-tests/store/7y0q8n6zv41lr9viybhihlcmhri6939f-guile-bootstrap-2.0/share/guile/2.0/ice-9/streams.scm' ~> `/tmp/guix-tests/store/0sgpsn768nn73wblh4iw6wl3bcsfn7dd-union-test-all-dirs/share/guile/2.0/ice-9/streams.scm'
`/tmp/guix-tests/store/7y0q8n6zv41lr9viybhihlcmhri6939f-guile-bootstrap-2.0/share/guile/2.0/ice-9/networking.scm' ~> `/tmp/guix-tests/store/0sgpsn768nn73wblh4iw6wl3bcsfn7dd-union-test-all-dirs/share/guile/2.0/ice-9/networking.scm'
`/tmp/guix-tests/store/7y0q8n6zv41lr9viybhihlcmhri6939f-guile-bootstrap-2.0/share/guile/2.0/ice-9/r6rs-libraries.scm' ~> `/tmp/guix-tests/store/0sgpsn768nn73wblh4iw6wl3bcsfn7dd-union-test-all-dirs/share/guile/2.0/ice-9/r6rs-libraries.scm'
`/tmp/guix-tests/store/7y0q8n6zv41lr9viybhihlcmhri6939f-guile-bootstrap-2.0/share/guile/2.0/ice-9/poe.scm' ~> `/tmp/guix-tests/store/0sgpsn768nn73wblh4iw6wl3bcsfn7dd-union-test-all-dirs/share/guile/2.0/ice-9/poe.scm'
`/tmp/guix-tests/store/7y0q8n6zv41lr9viybhihlcmhri6939f-guile-bootstrap-2.0/share/guile/2.0/ice-9/mapping.scm' ~> `/tmp/guix-tests/store/0sgpsn768nn73wblh4iw6wl3bcsfn7dd-union-test-all-dirs/share/guile/2.0/ice-9/mapping.scm'
`/tmp/guix-tests/store/7y0q8n6zv41lr9viybhihlcmhri6939f-guile-bootstrap-2.0/share/guile/2.0/ice-9/boot-9.scm' ~> `/tmp/guix-tests/store/0sgpsn768nn73wblh4iw6wl3bcsfn7dd-union-test-all-dirs/share/guile/2.0/ice-9/boot-9.scm'
`/tmp/guix-tests/store/7y0q8n6zv41lr9viybhihlcmhri6939f-guile-bootstrap-2.0/share/guile/2.0/ice-9/optargs.scm' ~> `/tmp/guix-tests/store/0sgpsn768nn73wblh4iw6wl3bcsfn7dd-union-test-all-dirs/share/guile/2.0/ice-9/optargs.scm'
`/tmp/guix-tests/store/7y0q8n6zv41lr9viybhihlcmhri6939f-guile-bootstrap-2.0/share/guile/2.0/ice-9/receive.scm' ~> `/tmp/guix-tests/store/0sgpsn768nn73wblh4iw6wl3bcsfn7dd-union-test-all-dirs/share/guile/2.0/ice-9/receive.scm'
`/tmp/guix-tests/store/7y0q8n6zv41lr9viybhihlcmhri6939f-guile-bootstrap-2.0/share/guile/2.0/ice-9/common-list.scm' ~> `/tmp/guix-tests/store/0sgpsn768nn73wblh4iw6wl3bcsfn7dd-union-test-all-dirs/share/guile/2.0/ice-9/common-list.scm'
`/tmp/guix-tests/store/7y0q8n6zv41lr9viybhihlcmhri6939f-guile-bootstrap-2.0/share/guile/2.0/ice-9/q.scm' ~> `/tmp/guix-tests/store/0sgpsn768nn73wblh4iw6wl3bcsfn7dd-union-test-all-dirs/share/guile/2.0/ice-9/q.scm'
`/tmp/guix-tests/store/7y0q8n6zv41lr9viybhihlcmhri6939f-guile-bootstrap-2.0/share/guile/2.0/ice-9/deprecated.scm' ~> `/tmp/guix-tests/store/0sgpsn768nn73wblh4iw6wl3bcsfn7dd-union-test-all-dirs/share/guile/2.0/ice-9/deprecated.scm'
`/tmp/guix-tests/store/7y0q8n6zv41lr9viybhihlcmhri6939f-guile-bootstrap-2.0/share/guile/2.0/ice-9/safe.scm' ~> `/tmp/guix-tests/store/0sgpsn768nn73wblh4iw6wl3bcsfn7dd-union-test-all-dirs/share/guile/2.0/ice-9/safe.scm'
`/tmp/guix-tests/store/7y0q8n6zv41lr9viybhihlcmhri6939f-guile-bootstrap-2.0/share/guile/2.0/ice-9/i18n.scm' ~> `/tmp/guix-tests/store/0sgpsn768nn73wblh4iw6wl3bcsfn7dd-union-test-all-dirs/share/guile/2.0/ice-9/i18n.scm'
`/tmp/guix-tests/store/7y0q8n6zv41lr9viybhihlcmhri6939f-guile-bootstrap-2.0/share/guile/2.0/ice-9/format.scm' ~> `/tmp/guix-tests/store/0sgpsn768nn73wblh4iw6wl3bcsfn7dd-union-test-all-dirs/share/guile/2.0/ice-9/format.scm'
`/tmp/guix-tests/store/7y0q8n6zv41lr9viybhihlcmhri6939f-guile-bootstrap-2.0/share/guile/2.0/ice-9/gap-buffer.scm' ~> `/tmp/guix-tests/store/0sgpsn768nn73wblh4iw6wl3bcsfn7dd-union-test-all-dirs/share/guile/2.0/ice-9/gap-buffer.scm'
`/tmp/guix-tests/store/7y0q8n6zv41lr9viybhihlcmhri6939f-guile-bootstrap-2.0/share/guile/2.0/ice-9/serialize.scm' ~> `/tmp/guix-tests/store/0sgpsn768nn73wblh4iw6wl3bcsfn7dd-union-test-all-dirs/share/guile/2.0/ice-9/serialize.scm'
`/tmp/guix-tests/store/7y0q8n6zv41lr9viybhihlcmhri6939f-guile-bootstrap-2.0/share/guile/2.0/ice-9/ftw.scm' ~> `/tmp/guix-tests/store/0sgpsn768nn73wblh4iw6wl3bcsfn7dd-union-test-all-dirs/share/guile/2.0/ice-9/ftw.scm'
`/tmp/guix-tests/store/7y0q8n6zv41lr9viybhihlcmhri6939f-guile-bootstrap-2.0/share/guile/2.0/ice-9/session.scm' ~> `/tmp/guix-tests/store/0sgpsn768nn73wblh4iw6wl3bcsfn7dd-union-test-all-dirs/share/guile/2.0/ice-9/session.scm'
`/tmp/guix-tests/store/7y0q8n6zv41lr9viybhihlcmhri6939f-guile-bootstrap-2.0/share/guile/2.0/ice-9/hcons.scm' ~> `/tmp/guix-tests/store/0sgpsn768nn73wblh4iw6wl3bcsfn7dd-union-test-all-dirs/share/guile/2.0/ice-9/hcons.scm'
`/tmp/guix-tests/store/7y0q8n6zv41lr9viybhihlcmhri6939f-guile-bootstrap-2.0/share/guile/2.0/ice-9/runq.scm' ~> `/tmp/guix-tests/store/0sgpsn768nn73wblh4iw6wl3bcsfn7dd-union-test-all-dirs/share/guile/2.0/ice-9/runq.scm'
`/tmp/guix-tests/store/7y0q8n6zv41lr9viybhihlcmhri6939f-guile-bootstrap-2.0/share/guile/2.0/ice-9/pretty-print.scm' ~> `/tmp/guix-tests/store/0sgpsn768nn73wblh4iw6wl3bcsfn7dd-union-test-all-dirs/share/guile/2.0/ice-9/pretty-print.scm'
`/tmp/guix-tests/store/7y0q8n6zv41lr9viybhihlcmhri6939f-guile-bootstrap-2.0/share/guile/2.0/ice-9/r5rs.scm' ~> `/tmp/guix-tests/store/0sgpsn768nn73wblh4iw6wl3bcsfn7dd-union-test-all-dirs/share/guile/2.0/ice-9/r5rs.scm'
`/tmp/guix-tests/store/7y0q8n6zv41lr9viybhihlcmhri6939f-guile-bootstrap-2.0/share/guile/2.0/ice-9/curried-definitions.scm' ~> `/tmp/guix-tests/store/0sgpsn768nn73wblh4iw6wl3bcsfn7dd-union-test-all-dirs/share/guile/2.0/ice-9/curried-definitions.scm'
`/tmp/guix-tests/store/7y0q8n6zv41lr9viybhihlcmhri6939f-guile-bootstrap-2.0/share/guile/2.0/ice-9/posix.scm' ~> `/tmp/guix-tests/store/0sgpsn768nn73wblh4iw6wl3bcsfn7dd-union-test-all-dirs/share/guile/2.0/ice-9/posix.scm'
`/tmp/guix-tests/store/7y0q8n6zv41lr9viybhihlcmhri6939f-guile-bootstrap-2.0/share/guile/2.0/ice-9/psyntax-pp.scm' ~> `/tmp/guix-tests/store/0sgpsn768nn73wblh4iw6wl3bcsfn7dd-union-test-all-dirs/share/guile/2.0/ice-9/psyntax-pp.scm'
`/tmp/guix-tests/store/7y0q8n6zv41lr9viybhihlcmhri6939f-guile-bootstrap-2.0/share/guile/2.0/ice-9/match.scm' ~> `/tmp/guix-tests/store/0sgpsn768nn73wblh4iw6wl3bcsfn7dd-union-test-all-dirs/share/guile/2.0/ice-9/match.scm'
`/tmp/guix-tests/store/7y0q8n6zv41lr9viybhihlcmhri6939f-guile-bootstrap-2.0/share/guile/2.0/ice-9/buffered-input.scm' ~> `/tmp/guix-tests/store/0sgpsn768nn73wblh4iw6wl3bcsfn7dd-union-test-all-dirs/share/guile/2.0/ice-9/buffered-input.scm'
`/tmp/guix-tests/store/7y0q8n6zv41lr9viybhihlcmhri6939f-guile-bootstrap-2.0/share/guile/2.0/ice-9/psyntax.scm' ~> `/tmp/guix-tests/store/0sgpsn768nn73wblh4iw6wl3bcsfn7dd-union-test-all-dirs/share/guile/2.0/ice-9/psyntax.scm'
`/tmp/guix-tests/store/7y0q8n6zv41lr9viybhihlcmhri6939f-guile-bootstrap-2.0/share/guile/2.0/ice-9/match.upstream.scm' ~> `/tmp/guix-tests/store/0sgpsn768nn73wblh4iw6wl3bcsfn7dd-union-test-all-dirs/share/guile/2.0/ice-9/match.upstream.scm'
`/tmp/guix-tests/store/7y0q8n6zv41lr9viybhihlcmhri6939f-guile-bootstrap-2.0/share/guile/2.0/ice-9/time.scm' ~> `/tmp/guix-tests/store/0sgpsn768nn73wblh4iw6wl3bcsfn7dd-union-test-all-dirs/share/guile/2.0/ice-9/time.scm'
`/tmp/guix-tests/store/7y0q8n6zv41lr9viybhihlcmhri6939f-guile-bootstrap-2.0/share/guile/2.0/ice-9/binary-ports.scm' ~> `/tmp/guix-tests/store/0sgpsn768nn73wblh4iw6wl3bcsfn7dd-union-test-all-dirs/share/guile/2.0/ice-9/binary-ports.scm'
`/tmp/guix-tests/store/7y0q8n6zv41lr9viybhihlcmhri6939f-guile-bootstrap-2.0/share/guile/2.0/ice-9/regex.scm' ~> `/tmp/guix-tests/store/0sgpsn768nn73wblh4iw6wl3bcsfn7dd-union-test-all-dirs/share/guile/2.0/ice-9/regex.scm'
`/tmp/guix-tests/store/7y0q8n6zv41lr9viybhihlcmhri6939f-guile-bootstrap-2.0/share/guile/2.0/ice-9/ls.scm' ~> `/tmp/guix-tests/store/0sgpsn768nn73wblh4iw6wl3bcsfn7dd-union-test-all-dirs/share/guile/2.0/ice-9/ls.scm'
`/tmp/guix-tests/store/7y0q8n6zv41lr9viybhihlcmhri6939f-guile-bootstrap-2.0/share/guile/2.0/ice-9/rw.scm' ~> `/tmp/guix-tests/store/0sgpsn768nn73wblh4iw6wl3bcsfn7dd-union-test-all-dirs/share/guile/2.0/ice-9/rw.scm'
`/tmp/guix-tests/store/7y0q8n6zv41lr9viybhihlcmhri6939f-guile-bootstrap-2.0/share/guile/2.0/ice-9/documentation.scm' ~> `/tmp/guix-tests/store/0sgpsn768nn73wblh4iw6wl3bcsfn7dd-union-test-all-dirs/share/guile/2.0/ice-9/documentation.scm'
`/tmp/guix-tests/store/7y0q8n6zv41lr9viybhihlcmhri6939f-guile-bootstrap-2.0/share/guile/2.0/ice-9/local-eval.scm' ~> `/tmp/guix-tests/store/0sgpsn768nn73wblh4iw6wl3bcsfn7dd-union-test-all-dirs/share/guile/2.0/ice-9/local-eval.scm'
`/tmp/guix-tests/store/7y0q8n6zv41lr9viybhihlcmhri6939f-guile-bootstrap-2.0/share/guile/2.0/ice-9/iconv.scm' ~> `/tmp/guix-tests/store/0sgpsn768nn73wblh4iw6wl3bcsfn7dd-union-test-all-dirs/share/guile/2.0/ice-9/iconv.scm'
`/tmp/guix-tests/store/7y0q8n6zv41lr9viybhihlcmhri6939f-guile-bootstrap-2.0/share/guile/2.0/ice-9/history.scm' ~> `/tmp/guix-tests/store/0sgpsn768nn73wblh4iw6wl3bcsfn7dd-union-test-all-dirs/share/guile/2.0/ice-9/history.scm'
`/tmp/guix-tests/store/7y0q8n6zv41lr9viybhihlcmhri6939f-guile-bootstrap-2.0/share/guile/2.0/ice-9/expect.scm' ~> `/tmp/guix-tests/store/0sgpsn768nn73wblh4iw6wl3bcsfn7dd-union-test-all-dirs/share/guile/2.0/ice-9/expect.scm'
`/tmp/guix-tests/store/7y0q8n6zv41lr9viybhihlcmhri6939f-guile-bootstrap-2.0/share/guile/2.0/ice-9/command-line.scm' ~> `/tmp/guix-tests/store/0sgpsn768nn73wblh4iw6wl3bcsfn7dd-union-test-all-dirs/share/guile/2.0/ice-9/command-line.scm'
`/tmp/guix-tests/store/7y0q8n6zv41lr9viybhihlcmhri6939f-guile-bootstrap-2.0/share/guile/2.0/ice-9/syncase.scm' ~> `/tmp/guix-tests/store/0sgpsn768nn73wblh4iw6wl3bcsfn7dd-union-test-all-dirs/share/guile/2.0/ice-9/syncase.scm'
`/tmp/guix-tests/store/7y0q8n6zv41lr9viybhihlcmhri6939f-guile-bootstrap-2.0/share/guile/2.0/ice-9/slib.scm' ~> `/tmp/guix-tests/store/0sgpsn768nn73wblh4iw6wl3bcsfn7dd-union-test-all-dirs/share/guile/2.0/ice-9/slib.scm'
`/tmp/guix-tests/store/7y0q8n6zv41lr9viybhihlcmhri6939f-guile-bootstrap-2.0/share/guile/2.0/ice-9/stack-catch.scm' ~> `/tmp/guix-tests/store/0sgpsn768nn73wblh4iw6wl3bcsfn7dd-union-test-all-dirs/share/guile/2.0/ice-9/stack-catch.scm'
`/tmp/guix-tests/store/7y0q8n6zv41lr9viybhihlcmhri6939f-guile-bootstrap-2.0/share/guile/2.0/ice-9/occam-channel.scm' ~> `/tmp/guix-tests/store/0sgpsn768nn73wblh4iw6wl3bcsfn7dd-union-test-all-dirs/share/guile/2.0/ice-9/occam-channel.scm'
`/tmp/guix-tests/store/7y0q8n6zv41lr9viybhihlcmhri6939f-guile-bootstrap-2.0/share/guile/2.0/ice-9/null.scm' ~> `/tmp/guix-tests/store/0sgpsn768nn73wblh4iw6wl3bcsfn7dd-union-test-all-dirs/share/guile/2.0/ice-9/null.scm'
`/tmp/guix-tests/store/7y0q8n6zv41lr9viybhihlcmhri6939f-guile-bootstrap-2.0/share/guile/2.0/ice-9/debug.scm' ~> `/tmp/guix-tests/store/0sgpsn768nn73wblh4iw6wl3bcsfn7dd-union-test-all-dirs/share/guile/2.0/ice-9/debug.scm'
`/tmp/guix-tests/store/7y0q8n6zv41lr9viybhihlcmhri6939f-guile-bootstrap-2.0/share/guile/2.0/ice-9/vlist.scm' ~> `/tmp/guix-tests/store/0sgpsn768nn73wblh4iw6wl3bcsfn7dd-union-test-all-dirs/share/guile/2.0/ice-9/vlist.scm'
`/tmp/guix-tests/store/7y0q8n6zv41lr9viybhihlcmhri6939f-guile-bootstrap-2.0/share/guile/2.0/ice-9/safe-r5rs.scm' ~> `/tmp/guix-tests/store/0sgpsn768nn73wblh4iw6wl3bcsfn7dd-union-test-all-dirs/share/guile/2.0/ice-9/safe-r5rs.scm'
`/tmp/guix-tests/store/7y0q8n6zv41lr9viybhihlcmhri6939f-guile-bootstrap-2.0/share/guile/2.0/ice-9/eval-string.scm' ~> `/tmp/guix-tests/store/0sgpsn768nn73wblh4iw6wl3bcsfn7dd-union-test-all-dirs/share/guile/2.0/ice-9/eval-string.scm'
`/tmp/guix-tests/store/7y0q8n6zv41lr9viybhihlcmhri6939f-guile-bootstrap-2.0/share/guile/2.0/ice-9/popen.scm' ~> `/tmp/guix-tests/store/0sgpsn768nn73wblh4iw6wl3bcsfn7dd-union-test-all-dirs/share/guile/2.0/ice-9/popen.scm'
`/tmp/guix-tests/store/7y0q8n6zv41lr9viybhihlcmhri6939f-guile-bootstrap-2.0/share/guile/2.0/language/tree-il.scm' ~> `/tmp/guix-tests/store/0sgpsn768nn73wblh4iw6wl3bcsfn7dd-union-test-all-dirs/share/guile/2.0/language/tree-il.scm'
`/tmp/guix-tests/store/7y0q8n6zv41lr9viybhihlcmhri6939f-guile-bootstrap-2.0/share/guile/2.0/language/glil.scm' ~> `/tmp/guix-tests/store/0sgpsn768nn73wblh4iw6wl3bcsfn7dd-union-test-all-dirs/share/guile/2.0/language/glil.scm'
`/tmp/guix-tests/store/7y0q8n6zv41lr9viybhihlcmhri6939f-guile-bootstrap-2.0/share/guile/2.0/language/value/spec.scm' ~> `/tmp/guix-tests/store/0sgpsn768nn73wblh4iw6wl3bcsfn7dd-union-test-all-dirs/share/guile/2.0/language/value/spec.scm'
`/tmp/guix-tests/store/7y0q8n6zv41lr9viybhihlcmhri6939f-guile-bootstrap-2.0/share/guile/2.0/language/assembly/spec.scm' ~> `/tmp/guix-tests/store/0sgpsn768nn73wblh4iw6wl3bcsfn7dd-union-test-all-dirs/share/guile/2.0/language/assembly/spec.scm'
`/tmp/guix-tests/store/7y0q8n6zv41lr9viybhihlcmhri6939f-guile-bootstrap-2.0/share/guile/2.0/language/assembly/compile-bytecode.scm' ~> `/tmp/guix-tests/store/0sgpsn768nn73wblh4iw6wl3bcsfn7dd-union-test-all-dirs/share/guile/2.0/language/assembly/compile-bytecode.scm'
`/tmp/guix-tests/store/7y0q8n6zv41lr9viybhihlcmhri6939f-guile-bootstrap-2.0/share/guile/2.0/language/assembly/decompile-bytecode.scm' ~> `/tmp/guix-tests/store/0sgpsn768nn73wblh4iw6wl3bcsfn7dd-union-test-all-dirs/share/guile/2.0/language/assembly/decompile-bytecode.scm'
`/tmp/guix-tests/store/7y0q8n6zv41lr9viybhihlcmhri6939f-guile-bootstrap-2.0/share/guile/2.0/language/assembly/disassemble.scm' ~> `/tmp/guix-tests/store/0sgpsn768nn73wblh4iw6wl3bcsfn7dd-union-test-all-dirs/share/guile/2.0/language/assembly/disassemble.scm'
`/tmp/guix-tests/store/7y0q8n6zv41lr9viybhihlcmhri6939f-guile-bootstrap-2.0/share/guile/2.0/language/scheme/decompile-tree-il.scm' ~> `/tmp/guix-tests/store/0sgpsn768nn73wblh4iw6wl3bcsfn7dd-union-test-all-dirs/share/guile/2.0/language/scheme/decompile-tree-il.scm'
`/tmp/guix-tests/store/7y0q8n6zv41lr9viybhihlcmhri6939f-guile-bootstrap-2.0/share/guile/2.0/language/scheme/spec.scm' ~> `/tmp/guix-tests/store/0sgpsn768nn73wblh4iw6wl3bcsfn7dd-union-test-all-dirs/share/guile/2.0/language/scheme/spec.scm'
`/tmp/guix-tests/store/7y0q8n6zv41lr9viybhihlcmhri6939f-guile-bootstrap-2.0/share/guile/2.0/language/scheme/compile-tree-il.scm' ~> `/tmp/guix-tests/store/0sgpsn768nn73wblh4iw6wl3bcsfn7dd-union-test-all-dirs/share/guile/2.0/language/scheme/compile-tree-il.scm'
`/tmp/guix-tests/store/7y0q8n6zv41lr9viybhihlcmhri6939f-guile-bootstrap-2.0/share/guile/2.0/language/objcode/spec.scm' ~> `/tmp/guix-tests/store/0sgpsn768nn73wblh4iw6wl3bcsfn7dd-union-test-all-dirs/share/guile/2.0/language/objcode/spec.scm'
`/tmp/guix-tests/store/7y0q8n6zv41lr9viybhihlcmhri6939f-guile-bootstrap-2.0/share/guile/2.0/language/tree-il/canonicalize.scm' ~> `/tmp/guix-tests/store/0sgpsn768nn73wblh4iw6wl3bcsfn7dd-union-test-all-dirs/share/guile/2.0/language/tree-il/canonicalize.scm'
`/tmp/guix-tests/store/7y0q8n6zv41lr9viybhihlcmhri6939f-guile-bootstrap-2.0/share/guile/2.0/language/tree-il/optimize.scm' ~> `/tmp/guix-tests/store/0sgpsn768nn73wblh4iw6wl3bcsfn7dd-union-test-all-dirs/share/guile/2.0/language/tree-il/optimize.scm'
`/tmp/guix-tests/store/7y0q8n6zv41lr9viybhihlcmhri6939f-guile-bootstrap-2.0/share/guile/2.0/language/tree-il/inline.scm' ~> `/tmp/guix-tests/store/0sgpsn768nn73wblh4iw6wl3bcsfn7dd-union-test-all-dirs/share/guile/2.0/language/tree-il/inline.scm'
`/tmp/guix-tests/store/7y0q8n6zv41lr9viybhihlcmhri6939f-guile-bootstrap-2.0/share/guile/2.0/language/tree-il/effects.scm' ~> `/tmp/guix-tests/store/0sgpsn768nn73wblh4iw6wl3bcsfn7dd-union-test-all-dirs/share/guile/2.0/language/tree-il/effects.scm'
`/tmp/guix-tests/store/7y0q8n6zv41lr9viybhihlcmhri6939f-guile-bootstrap-2.0/share/guile/2.0/language/tree-il/spec.scm' ~> `/tmp/guix-tests/store/0sgpsn768nn73wblh4iw6wl3bcsfn7dd-union-test-all-dirs/share/guile/2.0/language/tree-il/spec.scm'
`/tmp/guix-tests/store/7y0q8n6zv41lr9viybhihlcmhri6939f-guile-bootstrap-2.0/share/guile/2.0/language/tree-il/primitives.scm' ~> `/tmp/guix-tests/store/0sgpsn768nn73wblh4iw6wl3bcsfn7dd-union-test-all-dirs/share/guile/2.0/language/tree-il/primitives.scm'
`/tmp/guix-tests/store/7y0q8n6zv41lr9viybhihlcmhri6939f-guile-bootstrap-2.0/share/guile/2.0/language/tree-il/fix-letrec.scm' ~> `/tmp/guix-tests/store/0sgpsn768nn73wblh4iw6wl3bcsfn7dd-union-test-all-dirs/share/guile/2.0/language/tree-il/fix-letrec.scm'
`/tmp/guix-tests/store/7y0q8n6zv41lr9viybhihlcmhri6939f-guile-bootstrap-2.0/share/guile/2.0/language/tree-il/peval.scm' ~> `/tmp/guix-tests/store/0sgpsn768nn73wblh4iw6wl3bcsfn7dd-union-test-all-dirs/share/guile/2.0/language/tree-il/peval.scm'
`/tmp/guix-tests/store/7y0q8n6zv41lr9viybhihlcmhri6939f-guile-bootstrap-2.0/share/guile/2.0/language/tree-il/analyze.scm' ~> `/tmp/guix-tests/store/0sgpsn768nn73wblh4iw6wl3bcsfn7dd-union-test-all-dirs/share/guile/2.0/language/tree-il/analyze.scm'
`/tmp/guix-tests/store/7y0q8n6zv41lr9viybhihlcmhri6939f-guile-bootstrap-2.0/share/guile/2.0/language/tree-il/debug.scm' ~> `/tmp/guix-tests/store/0sgpsn768nn73wblh4iw6wl3bcsfn7dd-union-test-all-dirs/share/guile/2.0/language/tree-il/debug.scm'
`/tmp/guix-tests/store/7y0q8n6zv41lr9viybhihlcmhri6939f-guile-bootstrap-2.0/share/guile/2.0/language/tree-il/cse.scm' ~> `/tmp/guix-tests/store/0sgpsn768nn73wblh4iw6wl3bcsfn7dd-union-test-all-dirs/share/guile/2.0/language/tree-il/cse.scm'
`/tmp/guix-tests/store/7y0q8n6zv41lr9viybhihlcmhri6939f-guile-bootstrap-2.0/share/guile/2.0/language/tree-il/compile-glil.scm' ~> `/tmp/guix-tests/store/0sgpsn768nn73wblh4iw6wl3bcsfn7dd-union-test-all-dirs/share/guile/2.0/language/tree-il/compile-glil.scm'
`/tmp/guix-tests/store/7y0q8n6zv41lr9viybhihlcmhri6939f-guile-bootstrap-2.0/share/guile/2.0/language/elisp/runtime/subrs.scm' ~> `/tmp/guix-tests/store/0sgpsn768nn73wblh4iw6wl3bcsfn7dd-union-test-all-dirs/share/guile/2.0/language/elisp/runtime/subrs.scm'
`/tmp/guix-tests/store/7y0q8n6zv41lr9viybhihlcmhri6939f-guile-bootstrap-2.0/share/guile/2.0/language/elisp/runtime/macros.scm' ~> `/tmp/guix-tests/store/0sgpsn768nn73wblh4iw6wl3bcsfn7dd-union-test-all-dirs/share/guile/2.0/language/elisp/runtime/macros.scm'
`/tmp/guix-tests/store/7y0q8n6zv41lr9viybhihlcmhri6939f-guile-bootstrap-2.0/share/guile/2.0/language/elisp/runtime/function-slot.scm' ~> `/tmp/guix-tests/store/0sgpsn768nn73wblh4iw6wl3bcsfn7dd-union-test-all-dirs/share/guile/2.0/language/elisp/runtime/function-slot.scm'
`/tmp/guix-tests/store/7y0q8n6zv41lr9viybhihlcmhri6939f-guile-bootstrap-2.0/share/guile/2.0/language/elisp/runtime/value-slot.scm' ~> `/tmp/guix-tests/store/0sgpsn768nn73wblh4iw6wl3bcsfn7dd-union-test-all-dirs/share/guile/2.0/language/elisp/runtime/value-slot.scm'
`/tmp/guix-tests/store/7y0q8n6zv41lr9viybhihlcmhri6939f-guile-bootstrap-2.0/share/guile/2.0/language/elisp/spec.scm' ~> `/tmp/guix-tests/store/0sgpsn768nn73wblh4iw6wl3bcsfn7dd-union-test-all-dirs/share/guile/2.0/language/elisp/spec.scm'
`/tmp/guix-tests/store/7y0q8n6zv41lr9viybhihlcmhri6939f-guile-bootstrap-2.0/share/guile/2.0/language/elisp/parser.scm' ~> `/tmp/guix-tests/store/0sgpsn768nn73wblh4iw6wl3bcsfn7dd-union-test-all-dirs/share/guile/2.0/language/elisp/parser.scm'
`/tmp/guix-tests/store/7y0q8n6zv41lr9viybhihlcmhri6939f-guile-bootstrap-2.0/share/guile/2.0/language/elisp/bindings.scm' ~> `/tmp/guix-tests/store/0sgpsn768nn73wblh4iw6wl3bcsfn7dd-union-test-all-dirs/share/guile/2.0/language/elisp/bindings.scm'
`/tmp/guix-tests/store/7y0q8n6zv41lr9viybhihlcmhri6939f-guile-bootstrap-2.0/share/guile/2.0/language/elisp/lexer.scm' ~> `/tmp/guix-tests/store/0sgpsn768nn73wblh4iw6wl3bcsfn7dd-union-test-all-dirs/share/guile/2.0/language/elisp/lexer.scm'
`/tmp/guix-tests/store/7y0q8n6zv41lr9viybhihlcmhri6939f-guile-bootstrap-2.0/share/guile/2.0/language/elisp/runtime.scm' ~> `/tmp/guix-tests/store/0sgpsn768nn73wblh4iw6wl3bcsfn7dd-union-test-all-dirs/share/guile/2.0/language/elisp/runtime.scm'
`/tmp/guix-tests/store/7y0q8n6zv41lr9viybhihlcmhri6939f-guile-bootstrap-2.0/share/guile/2.0/language/elisp/compile-tree-il.scm' ~> `/tmp/guix-tests/store/0sgpsn768nn73wblh4iw6wl3bcsfn7dd-union-test-all-dirs/share/guile/2.0/language/elisp/compile-tree-il.scm'
`/tmp/guix-tests/store/7y0q8n6zv41lr9viybhihlcmhri6939f-guile-bootstrap-2.0/share/guile/2.0/language/assembly.scm' ~> `/tmp/guix-tests/store/0sgpsn768nn73wblh4iw6wl3bcsfn7dd-union-test-all-dirs/share/guile/2.0/language/assembly.scm'
`/tmp/guix-tests/store/7y0q8n6zv41lr9viybhihlcmhri6939f-guile-bootstrap-2.0/share/guile/2.0/language/glil/spec.scm' ~> `/tmp/guix-tests/store/0sgpsn768nn73wblh4iw6wl3bcsfn7dd-union-test-all-dirs/share/guile/2.0/language/glil/spec.scm'
`/tmp/guix-tests/store/7y0q8n6zv41lr9viybhihlcmhri6939f-guile-bootstrap-2.0/share/guile/2.0/language/glil/compile-assembly.scm' ~> `/tmp/guix-tests/store/0sgpsn768nn73wblh4iw6wl3bcsfn7dd-union-test-all-dirs/share/guile/2.0/language/glil/compile-assembly.scm'
`/tmp/guix-tests/store/7y0q8n6zv41lr9viybhihlcmhri6939f-guile-bootstrap-2.0/share/guile/2.0/language/ecmascript/array.scm' ~> `/tmp/guix-tests/store/0sgpsn768nn73wblh4iw6wl3bcsfn7dd-union-test-all-dirs/share/guile/2.0/language/ecmascript/array.scm'
`/tmp/guix-tests/store/7y0q8n6zv41lr9viybhihlcmhri6939f-guile-bootstrap-2.0/share/guile/2.0/language/ecmascript/spec.scm' ~> `/tmp/guix-tests/store/0sgpsn768nn73wblh4iw6wl3bcsfn7dd-union-test-all-dirs/share/guile/2.0/language/ecmascript/spec.scm'
`/tmp/guix-tests/store/7y0q8n6zv41lr9viybhihlcmhri6939f-guile-bootstrap-2.0/share/guile/2.0/language/ecmascript/parse.scm' ~> `/tmp/guix-tests/store/0sgpsn768nn73wblh4iw6wl3bcsfn7dd-union-test-all-dirs/share/guile/2.0/language/ecmascript/parse.scm'
`/tmp/guix-tests/store/7y0q8n6zv41lr9viybhihlcmhri6939f-guile-bootstrap-2.0/share/guile/2.0/language/ecmascript/function.scm' ~> `/tmp/guix-tests/store/0sgpsn768nn73wblh4iw6wl3bcsfn7dd-union-test-all-dirs/share/guile/2.0/language/ecmascript/function.scm'
`/tmp/guix-tests/store/7y0q8n6zv41lr9viybhihlcmhri6939f-guile-bootstrap-2.0/share/guile/2.0/language/ecmascript/tokenize.scm' ~> `/tmp/guix-tests/store/0sgpsn768nn73wblh4iw6wl3bcsfn7dd-union-test-all-dirs/share/guile/2.0/language/ecmascript/tokenize.scm'
`/tmp/guix-tests/store/7y0q8n6zv41lr9viybhihlcmhri6939f-guile-bootstrap-2.0/share/guile/2.0/language/ecmascript/impl.scm' ~> `/tmp/guix-tests/store/0sgpsn768nn73wblh4iw6wl3bcsfn7dd-union-test-all-dirs/share/guile/2.0/language/ecmascript/impl.scm'
`/tmp/guix-tests/store/7y0q8n6zv41lr9viybhihlcmhri6939f-guile-bootstrap-2.0/share/guile/2.0/language/ecmascript/base.scm' ~> `/tmp/guix-tests/store/0sgpsn768nn73wblh4iw6wl3bcsfn7dd-union-test-all-dirs/share/guile/2.0/language/ecmascript/base.scm'
`/tmp/guix-tests/store/7y0q8n6zv41lr9viybhihlcmhri6939f-guile-bootstrap-2.0/share/guile/2.0/language/ecmascript/compile-tree-il.scm' ~> `/tmp/guix-tests/store/0sgpsn768nn73wblh4iw6wl3bcsfn7dd-union-test-all-dirs/share/guile/2.0/language/ecmascript/compile-tree-il.scm'
`/tmp/guix-tests/store/7y0q8n6zv41lr9viybhihlcmhri6939f-guile-bootstrap-2.0/share/guile/2.0/language/bytecode/spec.scm' ~> `/tmp/guix-tests/store/0sgpsn768nn73wblh4iw6wl3bcsfn7dd-union-test-all-dirs/share/guile/2.0/language/bytecode/spec.scm'
`/tmp/guix-tests/store/7y0q8n6zv41lr9viybhihlcmhri6939f-guile-bootstrap-2.0/share/guile/2.0/language/brainfuck/spec.scm' ~> `/tmp/guix-tests/store/0sgpsn768nn73wblh4iw6wl3bcsfn7dd-union-test-all-dirs/share/guile/2.0/language/brainfuck/spec.scm'
`/tmp/guix-tests/store/7y0q8n6zv41lr9viybhihlcmhri6939f-guile-bootstrap-2.0/share/guile/2.0/language/brainfuck/parse.scm' ~> `/tmp/guix-tests/store/0sgpsn768nn73wblh4iw6wl3bcsfn7dd-union-test-all-dirs/share/guile/2.0/language/brainfuck/parse.scm'
`/tmp/guix-tests/store/7y0q8n6zv41lr9viybhihlcmhri6939f-guile-bootstrap-2.0/share/guile/2.0/language/brainfuck/compile-scheme.scm' ~> `/tmp/guix-tests/store/0sgpsn768nn73wblh4iw6wl3bcsfn7dd-union-test-all-dirs/share/guile/2.0/language/brainfuck/compile-scheme.scm'
`/tmp/guix-tests/store/7y0q8n6zv41lr9viybhihlcmhri6939f-guile-bootstrap-2.0/share/guile/2.0/language/brainfuck/compile-tree-il.scm' ~> `/tmp/guix-tests/store/0sgpsn768nn73wblh4iw6wl3bcsfn7dd-union-test-all-dirs/share/guile/2.0/language/brainfuck/compile-tree-il.scm'
`/tmp/guix-tests/store/7y0q8n6zv41lr9viybhihlcmhri6939f-guile-bootstrap-2.0/share/guile/2.0/statprof.scm' ~> `/tmp/guix-tests/store/0sgpsn768nn73wblh4iw6wl3bcsfn7dd-union-test-all-dirs/share/guile/2.0/statprof.scm'
`/tmp/guix-tests/store/7y0q8n6zv41lr9viybhihlcmhri6939f-guile-bootstrap-2.0/share/guile/2.0/scripts/list.scm' ~> `/tmp/guix-tests/store/0sgpsn768nn73wblh4iw6wl3bcsfn7dd-union-test-all-dirs/share/guile/2.0/scripts/list.scm'
`/tmp/guix-tests/store/7y0q8n6zv41lr9viybhihlcmhri6939f-guile-bootstrap-2.0/share/guile/2.0/scripts/help.scm' ~> `/tmp/guix-tests/store/0sgpsn768nn73wblh4iw6wl3bcsfn7dd-union-test-all-dirs/share/guile/2.0/scripts/help.scm'
`/tmp/guix-tests/store/7y0q8n6zv41lr9viybhihlcmhri6939f-guile-bootstrap-2.0/share/guile/2.0/scripts/read-rfc822.scm' ~> `/tmp/guix-tests/store/0sgpsn768nn73wblh4iw6wl3bcsfn7dd-union-test-all-dirs/share/guile/2.0/scripts/read-rfc822.scm'
`/tmp/guix-tests/store/7y0q8n6zv41lr9viybhihlcmhri6939f-guile-bootstrap-2.0/share/guile/2.0/scripts/use2dot.scm' ~> `/tmp/guix-tests/store/0sgpsn768nn73wblh4iw6wl3bcsfn7dd-union-test-all-dirs/share/guile/2.0/scripts/use2dot.scm'
`/tmp/guix-tests/store/7y0q8n6zv41lr9viybhihlcmhri6939f-guile-bootstrap-2.0/share/guile/2.0/scripts/snarf-guile-m4-docs.scm' ~> `/tmp/guix-tests/store/0sgpsn768nn73wblh4iw6wl3bcsfn7dd-union-test-all-dirs/share/guile/2.0/scripts/snarf-guile-m4-docs.scm'
`/tmp/guix-tests/store/7y0q8n6zv41lr9viybhihlcmhri6939f-guile-bootstrap-2.0/share/guile/2.0/scripts/frisk.scm' ~> `/tmp/guix-tests/store/0sgpsn768nn73wblh4iw6wl3bcsfn7dd-union-test-all-dirs/share/guile/2.0/scripts/frisk.scm'
`/tmp/guix-tests/store/7y0q8n6zv41lr9viybhihlcmhri6939f-guile-bootstrap-2.0/share/guile/2.0/scripts/read-text-outline.scm' ~> `/tmp/guix-tests/store/0sgpsn768nn73wblh4iw6wl3bcsfn7dd-union-test-all-dirs/share/guile/2.0/scripts/read-text-outline.scm'
`/tmp/guix-tests/store/7y0q8n6zv41lr9viybhihlcmhri6939f-guile-bootstrap-2.0/share/guile/2.0/scripts/autofrisk.scm' ~> `/tmp/guix-tests/store/0sgpsn768nn73wblh4iw6wl3bcsfn7dd-union-test-all-dirs/share/guile/2.0/scripts/autofrisk.scm'
`/tmp/guix-tests/store/7y0q8n6zv41lr9viybhihlcmhri6939f-guile-bootstrap-2.0/share/guile/2.0/scripts/snarf-check-and-output-texi.scm' ~> `/tmp/guix-tests/store/0sgpsn768nn73wblh4iw6wl3bcsfn7dd-union-test-all-dirs/share/guile/2.0/scripts/snarf-check-and-output-texi.scm'
`/tmp/guix-tests/store/7y0q8n6zv41lr9viybhihlcmhri6939f-guile-bootstrap-2.0/share/guile/2.0/scripts/scan-api.scm' ~> `/tmp/guix-tests/store/0sgpsn768nn73wblh4iw6wl3bcsfn7dd-union-test-all-dirs/share/guile/2.0/scripts/scan-api.scm'
`/tmp/guix-tests/store/7y0q8n6zv41lr9viybhihlcmhri6939f-guile-bootstrap-2.0/share/guile/2.0/scripts/read-scheme-source.scm' ~> `/tmp/guix-tests/store/0sgpsn768nn73wblh4iw6wl3bcsfn7dd-union-test-all-dirs/share/guile/2.0/scripts/read-scheme-source.scm'
`/tmp/guix-tests/store/7y0q8n6zv41lr9viybhihlcmhri6939f-guile-bootstrap-2.0/share/guile/2.0/scripts/compile.scm' ~> `/tmp/guix-tests/store/0sgpsn768nn73wblh4iw6wl3bcsfn7dd-union-test-all-dirs/share/guile/2.0/scripts/compile.scm'
`/tmp/guix-tests/store/7y0q8n6zv41lr9viybhihlcmhri6939f-guile-bootstrap-2.0/share/guile/2.0/scripts/doc-snarf.scm' ~> `/tmp/guix-tests/store/0sgpsn768nn73wblh4iw6wl3bcsfn7dd-union-test-all-dirs/share/guile/2.0/scripts/doc-snarf.scm'
`/tmp/guix-tests/store/7y0q8n6zv41lr9viybhihlcmhri6939f-guile-bootstrap-2.0/share/guile/2.0/scripts/punify.scm' ~> `/tmp/guix-tests/store/0sgpsn768nn73wblh4iw6wl3bcsfn7dd-union-test-all-dirs/share/guile/2.0/scripts/punify.scm'
`/tmp/guix-tests/store/7y0q8n6zv41lr9viybhihlcmhri6939f-guile-bootstrap-2.0/share/guile/2.0/scripts/lint.scm' ~> `/tmp/guix-tests/store/0sgpsn768nn73wblh4iw6wl3bcsfn7dd-union-test-all-dirs/share/guile/2.0/scripts/lint.scm'
`/tmp/guix-tests/store/7y0q8n6zv41lr9viybhihlcmhri6939f-guile-bootstrap-2.0/share/guile/2.0/scripts/generate-autoload.scm' ~> `/tmp/guix-tests/store/0sgpsn768nn73wblh4iw6wl3bcsfn7dd-union-test-all-dirs/share/guile/2.0/scripts/generate-autoload.scm'
`/tmp/guix-tests/store/7y0q8n6zv41lr9viybhihlcmhri6939f-guile-bootstrap-2.0/share/guile/2.0/scripts/api-diff.scm' ~> `/tmp/guix-tests/store/0sgpsn768nn73wblh4iw6wl3bcsfn7dd-union-test-all-dirs/share/guile/2.0/scripts/api-diff.scm'
`/tmp/guix-tests/store/7y0q8n6zv41lr9viybhihlcmhri6939f-guile-bootstrap-2.0/share/guile/2.0/scripts/disassemble.scm' ~> `/tmp/guix-tests/store/0sgpsn768nn73wblh4iw6wl3bcsfn7dd-union-test-all-dirs/share/guile/2.0/scripts/disassemble.scm'
`/tmp/guix-tests/store/7y0q8n6zv41lr9viybhihlcmhri6939f-guile-bootstrap-2.0/share/guile/2.0/scripts/display-commentary.scm' ~> `/tmp/guix-tests/store/0sgpsn768nn73wblh4iw6wl3bcsfn7dd-union-test-all-dirs/share/guile/2.0/scripts/display-commentary.scm'
`/tmp/guix-tests/store/7y0q8n6zv41lr9viybhihlcmhri6939f-guile-bootstrap-2.0/share/guile/2.0/scripts/summarize-guile-TODO.scm' ~> `/tmp/guix-tests/store/0sgpsn768nn73wblh4iw6wl3bcsfn7dd-union-test-all-dirs/share/guile/2.0/scripts/summarize-guile-TODO.scm'
`/tmp/guix-tests/store/7y0q8n6zv41lr9viybhihlcmhri6939f-guile-bootstrap-2.0/share/guile/2.0/rnrs.scm' ~> `/tmp/guix-tests/store/0sgpsn768nn73wblh4iw6wl3bcsfn7dd-union-test-all-dirs/share/guile/2.0/rnrs.scm'
`/tmp/guix-tests/store/7y0q8n6zv41lr9viybhihlcmhri6939f-guile-bootstrap-2.0/share/guile/2.0/srfi/srfi-67/compare.scm' ~> `/tmp/guix-tests/store/0sgpsn768nn73wblh4iw6wl3bcsfn7dd-union-test-all-dirs/share/guile/2.0/srfi/srfi-67/compare.scm'
`/tmp/guix-tests/store/7y0q8n6zv41lr9viybhihlcmhri6939f-guile-bootstrap-2.0/share/guile/2.0/srfi/srfi-41.scm' ~> `/tmp/guix-tests/store/0sgpsn768nn73wblh4iw6wl3bcsfn7dd-union-test-all-dirs/share/guile/2.0/srfi/srfi-41.scm'
`/tmp/guix-tests/store/7y0q8n6zv41lr9viybhihlcmhri6939f-guile-bootstrap-2.0/share/guile/2.0/srfi/srfi-67.scm' ~> `/tmp/guix-tests/store/0sgpsn768nn73wblh4iw6wl3bcsfn7dd-union-test-all-dirs/share/guile/2.0/srfi/srfi-67.scm'
`/tmp/guix-tests/store/7y0q8n6zv41lr9viybhihlcmhri6939f-guile-bootstrap-2.0/share/guile/2.0/srfi/srfi-19.scm' ~> `/tmp/guix-tests/store/0sgpsn768nn73wblh4iw6wl3bcsfn7dd-union-test-all-dirs/share/guile/2.0/srfi/srfi-19.scm'
`/tmp/guix-tests/store/7y0q8n6zv41lr9viybhihlcmhri6939f-guile-bootstrap-2.0/share/guile/2.0/srfi/srfi-18.scm' ~> `/tmp/guix-tests/store/0sgpsn768nn73wblh4iw6wl3bcsfn7dd-union-test-all-dirs/share/guile/2.0/srfi/srfi-18.scm'
`/tmp/guix-tests/store/7y0q8n6zv41lr9viybhihlcmhri6939f-guile-bootstrap-2.0/share/guile/2.0/srfi/srfi-17.scm' ~> `/tmp/guix-tests/store/0sgpsn768nn73wblh4iw6wl3bcsfn7dd-union-test-all-dirs/share/guile/2.0/srfi/srfi-17.scm'
`/tmp/guix-tests/store/7y0q8n6zv41lr9viybhihlcmhri6939f-guile-bootstrap-2.0/share/guile/2.0/srfi/srfi-9.scm' ~> `/tmp/guix-tests/store/0sgpsn768nn73wblh4iw6wl3bcsfn7dd-union-test-all-dirs/share/guile/2.0/srfi/srfi-9.scm'
`/tmp/guix-tests/store/7y0q8n6zv41lr9viybhihlcmhri6939f-guile-bootstrap-2.0/share/guile/2.0/srfi/srfi-4/gnu.scm' ~> `/tmp/guix-tests/store/0sgpsn768nn73wblh4iw6wl3bcsfn7dd-union-test-all-dirs/share/guile/2.0/srfi/srfi-4/gnu.scm'
`/tmp/guix-tests/store/7y0q8n6zv41lr9viybhihlcmhri6939f-guile-bootstrap-2.0/share/guile/2.0/srfi/srfi-16.scm' ~> `/tmp/guix-tests/store/0sgpsn768nn73wblh4iw6wl3bcsfn7dd-union-test-all-dirs/share/guile/2.0/srfi/srfi-16.scm'
`/tmp/guix-tests/store/7y0q8n6zv41lr9viybhihlcmhri6939f-guile-bootstrap-2.0/share/guile/2.0/srfi/srfi-8.scm' ~> `/tmp/guix-tests/store/0sgpsn768nn73wblh4iw6wl3bcsfn7dd-union-test-all-dirs/share/guile/2.0/srfi/srfi-8.scm'
`/tmp/guix-tests/store/7y0q8n6zv41lr9viybhihlcmhri6939f-guile-bootstrap-2.0/share/guile/2.0/srfi/srfi-9/gnu.scm' ~> `/tmp/guix-tests/store/0sgpsn768nn73wblh4iw6wl3bcsfn7dd-union-test-all-dirs/share/guile/2.0/srfi/srfi-9/gnu.scm'
`/tmp/guix-tests/store/7y0q8n6zv41lr9viybhihlcmhri6939f-guile-bootstrap-2.0/share/guile/2.0/srfi/srfi-14.scm' ~> `/tmp/guix-tests/store/0sgpsn768nn73wblh4iw6wl3bcsfn7dd-union-test-all-dirs/share/guile/2.0/srfi/srfi-14.scm'
`/tmp/guix-tests/store/7y0q8n6zv41lr9viybhihlcmhri6939f-guile-bootstrap-2.0/share/guile/2.0/srfi/srfi-6.scm' ~> `/tmp/guix-tests/store/0sgpsn768nn73wblh4iw6wl3bcsfn7dd-union-test-all-dirs/share/guile/2.0/srfi/srfi-6.scm'
`/tmp/guix-tests/store/7y0q8n6zv41lr9viybhihlcmhri6939f-guile-bootstrap-2.0/share/guile/2.0/srfi/srfi-27.scm' ~> `/tmp/guix-tests/store/0sgpsn768nn73wblh4iw6wl3bcsfn7dd-union-test-all-dirs/share/guile/2.0/srfi/srfi-27.scm'
`/tmp/guix-tests/store/7y0q8n6zv41lr9viybhihlcmhri6939f-guile-bootstrap-2.0/share/guile/2.0/srfi/srfi-13.scm' ~> `/tmp/guix-tests/store/0sgpsn768nn73wblh4iw6wl3bcsfn7dd-union-test-all-dirs/share/guile/2.0/srfi/srfi-13.scm'
`/tmp/guix-tests/store/7y0q8n6zv41lr9viybhihlcmhri6939f-guile-bootstrap-2.0/share/guile/2.0/srfi/srfi-88.scm' ~> `/tmp/guix-tests/store/0sgpsn768nn73wblh4iw6wl3bcsfn7dd-union-test-all-dirs/share/guile/2.0/srfi/srfi-88.scm'
`/tmp/guix-tests/store/7y0q8n6zv41lr9viybhihlcmhri6939f-guile-bootstrap-2.0/share/guile/2.0/srfi/srfi-26.scm' ~> `/tmp/guix-tests/store/0sgpsn768nn73wblh4iw6wl3bcsfn7dd-union-test-all-dirs/share/guile/2.0/srfi/srfi-26.scm'
`/tmp/guix-tests/store/7y0q8n6zv41lr9viybhihlcmhri6939f-guile-bootstrap-2.0/share/guile/2.0/srfi/srfi-60.scm' ~> `/tmp/guix-tests/store/0sgpsn768nn73wblh4iw6wl3bcsfn7dd-union-test-all-dirs/share/guile/2.0/srfi/srfi-60.scm'
`/tmp/guix-tests/store/7y0q8n6zv41lr9viybhihlcmhri6939f-guile-bootstrap-2.0/share/guile/2.0/srfi/srfi-39.scm' ~> `/tmp/guix-tests/store/0sgpsn768nn73wblh4iw6wl3bcsfn7dd-union-test-all-dirs/share/guile/2.0/srfi/srfi-39.scm'
`/tmp/guix-tests/store/7y0q8n6zv41lr9viybhihlcmhri6939f-guile-bootstrap-2.0/share/guile/2.0/srfi/srfi-4.scm' ~> `/tmp/guix-tests/store/0sgpsn768nn73wblh4iw6wl3bcsfn7dd-union-test-all-dirs/share/guile/2.0/srfi/srfi-4.scm'
`/tmp/guix-tests/store/7y0q8n6zv41lr9viybhihlcmhri6939f-guile-bootstrap-2.0/share/guile/2.0/srfi/srfi-11.scm' ~> `/tmp/guix-tests/store/0sgpsn768nn73wblh4iw6wl3bcsfn7dd-union-test-all-dirs/share/guile/2.0/srfi/srfi-11.scm'
`/tmp/guix-tests/store/7y0q8n6zv41lr9viybhihlcmhri6939f-guile-bootstrap-2.0/share/guile/2.0/srfi/srfi-38.scm' ~> `/tmp/guix-tests/store/0sgpsn768nn73wblh4iw6wl3bcsfn7dd-union-test-all-dirs/share/guile/2.0/srfi/srfi-38.scm'
`/tmp/guix-tests/store/7y0q8n6zv41lr9viybhihlcmhri6939f-guile-bootstrap-2.0/share/guile/2.0/srfi/srfi-10.scm' ~> `/tmp/guix-tests/store/0sgpsn768nn73wblh4iw6wl3bcsfn7dd-union-test-all-dirs/share/guile/2.0/srfi/srfi-10.scm'
`/tmp/guix-tests/store/7y0q8n6zv41lr9viybhihlcmhri6939f-guile-bootstrap-2.0/share/guile/2.0/srfi/srfi-2.scm' ~> `/tmp/guix-tests/store/0sgpsn768nn73wblh4iw6wl3bcsfn7dd-union-test-all-dirs/share/guile/2.0/srfi/srfi-2.scm'
`/tmp/guix-tests/store/7y0q8n6zv41lr9viybhihlcmhri6939f-guile-bootstrap-2.0/share/guile/2.0/srfi/srfi-37.scm' ~> `/tmp/guix-tests/store/0sgpsn768nn73wblh4iw6wl3bcsfn7dd-union-test-all-dirs/share/guile/2.0/srfi/srfi-37.scm'
`/tmp/guix-tests/store/7y0q8n6zv41lr9viybhihlcmhri6939f-guile-bootstrap-2.0/share/guile/2.0/srfi/srfi-98.scm' ~> `/tmp/guix-tests/store/0sgpsn768nn73wblh4iw6wl3bcsfn7dd-union-test-all-dirs/share/guile/2.0/srfi/srfi-98.scm'
`/tmp/guix-tests/store/7y0q8n6zv41lr9viybhihlcmhri6939f-guile-bootstrap-2.0/share/guile/2.0/srfi/srfi-1.scm' ~> `/tmp/guix-tests/store/0sgpsn768nn73wblh4iw6wl3bcsfn7dd-union-test-all-dirs/share/guile/2.0/srfi/srfi-1.scm'
`/tmp/guix-tests/store/7y0q8n6zv41lr9viybhihlcmhri6939f-guile-bootstrap-2.0/share/guile/2.0/srfi/srfi-35.scm' ~> `/tmp/guix-tests/store/0sgpsn768nn73wblh4iw6wl3bcsfn7dd-union-test-all-dirs/share/guile/2.0/srfi/srfi-35.scm'
`/tmp/guix-tests/store/7y0q8n6zv41lr9viybhihlcmhri6939f-guile-bootstrap-2.0/share/guile/2.0/srfi/srfi-34.scm' ~> `/tmp/guix-tests/store/0sgpsn768nn73wblh4iw6wl3bcsfn7dd-union-test-all-dirs/share/guile/2.0/srfi/srfi-34.scm'
`/tmp/guix-tests/store/7y0q8n6zv41lr9viybhihlcmhri6939f-guile-bootstrap-2.0/share/guile/2.0/srfi/srfi-42/ec.scm' ~> `/tmp/guix-tests/store/0sgpsn768nn73wblh4iw6wl3bcsfn7dd-union-test-all-dirs/share/guile/2.0/srfi/srfi-42/ec.scm'
`/tmp/guix-tests/store/7y0q8n6zv41lr9viybhihlcmhri6939f-guile-bootstrap-2.0/share/guile/2.0/srfi/srfi-45.scm' ~> `/tmp/guix-tests/store/0sgpsn768nn73wblh4iw6wl3bcsfn7dd-union-test-all-dirs/share/guile/2.0/srfi/srfi-45.scm'
`/tmp/guix-tests/store/7y0q8n6zv41lr9viybhihlcmhri6939f-guile-bootstrap-2.0/share/guile/2.0/srfi/srfi-31.scm' ~> `/tmp/guix-tests/store/0sgpsn768nn73wblh4iw6wl3bcsfn7dd-union-test-all-dirs/share/guile/2.0/srfi/srfi-31.scm'
`/tmp/guix-tests/store/7y0q8n6zv41lr9viybhihlcmhri6939f-guile-bootstrap-2.0/share/guile/2.0/srfi/srfi-42.scm' ~> `/tmp/guix-tests/store/0sgpsn768nn73wblh4iw6wl3bcsfn7dd-union-test-all-dirs/share/guile/2.0/srfi/srfi-42.scm'
`/tmp/guix-tests/store/7y0q8n6zv41lr9viybhihlcmhri6939f-guile-bootstrap-2.0/share/guile/2.0/srfi/srfi-69.scm' ~> `/tmp/guix-tests/store/0sgpsn768nn73wblh4iw6wl3bcsfn7dd-union-test-all-dirs/share/guile/2.0/srfi/srfi-69.scm'
`/tmp/guix-tests/store/7y0q8n6zv41lr9viybhihlcmhri6939f-guile-bootstrap-2.0/share/guile/2.0/guile-procedures.txt' ~> `/tmp/guix-tests/store/0sgpsn768nn73wblh4iw6wl3bcsfn7dd-union-test-all-dirs/share/guile/2.0/guile-procedures.txt'
`/tmp/guix-tests/store/7y0q8n6zv41lr9viybhihlcmhri6939f-guile-bootstrap-2.0/share/guile/2.0/rnrs/mutable-strings.scm' ~> `/tmp/guix-tests/store/0sgpsn768nn73wblh4iw6wl3bcsfn7dd-union-test-all-dirs/share/guile/2.0/rnrs/mutable-strings.scm'
`/tmp/guix-tests/store/7y0q8n6zv41lr9viybhihlcmhri6939f-guile-bootstrap-2.0/share/guile/2.0/rnrs/control.scm' ~> `/tmp/guix-tests/store/0sgpsn768nn73wblh4iw6wl3bcsfn7dd-union-test-all-dirs/share/guile/2.0/rnrs/control.scm'
`/tmp/guix-tests/store/7y0q8n6zv41lr9viybhihlcmhri6939f-guile-bootstrap-2.0/share/guile/2.0/rnrs/records/procedural.scm' ~> `/tmp/guix-tests/store/0sgpsn768nn73wblh4iw6wl3bcsfn7dd-union-test-all-dirs/share/guile/2.0/rnrs/records/procedural.scm'
`/tmp/guix-tests/store/7y0q8n6zv41lr9viybhihlcmhri6939f-guile-bootstrap-2.0/share/guile/2.0/rnrs/records/syntactic.scm' ~> `/tmp/guix-tests/store/0sgpsn768nn73wblh4iw6wl3bcsfn7dd-union-test-all-dirs/share/guile/2.0/rnrs/records/syntactic.scm'
`/tmp/guix-tests/store/7y0q8n6zv41lr9viybhihlcmhri6939f-guile-bootstrap-2.0/share/guile/2.0/rnrs/records/inspection.scm' ~> `/tmp/guix-tests/store/0sgpsn768nn73wblh4iw6wl3bcsfn7dd-union-test-all-dirs/share/guile/2.0/rnrs/records/inspection.scm'
`/tmp/guix-tests/store/7y0q8n6zv41lr9viybhihlcmhri6939f-guile-bootstrap-2.0/share/guile/2.0/rnrs/lists.scm' ~> `/tmp/guix-tests/store/0sgpsn768nn73wblh4iw6wl3bcsfn7dd-union-test-all-dirs/share/guile/2.0/rnrs/lists.scm'
`/tmp/guix-tests/store/7y0q8n6zv41lr9viybhihlcmhri6939f-guile-bootstrap-2.0/share/guile/2.0/rnrs/enums.scm' ~> `/tmp/guix-tests/store/0sgpsn768nn73wblh4iw6wl3bcsfn7dd-union-test-all-dirs/share/guile/2.0/rnrs/enums.scm'
`/tmp/guix-tests/store/7y0q8n6zv41lr9viybhihlcmhri6939f-guile-bootstrap-2.0/share/guile/2.0/rnrs/conditions.scm' ~> `/tmp/guix-tests/store/0sgpsn768nn73wblh4iw6wl3bcsfn7dd-union-test-all-dirs/share/guile/2.0/rnrs/conditions.scm'
`/tmp/guix-tests/store/7y0q8n6zv41lr9viybhihlcmhri6939f-guile-bootstrap-2.0/share/guile/2.0/rnrs/hashtables.scm' ~> `/tmp/guix-tests/store/0sgpsn768nn73wblh4iw6wl3bcsfn7dd-union-test-all-dirs/share/guile/2.0/rnrs/hashtables.scm'
`/tmp/guix-tests/store/7y0q8n6zv41lr9viybhihlcmhri6939f-guile-bootstrap-2.0/share/guile/2.0/rnrs/arithmetic/fixnums.scm' ~> `/tmp/guix-tests/store/0sgpsn768nn73wblh4iw6wl3bcsfn7dd-union-test-all-dirs/share/guile/2.0/rnrs/arithmetic/fixnums.scm'
`/tmp/guix-tests/store/7y0q8n6zv41lr9viybhihlcmhri6939f-guile-bootstrap-2.0/share/guile/2.0/rnrs/arithmetic/bitwise.scm' ~> `/tmp/guix-tests/store/0sgpsn768nn73wblh4iw6wl3bcsfn7dd-union-test-all-dirs/share/guile/2.0/rnrs/arithmetic/bitwise.scm'
`/tmp/guix-tests/store/7y0q8n6zv41lr9viybhihlcmhri6939f-guile-bootstrap-2.0/share/guile/2.0/rnrs/arithmetic/flonums.scm' ~> `/tmp/guix-tests/store/0sgpsn768nn73wblh4iw6wl3bcsfn7dd-union-test-all-dirs/share/guile/2.0/rnrs/arithmetic/flonums.scm'
`/tmp/guix-tests/store/7y0q8n6zv41lr9viybhihlcmhri6939f-guile-bootstrap-2.0/share/guile/2.0/rnrs/sorting.scm' ~> `/tmp/guix-tests/store/0sgpsn768nn73wblh4iw6wl3bcsfn7dd-union-test-all-dirs/share/guile/2.0/rnrs/sorting.scm'
`/tmp/guix-tests/store/7y0q8n6zv41lr9viybhihlcmhri6939f-guile-bootstrap-2.0/share/guile/2.0/rnrs/files.scm' ~> `/tmp/guix-tests/store/0sgpsn768nn73wblh4iw6wl3bcsfn7dd-union-test-all-dirs/share/guile/2.0/rnrs/files.scm'
`/tmp/guix-tests/store/7y0q8n6zv41lr9viybhihlcmhri6939f-guile-bootstrap-2.0/share/guile/2.0/rnrs/programs.scm' ~> `/tmp/guix-tests/store/0sgpsn768nn73wblh4iw6wl3bcsfn7dd-union-test-all-dirs/share/guile/2.0/rnrs/programs.scm'
`/tmp/guix-tests/store/7y0q8n6zv41lr9viybhihlcmhri6939f-guile-bootstrap-2.0/share/guile/2.0/rnrs/mutable-pairs.scm' ~> `/tmp/guix-tests/store/0sgpsn768nn73wblh4iw6wl3bcsfn7dd-union-test-all-dirs/share/guile/2.0/rnrs/mutable-pairs.scm'
`/tmp/guix-tests/store/7y0q8n6zv41lr9viybhihlcmhri6939f-guile-bootstrap-2.0/share/guile/2.0/rnrs/bytevectors.scm' ~> `/tmp/guix-tests/store/0sgpsn768nn73wblh4iw6wl3bcsfn7dd-union-test-all-dirs/share/guile/2.0/rnrs/bytevectors.scm'
`/tmp/guix-tests/store/7y0q8n6zv41lr9viybhihlcmhri6939f-guile-bootstrap-2.0/share/guile/2.0/rnrs/unicode.scm' ~> `/tmp/guix-tests/store/0sgpsn768nn73wblh4iw6wl3bcsfn7dd-union-test-all-dirs/share/guile/2.0/rnrs/unicode.scm'
`/tmp/guix-tests/store/7y0q8n6zv41lr9viybhihlcmhri6939f-guile-bootstrap-2.0/share/guile/2.0/rnrs/eval.scm' ~> `/tmp/guix-tests/store/0sgpsn768nn73wblh4iw6wl3bcsfn7dd-union-test-all-dirs/share/guile/2.0/rnrs/eval.scm'
`/tmp/guix-tests/store/7y0q8n6zv41lr9viybhihlcmhri6939f-guile-bootstrap-2.0/share/guile/2.0/rnrs/base.scm' ~> `/tmp/guix-tests/store/0sgpsn768nn73wblh4iw6wl3bcsfn7dd-union-test-all-dirs/share/guile/2.0/rnrs/base.scm'
`/tmp/guix-tests/store/7y0q8n6zv41lr9viybhihlcmhri6939f-guile-bootstrap-2.0/share/guile/2.0/rnrs/syntax-case.scm' ~> `/tmp/guix-tests/store/0sgpsn768nn73wblh4iw6wl3bcsfn7dd-union-test-all-dirs/share/guile/2.0/rnrs/syntax-case.scm'
`/tmp/guix-tests/store/7y0q8n6zv41lr9viybhihlcmhri6939f-guile-bootstrap-2.0/share/guile/2.0/rnrs/r5rs.scm' ~> `/tmp/guix-tests/store/0sgpsn768nn73wblh4iw6wl3bcsfn7dd-union-test-all-dirs/share/guile/2.0/rnrs/r5rs.scm'
`/tmp/guix-tests/store/7y0q8n6zv41lr9viybhihlcmhri6939f-guile-bootstrap-2.0/share/guile/2.0/rnrs/io/ports.scm' ~> `/tmp/guix-tests/store/0sgpsn768nn73wblh4iw6wl3bcsfn7dd-union-test-all-dirs/share/guile/2.0/rnrs/io/ports.scm'
`/tmp/guix-tests/store/7y0q8n6zv41lr9viybhihlcmhri6939f-guile-bootstrap-2.0/share/guile/2.0/rnrs/io/simple.scm' ~> `/tmp/guix-tests/store/0sgpsn768nn73wblh4iw6wl3bcsfn7dd-union-test-all-dirs/share/guile/2.0/rnrs/io/simple.scm'
`/tmp/guix-tests/store/7y0q8n6zv41lr9viybhihlcmhri6939f-guile-bootstrap-2.0/share/guile/2.0/rnrs/exceptions.scm' ~> `/tmp/guix-tests/store/0sgpsn768nn73wblh4iw6wl3bcsfn7dd-union-test-all-dirs/share/guile/2.0/rnrs/exceptions.scm'
`/tmp/guix-tests/store/7y0q8n6zv41lr9viybhihlcmhri6939f-guile-bootstrap-2.0/share/guile/2.0/web/http.scm' ~> `/tmp/guix-tests/store/0sgpsn768nn73wblh4iw6wl3bcsfn7dd-union-test-all-dirs/share/guile/2.0/web/http.scm'
`/tmp/guix-tests/store/7y0q8n6zv41lr9viybhihlcmhri6939f-guile-bootstrap-2.0/share/guile/2.0/web/client.scm' ~> `/tmp/guix-tests/store/0sgpsn768nn73wblh4iw6wl3bcsfn7dd-union-test-all-dirs/share/guile/2.0/web/client.scm'
`/tmp/guix-tests/store/7y0q8n6zv41lr9viybhihlcmhri6939f-guile-bootstrap-2.0/share/guile/2.0/web/server/http.scm' ~> `/tmp/guix-tests/store/0sgpsn768nn73wblh4iw6wl3bcsfn7dd-union-test-all-dirs/share/guile/2.0/web/server/http.scm'
`/tmp/guix-tests/store/7y0q8n6zv41lr9viybhihlcmhri6939f-guile-bootstrap-2.0/share/guile/2.0/web/request.scm' ~> `/tmp/guix-tests/store/0sgpsn768nn73wblh4iw6wl3bcsfn7dd-union-test-all-dirs/share/guile/2.0/web/request.scm'
`/tmp/guix-tests/store/7y0q8n6zv41lr9viybhihlcmhri6939f-guile-bootstrap-2.0/share/guile/2.0/web/response.scm' ~> `/tmp/guix-tests/store/0sgpsn768nn73wblh4iw6wl3bcsfn7dd-union-test-all-dirs/share/guile/2.0/web/response.scm'
`/tmp/guix-tests/store/7y0q8n6zv41lr9viybhihlcmhri6939f-guile-bootstrap-2.0/share/guile/2.0/web/uri.scm' ~> `/tmp/guix-tests/store/0sgpsn768nn73wblh4iw6wl3bcsfn7dd-union-test-all-dirs/share/guile/2.0/web/uri.scm'
`/tmp/guix-tests/store/7y0q8n6zv41lr9viybhihlcmhri6939f-guile-bootstrap-2.0/share/guile/2.0/web/server.scm' ~> `/tmp/guix-tests/store/0sgpsn768nn73wblh4iw6wl3bcsfn7dd-union-test-all-dirs/share/guile/2.0/web/server.scm'
`/tmp/guix-tests/store/7y0q8n6zv41lr9viybhihlcmhri6939f-guile-bootstrap-2.0/share/guile/2.0/texinfo/indexing.scm' ~> `/tmp/guix-tests/store/0sgpsn768nn73wblh4iw6wl3bcsfn7dd-union-test-all-dirs/share/guile/2.0/texinfo/indexing.scm'
`/tmp/guix-tests/store/7y0q8n6zv41lr9viybhihlcmhri6939f-guile-bootstrap-2.0/share/guile/2.0/texinfo/plain-text.scm' ~> `/tmp/guix-tests/store/0sgpsn768nn73wblh4iw6wl3bcsfn7dd-union-test-all-dirs/share/guile/2.0/texinfo/plain-text.scm'
`/tmp/guix-tests/store/7y0q8n6zv41lr9viybhihlcmhri6939f-guile-bootstrap-2.0/share/guile/2.0/texinfo/html.scm' ~> `/tmp/guix-tests/store/0sgpsn768nn73wblh4iw6wl3bcsfn7dd-union-test-all-dirs/share/guile/2.0/texinfo/html.scm'
`/tmp/guix-tests/store/7y0q8n6zv41lr9viybhihlcmhri6939f-guile-bootstrap-2.0/share/guile/2.0/texinfo/reflection.scm' ~> `/tmp/guix-tests/store/0sgpsn768nn73wblh4iw6wl3bcsfn7dd-union-test-all-dirs/share/guile/2.0/texinfo/reflection.scm'
`/tmp/guix-tests/store/7y0q8n6zv41lr9viybhihlcmhri6939f-guile-bootstrap-2.0/share/guile/2.0/texinfo/string-utils.scm' ~> `/tmp/guix-tests/store/0sgpsn768nn73wblh4iw6wl3bcsfn7dd-union-test-all-dirs/share/guile/2.0/texinfo/string-utils.scm'
`/tmp/guix-tests/store/7y0q8n6zv41lr9viybhihlcmhri6939f-guile-bootstrap-2.0/share/guile/2.0/texinfo/docbook.scm' ~> `/tmp/guix-tests/store/0sgpsn768nn73wblh4iw6wl3bcsfn7dd-union-test-all-dirs/share/guile/2.0/texinfo/docbook.scm'
`/tmp/guix-tests/store/7y0q8n6zv41lr9viybhihlcmhri6939f-guile-bootstrap-2.0/share/guile/2.0/texinfo/serialize.scm' ~> `/tmp/guix-tests/store/0sgpsn768nn73wblh4iw6wl3bcsfn7dd-union-test-all-dirs/share/guile/2.0/texinfo/serialize.scm'
`/tmp/guix-tests/store/7y0q8n6zv41lr9viybhihlcmhri6939f-guile-bootstrap-2.0/bin/.guile-real' ~> `/tmp/guix-tests/store/0sgpsn768nn73wblh4iw6wl3bcsfn7dd-union-test-all-dirs/bin/.guile-real'
`/tmp/guix-tests/store/7y0q8n6zv41lr9viybhihlcmhri6939f-guile-bootstrap-2.0/bin/guile' ~> `/tmp/guix-tests/store/0sgpsn768nn73wblh4iw6wl3bcsfn7dd-union-test-all-dirs/bin/guile'
`/tmp/guix-tests/store/7y0q8n6zv41lr9viybhihlcmhri6939f-guile-bootstrap-2.0/lib/guile/2.0/ccache/oop/goops.go' ~> `/tmp/guix-tests/store/0sgpsn768nn73wblh4iw6wl3bcsfn7dd-union-test-all-dirs/lib/guile/2.0/ccache/oop/goops.go'
`/tmp/guix-tests/store/7y0q8n6zv41lr9viybhihlcmhri6939f-guile-bootstrap-2.0/lib/guile/2.0/ccache/oop/goops/internal.go' ~> `/tmp/guix-tests/store/0sgpsn768nn73wblh4iw6wl3bcsfn7dd-union-test-all-dirs/lib/guile/2.0/ccache/oop/goops/internal.go'
`/tmp/guix-tests/store/7y0q8n6zv41lr9viybhihlcmhri6939f-guile-bootstrap-2.0/lib/guile/2.0/ccache/oop/goops/simple.go' ~> `/tmp/guix-tests/store/0sgpsn768nn73wblh4iw6wl3bcsfn7dd-union-test-all-dirs/lib/guile/2.0/ccache/oop/goops/simple.go'
`/tmp/guix-tests/store/7y0q8n6zv41lr9viybhihlcmhri6939f-guile-bootstrap-2.0/lib/guile/2.0/ccache/oop/goops/util.go' ~> `/tmp/guix-tests/store/0sgpsn768nn73wblh4iw6wl3bcsfn7dd-union-test-all-dirs/lib/guile/2.0/ccache/oop/goops/util.go'
`/tmp/guix-tests/store/7y0q8n6zv41lr9viybhihlcmhri6939f-guile-bootstrap-2.0/lib/guile/2.0/ccache/oop/goops/compile.go' ~> `/tmp/guix-tests/store/0sgpsn768nn73wblh4iw6wl3bcsfn7dd-union-test-all-dirs/lib/guile/2.0/ccache/oop/goops/compile.go'
`/tmp/guix-tests/store/7y0q8n6zv41lr9viybhihlcmhri6939f-guile-bootstrap-2.0/lib/guile/2.0/ccache/oop/goops/dispatch.go' ~> `/tmp/guix-tests/store/0sgpsn768nn73wblh4iw6wl3bcsfn7dd-union-test-all-dirs/lib/guile/2.0/ccache/oop/goops/dispatch.go'
`/tmp/guix-tests/store/7y0q8n6zv41lr9viybhihlcmhri6939f-guile-bootstrap-2.0/lib/guile/2.0/ccache/oop/goops/active-slot.go' ~> `/tmp/guix-tests/store/0sgpsn768nn73wblh4iw6wl3bcsfn7dd-union-test-all-dirs/lib/guile/2.0/ccache/oop/goops/active-slot.go'
`/tmp/guix-tests/store/7y0q8n6zv41lr9viybhihlcmhri6939f-guile-bootstrap-2.0/lib/guile/2.0/ccache/oop/goops/accessors.go' ~> `/tmp/guix-tests/store/0sgpsn768nn73wblh4iw6wl3bcsfn7dd-union-test-all-dirs/lib/guile/2.0/ccache/oop/goops/accessors.go'
`/tmp/guix-tests/store/7y0q8n6zv41lr9viybhihlcmhri6939f-guile-bootstrap-2.0/lib/guile/2.0/ccache/oop/goops/describe.go' ~> `/tmp/guix-tests/store/0sgpsn768nn73wblh4iw6wl3bcsfn7dd-union-test-all-dirs/lib/guile/2.0/ccache/oop/goops/describe.go'
`/tmp/guix-tests/store/7y0q8n6zv41lr9viybhihlcmhri6939f-guile-bootstrap-2.0/lib/guile/2.0/ccache/oop/goops/stklos.go' ~> `/tmp/guix-tests/store/0sgpsn768nn73wblh4iw6wl3bcsfn7dd-union-test-all-dirs/lib/guile/2.0/ccache/oop/goops/stklos.go'
`/tmp/guix-tests/store/7y0q8n6zv41lr9viybhihlcmhri6939f-guile-bootstrap-2.0/lib/guile/2.0/ccache/oop/goops/composite-slot.go' ~> `/tmp/guix-tests/store/0sgpsn768nn73wblh4iw6wl3bcsfn7dd-union-test-all-dirs/lib/guile/2.0/ccache/oop/goops/composite-slot.go'
`/tmp/guix-tests/store/7y0q8n6zv41lr9viybhihlcmhri6939f-guile-bootstrap-2.0/lib/guile/2.0/ccache/oop/goops/save.go' ~> `/tmp/guix-tests/store/0sgpsn768nn73wblh4iw6wl3bcsfn7dd-union-test-all-dirs/lib/guile/2.0/ccache/oop/goops/save.go'
`/tmp/guix-tests/store/7y0q8n6zv41lr9viybhihlcmhri6939f-guile-bootstrap-2.0/lib/guile/2.0/ccache/texinfo.go' ~> `/tmp/guix-tests/store/0sgpsn768nn73wblh4iw6wl3bcsfn7dd-union-test-all-dirs/lib/guile/2.0/ccache/texinfo.go'
`/tmp/guix-tests/store/7y0q8n6zv41lr9viybhihlcmhri6939f-guile-bootstrap-2.0/lib/guile/2.0/ccache/system/base/pmatch.go' ~> `/tmp/guix-tests/store/0sgpsn768nn73wblh4iw6wl3bcsfn7dd-union-test-all-dirs/lib/guile/2.0/ccache/system/base/pmatch.go'
`/tmp/guix-tests/store/7y0q8n6zv41lr9viybhihlcmhri6939f-guile-bootstrap-2.0/lib/guile/2.0/ccache/system/base/syntax.go' ~> `/tmp/guix-tests/store/0sgpsn768nn73wblh4iw6wl3bcsfn7dd-union-test-all-dirs/lib/guile/2.0/ccache/system/base/syntax.go'
`/tmp/guix-tests/store/7y0q8n6zv41lr9viybhihlcmhri6939f-guile-bootstrap-2.0/lib/guile/2.0/ccache/system/base/target.go' ~> `/tmp/guix-tests/store/0sgpsn768nn73wblh4iw6wl3bcsfn7dd-union-test-all-dirs/lib/guile/2.0/ccache/system/base/target.go'
`/tmp/guix-tests/store/7y0q8n6zv41lr9viybhihlcmhri6939f-guile-bootstrap-2.0/lib/guile/2.0/ccache/system/base/lalr.go' ~> `/tmp/guix-tests/store/0sgpsn768nn73wblh4iw6wl3bcsfn7dd-union-test-all-dirs/lib/guile/2.0/ccache/system/base/lalr.go'
`/tmp/guix-tests/store/7y0q8n6zv41lr9viybhihlcmhri6939f-guile-bootstrap-2.0/lib/guile/2.0/ccache/system/base/compile.go' ~> `/tmp/guix-tests/store/0sgpsn768nn73wblh4iw6wl3bcsfn7dd-union-test-all-dirs/lib/guile/2.0/ccache/system/base/compile.go'
`/tmp/guix-tests/store/7y0q8n6zv41lr9viybhihlcmhri6939f-guile-bootstrap-2.0/lib/guile/2.0/ccache/system/base/ck.go' ~> `/tmp/guix-tests/store/0sgpsn768nn73wblh4iw6wl3bcsfn7dd-union-test-all-dirs/lib/guile/2.0/ccache/system/base/ck.go'
`/tmp/guix-tests/store/7y0q8n6zv41lr9viybhihlcmhri6939f-guile-bootstrap-2.0/lib/guile/2.0/ccache/system/base/language.go' ~> `/tmp/guix-tests/store/0sgpsn768nn73wblh4iw6wl3bcsfn7dd-union-test-all-dirs/lib/guile/2.0/ccache/system/base/language.go'
`/tmp/guix-tests/store/7y0q8n6zv41lr9viybhihlcmhri6939f-guile-bootstrap-2.0/lib/guile/2.0/ccache/system/base/message.go' ~> `/tmp/guix-tests/store/0sgpsn768nn73wblh4iw6wl3bcsfn7dd-union-test-all-dirs/lib/guile/2.0/ccache/system/base/message.go'
`/tmp/guix-tests/store/7y0q8n6zv41lr9viybhihlcmhri6939f-guile-bootstrap-2.0/lib/guile/2.0/ccache/system/vm/trace.go' ~> `/tmp/guix-tests/store/0sgpsn768nn73wblh4iw6wl3bcsfn7dd-union-test-all-dirs/lib/guile/2.0/ccache/system/vm/trace.go'
`/tmp/guix-tests/store/7y0q8n6zv41lr9viybhihlcmhri6939f-guile-bootstrap-2.0/lib/guile/2.0/ccache/system/vm/traps.go' ~> `/tmp/guix-tests/store/0sgpsn768nn73wblh4iw6wl3bcsfn7dd-union-test-all-dirs/lib/guile/2.0/ccache/system/vm/traps.go'
`/tmp/guix-tests/store/7y0q8n6zv41lr9viybhihlcmhri6939f-guile-bootstrap-2.0/lib/guile/2.0/ccache/system/vm/trap-state.go' ~> `/tmp/guix-tests/store/0sgpsn768nn73wblh4iw6wl3bcsfn7dd-union-test-all-dirs/lib/guile/2.0/ccache/system/vm/trap-state.go'
`/tmp/guix-tests/store/7y0q8n6zv41lr9viybhihlcmhri6939f-guile-bootstrap-2.0/lib/guile/2.0/ccache/system/vm/objcode.go' ~> `/tmp/guix-tests/store/0sgpsn768nn73wblh4iw6wl3bcsfn7dd-union-test-all-dirs/lib/guile/2.0/ccache/system/vm/objcode.go'
`/tmp/guix-tests/store/7y0q8n6zv41lr9viybhihlcmhri6939f-guile-bootstrap-2.0/lib/guile/2.0/ccache/system/vm/frame.go' ~> `/tmp/guix-tests/store/0sgpsn768nn73wblh4iw6wl3bcsfn7dd-union-test-all-dirs/lib/guile/2.0/ccache/system/vm/frame.go'
`/tmp/guix-tests/store/7y0q8n6zv41lr9viybhihlcmhri6939f-guile-bootstrap-2.0/lib/guile/2.0/ccache/system/vm/vm.go' ~> `/tmp/guix-tests/store/0sgpsn768nn73wblh4iw6wl3bcsfn7dd-union-test-all-dirs/lib/guile/2.0/ccache/system/vm/vm.go'
`/tmp/guix-tests/store/7y0q8n6zv41lr9viybhihlcmhri6939f-guile-bootstrap-2.0/lib/guile/2.0/ccache/system/vm/coverage.go' ~> `/tmp/guix-tests/store/0sgpsn768nn73wblh4iw6wl3bcsfn7dd-union-test-all-dirs/lib/guile/2.0/ccache/system/vm/coverage.go'
`/tmp/guix-tests/store/7y0q8n6zv41lr9viybhihlcmhri6939f-guile-bootstrap-2.0/lib/guile/2.0/ccache/system/vm/program.go' ~> `/tmp/guix-tests/store/0sgpsn768nn73wblh4iw6wl3bcsfn7dd-union-test-all-dirs/lib/guile/2.0/ccache/system/vm/program.go'
`/tmp/guix-tests/store/7y0q8n6zv41lr9viybhihlcmhri6939f-guile-bootstrap-2.0/lib/guile/2.0/ccache/system/vm/instruction.go' ~> `/tmp/guix-tests/store/0sgpsn768nn73wblh4iw6wl3bcsfn7dd-union-test-all-dirs/lib/guile/2.0/ccache/system/vm/instruction.go'
`/tmp/guix-tests/store/7y0q8n6zv41lr9viybhihlcmhri6939f-guile-bootstrap-2.0/lib/guile/2.0/ccache/system/vm/inspect.go' ~> `/tmp/guix-tests/store/0sgpsn768nn73wblh4iw6wl3bcsfn7dd-union-test-all-dirs/lib/guile/2.0/ccache/system/vm/inspect.go'
`/tmp/guix-tests/store/7y0q8n6zv41lr9viybhihlcmhri6939f-guile-bootstrap-2.0/lib/guile/2.0/ccache/system/foreign.go' ~> `/tmp/guix-tests/store/0sgpsn768nn73wblh4iw6wl3bcsfn7dd-union-test-all-dirs/lib/guile/2.0/ccache/system/foreign.go'
`/tmp/guix-tests/store/7y0q8n6zv41lr9viybhihlcmhri6939f-guile-bootstrap-2.0/lib/guile/2.0/ccache/system/xref.go' ~> `/tmp/guix-tests/store/0sgpsn768nn73wblh4iw6wl3bcsfn7dd-union-test-all-dirs/lib/guile/2.0/ccache/system/xref.go'
`/tmp/guix-tests/store/7y0q8n6zv41lr9viybhihlcmhri6939f-guile-bootstrap-2.0/lib/guile/2.0/ccache/system/repl/command.go' ~> `/tmp/guix-tests/store/0sgpsn768nn73wblh4iw6wl3bcsfn7dd-union-test-all-dirs/lib/guile/2.0/ccache/system/repl/command.go'
`/tmp/guix-tests/store/7y0q8n6zv41lr9viybhihlcmhri6939f-guile-bootstrap-2.0/lib/guile/2.0/ccache/system/repl/repl.go' ~> `/tmp/guix-tests/store/0sgpsn768nn73wblh4iw6wl3bcsfn7dd-union-test-all-dirs/lib/guile/2.0/ccache/system/repl/repl.go'
`/tmp/guix-tests/store/7y0q8n6zv41lr9viybhihlcmhri6939f-guile-bootstrap-2.0/lib/guile/2.0/ccache/system/repl/common.go' ~> `/tmp/guix-tests/store/0sgpsn768nn73wblh4iw6wl3bcsfn7dd-union-test-all-dirs/lib/guile/2.0/ccache/system/repl/common.go'
`/tmp/guix-tests/store/7y0q8n6zv41lr9viybhihlcmhri6939f-guile-bootstrap-2.0/lib/guile/2.0/ccache/system/repl/server.go' ~> `/tmp/guix-tests/store/0sgpsn768nn73wblh4iw6wl3bcsfn7dd-union-test-all-dirs/lib/guile/2.0/ccache/system/repl/server.go'
`/tmp/guix-tests/store/7y0q8n6zv41lr9viybhihlcmhri6939f-guile-bootstrap-2.0/lib/guile/2.0/ccache/system/repl/error-handling.go' ~> `/tmp/guix-tests/store/0sgpsn768nn73wblh4iw6wl3bcsfn7dd-union-test-all-dirs/lib/guile/2.0/ccache/system/repl/error-handling.go'
`/tmp/guix-tests/store/7y0q8n6zv41lr9viybhihlcmhri6939f-guile-bootstrap-2.0/lib/guile/2.0/ccache/system/repl/debug.go' ~> `/tmp/guix-tests/store/0sgpsn768nn73wblh4iw6wl3bcsfn7dd-union-test-all-dirs/lib/guile/2.0/ccache/system/repl/debug.go'
`/tmp/guix-tests/store/7y0q8n6zv41lr9viybhihlcmhri6939f-guile-bootstrap-2.0/lib/guile/2.0/ccache/rnrs.go' ~> `/tmp/guix-tests/store/0sgpsn768nn73wblh4iw6wl3bcsfn7dd-union-test-all-dirs/lib/guile/2.0/ccache/rnrs.go'
`/tmp/guix-tests/store/7y0q8n6zv41lr9viybhihlcmhri6939f-guile-bootstrap-2.0/lib/guile/2.0/ccache/sxml/apply-templates.go' ~> `/tmp/guix-tests/store/0sgpsn768nn73wblh4iw6wl3bcsfn7dd-union-test-all-dirs/lib/guile/2.0/ccache/sxml/apply-templates.go'
`/tmp/guix-tests/store/7y0q8n6zv41lr9viybhihlcmhri6939f-guile-bootstrap-2.0/lib/guile/2.0/ccache/sxml/simple.go' ~> `/tmp/guix-tests/store/0sgpsn768nn73wblh4iw6wl3bcsfn7dd-union-test-all-dirs/lib/guile/2.0/ccache/sxml/simple.go'
`/tmp/guix-tests/store/7y0q8n6zv41lr9viybhihlcmhri6939f-guile-bootstrap-2.0/lib/guile/2.0/ccache/sxml/fold.go' ~> `/tmp/guix-tests/store/0sgpsn768nn73wblh4iw6wl3bcsfn7dd-union-test-all-dirs/lib/guile/2.0/ccache/sxml/fold.go'
`/tmp/guix-tests/store/7y0q8n6zv41lr9viybhihlcmhri6939f-guile-bootstrap-2.0/lib/guile/2.0/ccache/sxml/xpath.go' ~> `/tmp/guix-tests/store/0sgpsn768nn73wblh4iw6wl3bcsfn7dd-union-test-all-dirs/lib/guile/2.0/ccache/sxml/xpath.go'
`/tmp/guix-tests/store/7y0q8n6zv41lr9viybhihlcmhri6939f-guile-bootstrap-2.0/lib/guile/2.0/ccache/sxml/transform.go' ~> `/tmp/guix-tests/store/0sgpsn768nn73wblh4iw6wl3bcsfn7dd-union-test-all-dirs/lib/guile/2.0/ccache/sxml/transform.go'
`/tmp/guix-tests/store/7y0q8n6zv41lr9viybhihlcmhri6939f-guile-bootstrap-2.0/lib/guile/2.0/ccache/sxml/ssax.go' ~> `/tmp/guix-tests/store/0sgpsn768nn73wblh4iw6wl3bcsfn7dd-union-test-all-dirs/lib/guile/2.0/ccache/sxml/ssax.go'
`/tmp/guix-tests/store/7y0q8n6zv41lr9viybhihlcmhri6939f-guile-bootstrap-2.0/lib/guile/2.0/ccache/sxml/ssax/input-parse.go' ~> `/tmp/guix-tests/store/0sgpsn768nn73wblh4iw6wl3bcsfn7dd-union-test-all-dirs/lib/guile/2.0/ccache/sxml/ssax/input-parse.go'
`/tmp/guix-tests/store/7y0q8n6zv41lr9viybhihlcmhri6939f-guile-bootstrap-2.0/lib/guile/2.0/ccache/sxml/match.go' ~> `/tmp/guix-tests/store/0sgpsn768nn73wblh4iw6wl3bcsfn7dd-union-test-all-dirs/lib/guile/2.0/ccache/sxml/match.go'
`/tmp/guix-tests/store/7y0q8n6zv41lr9viybhihlcmhri6939f-guile-bootstrap-2.0/lib/guile/2.0/ccache/ice-9/q.go' ~> `/tmp/guix-tests/store/0sgpsn768nn73wblh4iw6wl3bcsfn7dd-union-test-all-dirs/lib/guile/2.0/ccache/ice-9/q.go'
`/tmp/guix-tests/store/7y0q8n6zv41lr9viybhihlcmhri6939f-guile-bootstrap-2.0/lib/guile/2.0/ccache/ice-9/receive.go' ~> `/tmp/guix-tests/store/0sgpsn768nn73wblh4iw6wl3bcsfn7dd-union-test-all-dirs/lib/guile/2.0/ccache/ice-9/receive.go'
`/tmp/guix-tests/store/7y0q8n6zv41lr9viybhihlcmhri6939f-guile-bootstrap-2.0/lib/guile/2.0/ccache/ice-9/boot-9.go' ~> `/tmp/guix-tests/store/0sgpsn768nn73wblh4iw6wl3bcsfn7dd-union-test-all-dirs/lib/guile/2.0/ccache/ice-9/boot-9.go'
`/tmp/guix-tests/store/7y0q8n6zv41lr9viybhihlcmhri6939f-guile-bootstrap-2.0/lib/guile/2.0/ccache/ice-9/rw.go' ~> `/tmp/guix-tests/store/0sgpsn768nn73wblh4iw6wl3bcsfn7dd-union-test-all-dirs/lib/guile/2.0/ccache/ice-9/rw.go'
`/tmp/guix-tests/store/7y0q8n6zv41lr9viybhihlcmhri6939f-guile-bootstrap-2.0/lib/guile/2.0/ccache/ice-9/ls.go' ~> `/tmp/guix-tests/store/0sgpsn768nn73wblh4iw6wl3bcsfn7dd-union-test-all-dirs/lib/guile/2.0/ccache/ice-9/ls.go'
`/tmp/guix-tests/store/7y0q8n6zv41lr9viybhihlcmhri6939f-guile-bootstrap-2.0/lib/guile/2.0/ccache/ice-9/networking.go' ~> `/tmp/guix-tests/store/0sgpsn768nn73wblh4iw6wl3bcsfn7dd-union-test-all-dirs/lib/guile/2.0/ccache/ice-9/networking.go'
`/tmp/guix-tests/store/7y0q8n6zv41lr9viybhihlcmhri6939f-guile-bootstrap-2.0/lib/guile/2.0/ccache/ice-9/save-stack.go' ~> `/tmp/guix-tests/store/0sgpsn768nn73wblh4iw6wl3bcsfn7dd-union-test-all-dirs/lib/guile/2.0/ccache/ice-9/save-stack.go'
`/tmp/guix-tests/store/7y0q8n6zv41lr9viybhihlcmhri6939f-guile-bootstrap-2.0/lib/guile/2.0/ccache/ice-9/channel.go' ~> `/tmp/guix-tests/store/0sgpsn768nn73wblh4iw6wl3bcsfn7dd-union-test-all-dirs/lib/guile/2.0/ccache/ice-9/channel.go'
`/tmp/guix-tests/store/7y0q8n6zv41lr9viybhihlcmhri6939f-guile-bootstrap-2.0/lib/guile/2.0/ccache/ice-9/mapping.go' ~> `/tmp/guix-tests/store/0sgpsn768nn73wblh4iw6wl3bcsfn7dd-union-test-all-dirs/lib/guile/2.0/ccache/ice-9/mapping.go'
`/tmp/guix-tests/store/7y0q8n6zv41lr9viybhihlcmhri6939f-guile-bootstrap-2.0/lib/guile/2.0/ccache/ice-9/string-fun.go' ~> `/tmp/guix-tests/store/0sgpsn768nn73wblh4iw6wl3bcsfn7dd-union-test-all-dirs/lib/guile/2.0/ccache/ice-9/string-fun.go'
`/tmp/guix-tests/store/7y0q8n6zv41lr9viybhihlcmhri6939f-guile-bootstrap-2.0/lib/guile/2.0/ccache/ice-9/control.go' ~> `/tmp/guix-tests/store/0sgpsn768nn73wblh4iw6wl3bcsfn7dd-union-test-all-dirs/lib/guile/2.0/ccache/ice-9/control.go'
`/tmp/guix-tests/store/7y0q8n6zv41lr9viybhihlcmhri6939f-guile-bootstrap-2.0/lib/guile/2.0/ccache/ice-9/poll.go' ~> `/tmp/guix-tests/store/0sgpsn768nn73wblh4iw6wl3bcsfn7dd-union-test-all-dirs/lib/guile/2.0/ccache/ice-9/poll.go'
`/tmp/guix-tests/store/7y0q8n6zv41lr9viybhihlcmhri6939f-guile-bootstrap-2.0/lib/guile/2.0/ccache/ice-9/streams.go' ~> `/tmp/guix-tests/store/0sgpsn768nn73wblh4iw6wl3bcsfn7dd-union-test-all-dirs/lib/guile/2.0/ccache/ice-9/streams.go'
`/tmp/guix-tests/store/7y0q8n6zv41lr9viybhihlcmhri6939f-guile-bootstrap-2.0/lib/guile/2.0/ccache/ice-9/eval-string.go' ~> `/tmp/guix-tests/store/0sgpsn768nn73wblh4iw6wl3bcsfn7dd-union-test-all-dirs/lib/guile/2.0/ccache/ice-9/eval-string.go'
`/tmp/guix-tests/store/7y0q8n6zv41lr9viybhihlcmhri6939f-guile-bootstrap-2.0/lib/guile/2.0/ccache/ice-9/psyntax-pp.go' ~> `/tmp/guix-tests/store/0sgpsn768nn73wblh4iw6wl3bcsfn7dd-union-test-all-dirs/lib/guile/2.0/ccache/ice-9/psyntax-pp.go'
`/tmp/guix-tests/store/7y0q8n6zv41lr9viybhihlcmhri6939f-guile-bootstrap-2.0/lib/guile/2.0/ccache/ice-9/eval.go' ~> `/tmp/guix-tests/store/0sgpsn768nn73wblh4iw6wl3bcsfn7dd-union-test-all-dirs/lib/guile/2.0/ccache/ice-9/eval.go'
`/tmp/guix-tests/store/7y0q8n6zv41lr9viybhihlcmhri6939f-guile-bootstrap-2.0/lib/guile/2.0/ccache/ice-9/match.go' ~> `/tmp/guix-tests/store/0sgpsn768nn73wblh4iw6wl3bcsfn7dd-union-test-all-dirs/lib/guile/2.0/ccache/ice-9/match.go'
`/tmp/guix-tests/store/7y0q8n6zv41lr9viybhihlcmhri6939f-guile-bootstrap-2.0/lib/guile/2.0/ccache/ice-9/documentation.go' ~> `/tmp/guix-tests/store/0sgpsn768nn73wblh4iw6wl3bcsfn7dd-union-test-all-dirs/lib/guile/2.0/ccache/ice-9/documentation.go'
`/tmp/guix-tests/store/7y0q8n6zv41lr9viybhihlcmhri6939f-guile-bootstrap-2.0/lib/guile/2.0/ccache/ice-9/weak-vector.go' ~> `/tmp/guix-tests/store/0sgpsn768nn73wblh4iw6wl3bcsfn7dd-union-test-all-dirs/lib/guile/2.0/ccache/ice-9/weak-vector.go'
`/tmp/guix-tests/store/7y0q8n6zv41lr9viybhihlcmhri6939f-guile-bootstrap-2.0/lib/guile/2.0/ccache/ice-9/debug.go' ~> `/tmp/guix-tests/store/0sgpsn768nn73wblh4iw6wl3bcsfn7dd-union-test-all-dirs/lib/guile/2.0/ccache/ice-9/debug.go'
`/tmp/guix-tests/store/7y0q8n6zv41lr9viybhihlcmhri6939f-guile-bootstrap-2.0/lib/guile/2.0/ccache/ice-9/occam-channel.go' ~> `/tmp/guix-tests/store/0sgpsn768nn73wblh4iw6wl3bcsfn7dd-union-test-all-dirs/lib/guile/2.0/ccache/ice-9/occam-channel.go'
`/tmp/guix-tests/store/7y0q8n6zv41lr9viybhihlcmhri6939f-guile-bootstrap-2.0/lib/guile/2.0/ccache/ice-9/posix.go' ~> `/tmp/guix-tests/store/0sgpsn768nn73wblh4iw6wl3bcsfn7dd-union-test-all-dirs/lib/guile/2.0/ccache/ice-9/posix.go'
`/tmp/guix-tests/store/7y0q8n6zv41lr9viybhihlcmhri6939f-guile-bootstrap-2.0/lib/guile/2.0/ccache/ice-9/common-list.go' ~> `/tmp/guix-tests/store/0sgpsn768nn73wblh4iw6wl3bcsfn7dd-union-test-all-dirs/lib/guile/2.0/ccache/ice-9/common-list.go'
`/tmp/guix-tests/store/7y0q8n6zv41lr9viybhihlcmhri6939f-guile-bootstrap-2.0/lib/guile/2.0/ccache/ice-9/null.go' ~> `/tmp/guix-tests/store/0sgpsn768nn73wblh4iw6wl3bcsfn7dd-union-test-all-dirs/lib/guile/2.0/ccache/ice-9/null.go'
`/tmp/guix-tests/store/7y0q8n6zv41lr9viybhihlcmhri6939f-guile-bootstrap-2.0/lib/guile/2.0/ccache/ice-9/top-repl.go' ~> `/tmp/guix-tests/store/0sgpsn768nn73wblh4iw6wl3bcsfn7dd-union-test-all-dirs/lib/guile/2.0/ccache/ice-9/top-repl.go'
`/tmp/guix-tests/store/7y0q8n6zv41lr9viybhihlcmhri6939f-guile-bootstrap-2.0/lib/guile/2.0/ccache/ice-9/r5rs.go' ~> `/tmp/guix-tests/store/0sgpsn768nn73wblh4iw6wl3bcsfn7dd-union-test-all-dirs/lib/guile/2.0/ccache/ice-9/r5rs.go'
`/tmp/guix-tests/store/7y0q8n6zv41lr9viybhihlcmhri6939f-guile-bootstrap-2.0/lib/guile/2.0/ccache/ice-9/runq.go' ~> `/tmp/guix-tests/store/0sgpsn768nn73wblh4iw6wl3bcsfn7dd-union-test-all-dirs/lib/guile/2.0/ccache/ice-9/runq.go'
`/tmp/guix-tests/store/7y0q8n6zv41lr9viybhihlcmhri6939f-guile-bootstrap-2.0/lib/guile/2.0/ccache/ice-9/local-eval.go' ~> `/tmp/guix-tests/store/0sgpsn768nn73wblh4iw6wl3bcsfn7dd-union-test-all-dirs/lib/guile/2.0/ccache/ice-9/local-eval.go'
`/tmp/guix-tests/store/7y0q8n6zv41lr9viybhihlcmhri6939f-guile-bootstrap-2.0/lib/guile/2.0/ccache/ice-9/ftw.go' ~> `/tmp/guix-tests/store/0sgpsn768nn73wblh4iw6wl3bcsfn7dd-union-test-all-dirs/lib/guile/2.0/ccache/ice-9/ftw.go'
`/tmp/guix-tests/store/7y0q8n6zv41lr9viybhihlcmhri6939f-guile-bootstrap-2.0/lib/guile/2.0/ccache/ice-9/serialize.go' ~> `/tmp/guix-tests/store/0sgpsn768nn73wblh4iw6wl3bcsfn7dd-union-test-all-dirs/lib/guile/2.0/ccache/ice-9/serialize.go'
`/tmp/guix-tests/store/7y0q8n6zv41lr9viybhihlcmhri6939f-guile-bootstrap-2.0/lib/guile/2.0/ccache/ice-9/slib.go' ~> `/tmp/guix-tests/store/0sgpsn768nn73wblh4iw6wl3bcsfn7dd-union-test-all-dirs/lib/guile/2.0/ccache/ice-9/slib.go'
`/tmp/guix-tests/store/7y0q8n6zv41lr9viybhihlcmhri6939f-guile-bootstrap-2.0/lib/guile/2.0/ccache/ice-9/pretty-print.go' ~> `/tmp/guix-tests/store/0sgpsn768nn73wblh4iw6wl3bcsfn7dd-union-test-all-dirs/lib/guile/2.0/ccache/ice-9/pretty-print.go'
`/tmp/guix-tests/store/7y0q8n6zv41lr9viybhihlcmhri6939f-guile-bootstrap-2.0/lib/guile/2.0/ccache/ice-9/lineio.go' ~> `/tmp/guix-tests/store/0sgpsn768nn73wblh4iw6wl3bcsfn7dd-union-test-all-dirs/lib/guile/2.0/ccache/ice-9/lineio.go'
`/tmp/guix-tests/store/7y0q8n6zv41lr9viybhihlcmhri6939f-guile-bootstrap-2.0/lib/guile/2.0/ccache/ice-9/history.go' ~> `/tmp/guix-tests/store/0sgpsn768nn73wblh4iw6wl3bcsfn7dd-union-test-all-dirs/lib/guile/2.0/ccache/ice-9/history.go'
`/tmp/guix-tests/store/7y0q8n6zv41lr9viybhihlcmhri6939f-guile-bootstrap-2.0/lib/guile/2.0/ccache/ice-9/readline.go' ~> `/tmp/guix-tests/store/0sgpsn768nn73wblh4iw6wl3bcsfn7dd-union-test-all-dirs/lib/guile/2.0/ccache/ice-9/readline.go'
`/tmp/guix-tests/store/7y0q8n6zv41lr9viybhihlcmhri6939f-guile-bootstrap-2.0/lib/guile/2.0/ccache/ice-9/threads.go' ~> `/tmp/guix-tests/store/0sgpsn768nn73wblh4iw6wl3bcsfn7dd-union-test-all-dirs/lib/guile/2.0/ccache/ice-9/threads.go'
`/tmp/guix-tests/store/7y0q8n6zv41lr9viybhihlcmhri6939f-guile-bootstrap-2.0/lib/guile/2.0/ccache/ice-9/calling.go' ~> `/tmp/guix-tests/store/0sgpsn768nn73wblh4iw6wl3bcsfn7dd-union-test-all-dirs/lib/guile/2.0/ccache/ice-9/calling.go'
`/tmp/guix-tests/store/7y0q8n6zv41lr9viybhihlcmhri6939f-guile-bootstrap-2.0/lib/guile/2.0/ccache/ice-9/optargs.go' ~> `/tmp/guix-tests/store/0sgpsn768nn73wblh4iw6wl3bcsfn7dd-union-test-all-dirs/lib/guile/2.0/ccache/ice-9/optargs.go'
`/tmp/guix-tests/store/7y0q8n6zv41lr9viybhihlcmhri6939f-guile-bootstrap-2.0/lib/guile/2.0/ccache/ice-9/gap-buffer.go' ~> `/tmp/guix-tests/store/0sgpsn768nn73wblh4iw6wl3bcsfn7dd-union-test-all-dirs/lib/guile/2.0/ccache/ice-9/gap-buffer.go'
`/tmp/guix-tests/store/7y0q8n6zv41lr9viybhihlcmhri6939f-guile-bootstrap-2.0/lib/guile/2.0/ccache/ice-9/deprecated.go' ~> `/tmp/guix-tests/store/0sgpsn768nn73wblh4iw6wl3bcsfn7dd-union-test-all-dirs/lib/guile/2.0/ccache/ice-9/deprecated.go'
`/tmp/guix-tests/store/7y0q8n6zv41lr9viybhihlcmhri6939f-guile-bootstrap-2.0/lib/guile/2.0/ccache/ice-9/regex.go' ~> `/tmp/guix-tests/store/0sgpsn768nn73wblh4iw6wl3bcsfn7dd-union-test-all-dirs/lib/guile/2.0/ccache/ice-9/regex.go'
`/tmp/guix-tests/store/7y0q8n6zv41lr9viybhihlcmhri6939f-guile-bootstrap-2.0/lib/guile/2.0/ccache/ice-9/time.go' ~> `/tmp/guix-tests/store/0sgpsn768nn73wblh4iw6wl3bcsfn7dd-union-test-all-dirs/lib/guile/2.0/ccache/ice-9/time.go'
`/tmp/guix-tests/store/7y0q8n6zv41lr9viybhihlcmhri6939f-guile-bootstrap-2.0/lib/guile/2.0/ccache/ice-9/binary-ports.go' ~> `/tmp/guix-tests/store/0sgpsn768nn73wblh4iw6wl3bcsfn7dd-union-test-all-dirs/lib/guile/2.0/ccache/ice-9/binary-ports.go'
`/tmp/guix-tests/store/7y0q8n6zv41lr9viybhihlcmhri6939f-guile-bootstrap-2.0/lib/guile/2.0/ccache/ice-9/poe.go' ~> `/tmp/guix-tests/store/0sgpsn768nn73wblh4iw6wl3bcsfn7dd-union-test-all-dirs/lib/guile/2.0/ccache/ice-9/poe.go'
`/tmp/guix-tests/store/7y0q8n6zv41lr9viybhihlcmhri6939f-guile-bootstrap-2.0/lib/guile/2.0/ccache/ice-9/and-let-star.go' ~> `/tmp/guix-tests/store/0sgpsn768nn73wblh4iw6wl3bcsfn7dd-union-test-all-dirs/lib/guile/2.0/ccache/ice-9/and-let-star.go'
`/tmp/guix-tests/store/7y0q8n6zv41lr9viybhihlcmhri6939f-guile-bootstrap-2.0/lib/guile/2.0/ccache/ice-9/futures.go' ~> `/tmp/guix-tests/store/0sgpsn768nn73wblh4iw6wl3bcsfn7dd-union-test-all-dirs/lib/guile/2.0/ccache/ice-9/futures.go'
`/tmp/guix-tests/store/7y0q8n6zv41lr9viybhihlcmhri6939f-guile-bootstrap-2.0/lib/guile/2.0/ccache/ice-9/popen.go' ~> `/tmp/guix-tests/store/0sgpsn768nn73wblh4iw6wl3bcsfn7dd-union-test-all-dirs/lib/guile/2.0/ccache/ice-9/popen.go'
`/tmp/guix-tests/store/7y0q8n6zv41lr9viybhihlcmhri6939f-guile-bootstrap-2.0/lib/guile/2.0/ccache/ice-9/curried-definitions.go' ~> `/tmp/guix-tests/store/0sgpsn768nn73wblh4iw6wl3bcsfn7dd-union-test-all-dirs/lib/guile/2.0/ccache/ice-9/curried-definitions.go'
`/tmp/guix-tests/store/7y0q8n6zv41lr9viybhihlcmhri6939f-guile-bootstrap-2.0/lib/guile/2.0/ccache/ice-9/vlist.go' ~> `/tmp/guix-tests/store/0sgpsn768nn73wblh4iw6wl3bcsfn7dd-union-test-all-dirs/lib/guile/2.0/ccache/ice-9/vlist.go'
`/tmp/guix-tests/store/7y0q8n6zv41lr9viybhihlcmhri6939f-guile-bootstrap-2.0/lib/guile/2.0/ccache/ice-9/safe-r5rs.go' ~> `/tmp/guix-tests/store/0sgpsn768nn73wblh4iw6wl3bcsfn7dd-union-test-all-dirs/lib/guile/2.0/ccache/ice-9/safe-r5rs.go'
`/tmp/guix-tests/store/7y0q8n6zv41lr9viybhihlcmhri6939f-guile-bootstrap-2.0/lib/guile/2.0/ccache/ice-9/scm-style-repl.go' ~> `/tmp/guix-tests/store/0sgpsn768nn73wblh4iw6wl3bcsfn7dd-union-test-all-dirs/lib/guile/2.0/ccache/ice-9/scm-style-repl.go'
`/tmp/guix-tests/store/7y0q8n6zv41lr9viybhihlcmhri6939f-guile-bootstrap-2.0/lib/guile/2.0/ccache/ice-9/stack-catch.go' ~> `/tmp/guix-tests/store/0sgpsn768nn73wblh4iw6wl3bcsfn7dd-union-test-all-dirs/lib/guile/2.0/ccache/ice-9/stack-catch.go'
`/tmp/guix-tests/store/7y0q8n6zv41lr9viybhihlcmhri6939f-guile-bootstrap-2.0/lib/guile/2.0/ccache/ice-9/session.go' ~> `/tmp/guix-tests/store/0sgpsn768nn73wblh4iw6wl3bcsfn7dd-union-test-all-dirs/lib/guile/2.0/ccache/ice-9/session.go'
`/tmp/guix-tests/store/7y0q8n6zv41lr9viybhihlcmhri6939f-guile-bootstrap-2.0/lib/guile/2.0/ccache/ice-9/hcons.go' ~> `/tmp/guix-tests/store/0sgpsn768nn73wblh4iw6wl3bcsfn7dd-union-test-all-dirs/lib/guile/2.0/ccache/ice-9/hcons.go'
`/tmp/guix-tests/store/7y0q8n6zv41lr9viybhihlcmhri6939f-guile-bootstrap-2.0/lib/guile/2.0/ccache/ice-9/buffered-input.go' ~> `/tmp/guix-tests/store/0sgpsn768nn73wblh4iw6wl3bcsfn7dd-union-test-all-dirs/lib/guile/2.0/ccache/ice-9/buffered-input.go'
`/tmp/guix-tests/store/7y0q8n6zv41lr9viybhihlcmhri6939f-guile-bootstrap-2.0/lib/guile/2.0/ccache/ice-9/list.go' ~> `/tmp/guix-tests/store/0sgpsn768nn73wblh4iw6wl3bcsfn7dd-union-test-all-dirs/lib/guile/2.0/ccache/ice-9/list.go'
`/tmp/guix-tests/store/7y0q8n6zv41lr9viybhihlcmhri6939f-guile-bootstrap-2.0/lib/guile/2.0/ccache/ice-9/getopt-long.go' ~> `/tmp/guix-tests/store/0sgpsn768nn73wblh4iw6wl3bcsfn7dd-union-test-all-dirs/lib/guile/2.0/ccache/ice-9/getopt-long.go'
`/tmp/guix-tests/store/7y0q8n6zv41lr9viybhihlcmhri6939f-guile-bootstrap-2.0/lib/guile/2.0/ccache/ice-9/syncase.go' ~> `/tmp/guix-tests/store/0sgpsn768nn73wblh4iw6wl3bcsfn7dd-union-test-all-dirs/lib/guile/2.0/ccache/ice-9/syncase.go'
`/tmp/guix-tests/store/7y0q8n6zv41lr9viybhihlcmhri6939f-guile-bootstrap-2.0/lib/guile/2.0/ccache/ice-9/i18n.go' ~> `/tmp/guix-tests/store/0sgpsn768nn73wblh4iw6wl3bcsfn7dd-union-test-all-dirs/lib/guile/2.0/ccache/ice-9/i18n.go'
`/tmp/guix-tests/store/7y0q8n6zv41lr9viybhihlcmhri6939f-guile-bootstrap-2.0/lib/guile/2.0/ccache/ice-9/format.go' ~> `/tmp/guix-tests/store/0sgpsn768nn73wblh4iw6wl3bcsfn7dd-union-test-all-dirs/lib/guile/2.0/ccache/ice-9/format.go'
`/tmp/guix-tests/store/7y0q8n6zv41lr9viybhihlcmhri6939f-guile-bootstrap-2.0/lib/guile/2.0/ccache/ice-9/expect.go' ~> `/tmp/guix-tests/store/0sgpsn768nn73wblh4iw6wl3bcsfn7dd-union-test-all-dirs/lib/guile/2.0/ccache/ice-9/expect.go'
`/tmp/guix-tests/store/7y0q8n6zv41lr9viybhihlcmhri6939f-guile-bootstrap-2.0/lib/guile/2.0/ccache/ice-9/rdelim.go' ~> `/tmp/guix-tests/store/0sgpsn768nn73wblh4iw6wl3bcsfn7dd-union-test-all-dirs/lib/guile/2.0/ccache/ice-9/rdelim.go'
`/tmp/guix-tests/store/7y0q8n6zv41lr9viybhihlcmhri6939f-guile-bootstrap-2.0/lib/guile/2.0/ccache/ice-9/r4rs.go' ~> `/tmp/guix-tests/store/0sgpsn768nn73wblh4iw6wl3bcsfn7dd-union-test-all-dirs/lib/guile/2.0/ccache/ice-9/r4rs.go'
`/tmp/guix-tests/store/7y0q8n6zv41lr9viybhihlcmhri6939f-guile-bootstrap-2.0/lib/guile/2.0/ccache/ice-9/iconv.go' ~> `/tmp/guix-tests/store/0sgpsn768nn73wblh4iw6wl3bcsfn7dd-union-test-all-dirs/lib/guile/2.0/ccache/ice-9/iconv.go'
`/tmp/guix-tests/store/7y0q8n6zv41lr9viybhihlcmhri6939f-guile-bootstrap-2.0/lib/guile/2.0/ccache/ice-9/command-line.go' ~> `/tmp/guix-tests/store/0sgpsn768nn73wblh4iw6wl3bcsfn7dd-union-test-all-dirs/lib/guile/2.0/ccache/ice-9/command-line.go'
`/tmp/guix-tests/store/7y0q8n6zv41lr9viybhihlcmhri6939f-guile-bootstrap-2.0/lib/guile/2.0/ccache/ice-9/safe.go' ~> `/tmp/guix-tests/store/0sgpsn768nn73wblh4iw6wl3bcsfn7dd-union-test-all-dirs/lib/guile/2.0/ccache/ice-9/safe.go'
`/tmp/guix-tests/store/7y0q8n6zv41lr9viybhihlcmhri6939f-guile-bootstrap-2.0/lib/guile/2.0/ccache/language/glil.go' ~> `/tmp/guix-tests/store/0sgpsn768nn73wblh4iw6wl3bcsfn7dd-union-test-all-dirs/lib/guile/2.0/ccache/language/glil.go'
`/tmp/guix-tests/store/7y0q8n6zv41lr9viybhihlcmhri6939f-guile-bootstrap-2.0/lib/guile/2.0/ccache/language/tree-il.go' ~> `/tmp/guix-tests/store/0sgpsn768nn73wblh4iw6wl3bcsfn7dd-union-test-all-dirs/lib/guile/2.0/ccache/language/tree-il.go'
`/tmp/guix-tests/store/7y0q8n6zv41lr9viybhihlcmhri6939f-guile-bootstrap-2.0/lib/guile/2.0/ccache/language/value/spec.go' ~> `/tmp/guix-tests/store/0sgpsn768nn73wblh4iw6wl3bcsfn7dd-union-test-all-dirs/lib/guile/2.0/ccache/language/value/spec.go'
`/tmp/guix-tests/store/7y0q8n6zv41lr9viybhihlcmhri6939f-guile-bootstrap-2.0/lib/guile/2.0/ccache/language/assembly.go' ~> `/tmp/guix-tests/store/0sgpsn768nn73wblh4iw6wl3bcsfn7dd-union-test-all-dirs/lib/guile/2.0/ccache/language/assembly.go'
`/tmp/guix-tests/store/7y0q8n6zv41lr9viybhihlcmhri6939f-guile-bootstrap-2.0/lib/guile/2.0/ccache/language/assembly/disassemble.go' ~> `/tmp/guix-tests/store/0sgpsn768nn73wblh4iw6wl3bcsfn7dd-union-test-all-dirs/lib/guile/2.0/ccache/language/assembly/disassemble.go'
`/tmp/guix-tests/store/7y0q8n6zv41lr9viybhihlcmhri6939f-guile-bootstrap-2.0/lib/guile/2.0/ccache/language/assembly/spec.go' ~> `/tmp/guix-tests/store/0sgpsn768nn73wblh4iw6wl3bcsfn7dd-union-test-all-dirs/lib/guile/2.0/ccache/language/assembly/spec.go'
`/tmp/guix-tests/store/7y0q8n6zv41lr9viybhihlcmhri6939f-guile-bootstrap-2.0/lib/guile/2.0/ccache/language/assembly/compile-bytecode.go' ~> `/tmp/guix-tests/store/0sgpsn768nn73wblh4iw6wl3bcsfn7dd-union-test-all-dirs/lib/guile/2.0/ccache/language/assembly/compile-bytecode.go'
`/tmp/guix-tests/store/7y0q8n6zv41lr9viybhihlcmhri6939f-guile-bootstrap-2.0/lib/guile/2.0/ccache/language/assembly/decompile-bytecode.go' ~> `/tmp/guix-tests/store/0sgpsn768nn73wblh4iw6wl3bcsfn7dd-union-test-all-dirs/lib/guile/2.0/ccache/language/assembly/decompile-bytecode.go'
`/tmp/guix-tests/store/7y0q8n6zv41lr9viybhihlcmhri6939f-guile-bootstrap-2.0/lib/guile/2.0/ccache/language/scheme/decompile-tree-il.go' ~> `/tmp/guix-tests/store/0sgpsn768nn73wblh4iw6wl3bcsfn7dd-union-test-all-dirs/lib/guile/2.0/ccache/language/scheme/decompile-tree-il.go'
`/tmp/guix-tests/store/7y0q8n6zv41lr9viybhihlcmhri6939f-guile-bootstrap-2.0/lib/guile/2.0/ccache/language/scheme/compile-tree-il.go' ~> `/tmp/guix-tests/store/0sgpsn768nn73wblh4iw6wl3bcsfn7dd-union-test-all-dirs/lib/guile/2.0/ccache/language/scheme/compile-tree-il.go'
`/tmp/guix-tests/store/7y0q8n6zv41lr9viybhihlcmhri6939f-guile-bootstrap-2.0/lib/guile/2.0/ccache/language/scheme/spec.go' ~> `/tmp/guix-tests/store/0sgpsn768nn73wblh4iw6wl3bcsfn7dd-union-test-all-dirs/lib/guile/2.0/ccache/language/scheme/spec.go'
`/tmp/guix-tests/store/7y0q8n6zv41lr9viybhihlcmhri6939f-guile-bootstrap-2.0/lib/guile/2.0/ccache/language/objcode/spec.go' ~> `/tmp/guix-tests/store/0sgpsn768nn73wblh4iw6wl3bcsfn7dd-union-test-all-dirs/lib/guile/2.0/ccache/language/objcode/spec.go'
`/tmp/guix-tests/store/7y0q8n6zv41lr9viybhihlcmhri6939f-guile-bootstrap-2.0/lib/guile/2.0/ccache/language/tree-il/effects.go' ~> `/tmp/guix-tests/store/0sgpsn768nn73wblh4iw6wl3bcsfn7dd-union-test-all-dirs/lib/guile/2.0/ccache/language/tree-il/effects.go'
`/tmp/guix-tests/store/7y0q8n6zv41lr9viybhihlcmhri6939f-guile-bootstrap-2.0/lib/guile/2.0/ccache/language/tree-il/fix-letrec.go' ~> `/tmp/guix-tests/store/0sgpsn768nn73wblh4iw6wl3bcsfn7dd-union-test-all-dirs/lib/guile/2.0/ccache/language/tree-il/fix-letrec.go'
`/tmp/guix-tests/store/7y0q8n6zv41lr9viybhihlcmhri6939f-guile-bootstrap-2.0/lib/guile/2.0/ccache/language/tree-il/inline.go' ~> `/tmp/guix-tests/store/0sgpsn768nn73wblh4iw6wl3bcsfn7dd-union-test-all-dirs/lib/guile/2.0/ccache/language/tree-il/inline.go'
`/tmp/guix-tests/store/7y0q8n6zv41lr9viybhihlcmhri6939f-guile-bootstrap-2.0/lib/guile/2.0/ccache/language/tree-il/canonicalize.go' ~> `/tmp/guix-tests/store/0sgpsn768nn73wblh4iw6wl3bcsfn7dd-union-test-all-dirs/lib/guile/2.0/ccache/language/tree-il/canonicalize.go'
`/tmp/guix-tests/store/7y0q8n6zv41lr9viybhihlcmhri6939f-guile-bootstrap-2.0/lib/guile/2.0/ccache/language/tree-il/compile-glil.go' ~> `/tmp/guix-tests/store/0sgpsn768nn73wblh4iw6wl3bcsfn7dd-union-test-all-dirs/lib/guile/2.0/ccache/language/tree-il/compile-glil.go'
`/tmp/guix-tests/store/7y0q8n6zv41lr9viybhihlcmhri6939f-guile-bootstrap-2.0/lib/guile/2.0/ccache/language/tree-il/analyze.go' ~> `/tmp/guix-tests/store/0sgpsn768nn73wblh4iw6wl3bcsfn7dd-union-test-all-dirs/lib/guile/2.0/ccache/language/tree-il/analyze.go'
`/tmp/guix-tests/store/7y0q8n6zv41lr9viybhihlcmhri6939f-guile-bootstrap-2.0/lib/guile/2.0/ccache/language/tree-il/cse.go' ~> `/tmp/guix-tests/store/0sgpsn768nn73wblh4iw6wl3bcsfn7dd-union-test-all-dirs/lib/guile/2.0/ccache/language/tree-il/cse.go'
`/tmp/guix-tests/store/7y0q8n6zv41lr9viybhihlcmhri6939f-guile-bootstrap-2.0/lib/guile/2.0/ccache/language/tree-il/peval.go' ~> `/tmp/guix-tests/store/0sgpsn768nn73wblh4iw6wl3bcsfn7dd-union-test-all-dirs/lib/guile/2.0/ccache/language/tree-il/peval.go'
`/tmp/guix-tests/store/7y0q8n6zv41lr9viybhihlcmhri6939f-guile-bootstrap-2.0/lib/guile/2.0/ccache/language/tree-il/optimize.go' ~> `/tmp/guix-tests/store/0sgpsn768nn73wblh4iw6wl3bcsfn7dd-union-test-all-dirs/lib/guile/2.0/ccache/language/tree-il/optimize.go'
`/tmp/guix-tests/store/7y0q8n6zv41lr9viybhihlcmhri6939f-guile-bootstrap-2.0/lib/guile/2.0/ccache/language/tree-il/primitives.go' ~> `/tmp/guix-tests/store/0sgpsn768nn73wblh4iw6wl3bcsfn7dd-union-test-all-dirs/lib/guile/2.0/ccache/language/tree-il/primitives.go'
`/tmp/guix-tests/store/7y0q8n6zv41lr9viybhihlcmhri6939f-guile-bootstrap-2.0/lib/guile/2.0/ccache/language/tree-il/debug.go' ~> `/tmp/guix-tests/store/0sgpsn768nn73wblh4iw6wl3bcsfn7dd-union-test-all-dirs/lib/guile/2.0/ccache/language/tree-il/debug.go'
`/tmp/guix-tests/store/7y0q8n6zv41lr9viybhihlcmhri6939f-guile-bootstrap-2.0/lib/guile/2.0/ccache/language/tree-il/spec.go' ~> `/tmp/guix-tests/store/0sgpsn768nn73wblh4iw6wl3bcsfn7dd-union-test-all-dirs/lib/guile/2.0/ccache/language/tree-il/spec.go'
`/tmp/guix-tests/store/7y0q8n6zv41lr9viybhihlcmhri6939f-guile-bootstrap-2.0/lib/guile/2.0/ccache/language/elisp/runtime/value-slot.go' ~> `/tmp/guix-tests/store/0sgpsn768nn73wblh4iw6wl3bcsfn7dd-union-test-all-dirs/lib/guile/2.0/ccache/language/elisp/runtime/value-slot.go'
`/tmp/guix-tests/store/7y0q8n6zv41lr9viybhihlcmhri6939f-guile-bootstrap-2.0/lib/guile/2.0/ccache/language/elisp/runtime/subrs.go' ~> `/tmp/guix-tests/store/0sgpsn768nn73wblh4iw6wl3bcsfn7dd-union-test-all-dirs/lib/guile/2.0/ccache/language/elisp/runtime/subrs.go'
`/tmp/guix-tests/store/7y0q8n6zv41lr9viybhihlcmhri6939f-guile-bootstrap-2.0/lib/guile/2.0/ccache/language/elisp/runtime/function-slot.go' ~> `/tmp/guix-tests/store/0sgpsn768nn73wblh4iw6wl3bcsfn7dd-union-test-all-dirs/lib/guile/2.0/ccache/language/elisp/runtime/function-slot.go'
`/tmp/guix-tests/store/7y0q8n6zv41lr9viybhihlcmhri6939f-guile-bootstrap-2.0/lib/guile/2.0/ccache/language/elisp/runtime/macros.go' ~> `/tmp/guix-tests/store/0sgpsn768nn73wblh4iw6wl3bcsfn7dd-union-test-all-dirs/lib/guile/2.0/ccache/language/elisp/runtime/macros.go'
`/tmp/guix-tests/store/7y0q8n6zv41lr9viybhihlcmhri6939f-guile-bootstrap-2.0/lib/guile/2.0/ccache/language/elisp/lexer.go' ~> `/tmp/guix-tests/store/0sgpsn768nn73wblh4iw6wl3bcsfn7dd-union-test-all-dirs/lib/guile/2.0/ccache/language/elisp/lexer.go'
`/tmp/guix-tests/store/7y0q8n6zv41lr9viybhihlcmhri6939f-guile-bootstrap-2.0/lib/guile/2.0/ccache/language/elisp/parser.go' ~> `/tmp/guix-tests/store/0sgpsn768nn73wblh4iw6wl3bcsfn7dd-union-test-all-dirs/lib/guile/2.0/ccache/language/elisp/parser.go'
`/tmp/guix-tests/store/7y0q8n6zv41lr9viybhihlcmhri6939f-guile-bootstrap-2.0/lib/guile/2.0/ccache/language/elisp/bindings.go' ~> `/tmp/guix-tests/store/0sgpsn768nn73wblh4iw6wl3bcsfn7dd-union-test-all-dirs/lib/guile/2.0/ccache/language/elisp/bindings.go'
`/tmp/guix-tests/store/7y0q8n6zv41lr9viybhihlcmhri6939f-guile-bootstrap-2.0/lib/guile/2.0/ccache/language/elisp/compile-tree-il.go' ~> `/tmp/guix-tests/store/0sgpsn768nn73wblh4iw6wl3bcsfn7dd-union-test-all-dirs/lib/guile/2.0/ccache/language/elisp/compile-tree-il.go'
`/tmp/guix-tests/store/7y0q8n6zv41lr9viybhihlcmhri6939f-guile-bootstrap-2.0/lib/guile/2.0/ccache/language/elisp/spec.go' ~> `/tmp/guix-tests/store/0sgpsn768nn73wblh4iw6wl3bcsfn7dd-union-test-all-dirs/lib/guile/2.0/ccache/language/elisp/spec.go'
`/tmp/guix-tests/store/7y0q8n6zv41lr9viybhihlcmhri6939f-guile-bootstrap-2.0/lib/guile/2.0/ccache/language/elisp/runtime.go' ~> `/tmp/guix-tests/store/0sgpsn768nn73wblh4iw6wl3bcsfn7dd-union-test-all-dirs/lib/guile/2.0/ccache/language/elisp/runtime.go'
`/tmp/guix-tests/store/7y0q8n6zv41lr9viybhihlcmhri6939f-guile-bootstrap-2.0/lib/guile/2.0/ccache/language/glil/compile-assembly.go' ~> `/tmp/guix-tests/store/0sgpsn768nn73wblh4iw6wl3bcsfn7dd-union-test-all-dirs/lib/guile/2.0/ccache/language/glil/compile-assembly.go'
`/tmp/guix-tests/store/7y0q8n6zv41lr9viybhihlcmhri6939f-guile-bootstrap-2.0/lib/guile/2.0/ccache/language/glil/spec.go' ~> `/tmp/guix-tests/store/0sgpsn768nn73wblh4iw6wl3bcsfn7dd-union-test-all-dirs/lib/guile/2.0/ccache/language/glil/spec.go'
`/tmp/guix-tests/store/7y0q8n6zv41lr9viybhihlcmhri6939f-guile-bootstrap-2.0/lib/guile/2.0/ccache/language/ecmascript/function.go' ~> `/tmp/guix-tests/store/0sgpsn768nn73wblh4iw6wl3bcsfn7dd-union-test-all-dirs/lib/guile/2.0/ccache/language/ecmascript/function.go'
`/tmp/guix-tests/store/7y0q8n6zv41lr9viybhihlcmhri6939f-guile-bootstrap-2.0/lib/guile/2.0/ccache/language/ecmascript/array.go' ~> `/tmp/guix-tests/store/0sgpsn768nn73wblh4iw6wl3bcsfn7dd-union-test-all-dirs/lib/guile/2.0/ccache/language/ecmascript/array.go'
`/tmp/guix-tests/store/7y0q8n6zv41lr9viybhihlcmhri6939f-guile-bootstrap-2.0/lib/guile/2.0/ccache/language/ecmascript/tokenize.go' ~> `/tmp/guix-tests/store/0sgpsn768nn73wblh4iw6wl3bcsfn7dd-union-test-all-dirs/lib/guile/2.0/ccache/language/ecmascript/tokenize.go'
`/tmp/guix-tests/store/7y0q8n6zv41lr9viybhihlcmhri6939f-guile-bootstrap-2.0/lib/guile/2.0/ccache/language/ecmascript/impl.go' ~> `/tmp/guix-tests/store/0sgpsn768nn73wblh4iw6wl3bcsfn7dd-union-test-all-dirs/lib/guile/2.0/ccache/language/ecmascript/impl.go'
`/tmp/guix-tests/store/7y0q8n6zv41lr9viybhihlcmhri6939f-guile-bootstrap-2.0/lib/guile/2.0/ccache/language/ecmascript/compile-tree-il.go' ~> `/tmp/guix-tests/store/0sgpsn768nn73wblh4iw6wl3bcsfn7dd-union-test-all-dirs/lib/guile/2.0/ccache/language/ecmascript/compile-tree-il.go'
`/tmp/guix-tests/store/7y0q8n6zv41lr9viybhihlcmhri6939f-guile-bootstrap-2.0/lib/guile/2.0/ccache/language/ecmascript/spec.go' ~> `/tmp/guix-tests/store/0sgpsn768nn73wblh4iw6wl3bcsfn7dd-union-test-all-dirs/lib/guile/2.0/ccache/language/ecmascript/spec.go'
`/tmp/guix-tests/store/7y0q8n6zv41lr9viybhihlcmhri6939f-guile-bootstrap-2.0/lib/guile/2.0/ccache/language/ecmascript/parse.go' ~> `/tmp/guix-tests/store/0sgpsn768nn73wblh4iw6wl3bcsfn7dd-union-test-all-dirs/lib/guile/2.0/ccache/language/ecmascript/parse.go'
`/tmp/guix-tests/store/7y0q8n6zv41lr9viybhihlcmhri6939f-guile-bootstrap-2.0/lib/guile/2.0/ccache/language/ecmascript/base.go' ~> `/tmp/guix-tests/store/0sgpsn768nn73wblh4iw6wl3bcsfn7dd-union-test-all-dirs/lib/guile/2.0/ccache/language/ecmascript/base.go'
`/tmp/guix-tests/store/7y0q8n6zv41lr9viybhihlcmhri6939f-guile-bootstrap-2.0/lib/guile/2.0/ccache/language/bytecode/spec.go' ~> `/tmp/guix-tests/store/0sgpsn768nn73wblh4iw6wl3bcsfn7dd-union-test-all-dirs/lib/guile/2.0/ccache/language/bytecode/spec.go'
`/tmp/guix-tests/store/7y0q8n6zv41lr9viybhihlcmhri6939f-guile-bootstrap-2.0/lib/guile/2.0/ccache/language/brainfuck/compile-scheme.go' ~> `/tmp/guix-tests/store/0sgpsn768nn73wblh4iw6wl3bcsfn7dd-union-test-all-dirs/lib/guile/2.0/ccache/language/brainfuck/compile-scheme.go'
`/tmp/guix-tests/store/7y0q8n6zv41lr9viybhihlcmhri6939f-guile-bootstrap-2.0/lib/guile/2.0/ccache/language/brainfuck/compile-tree-il.go' ~> `/tmp/guix-tests/store/0sgpsn768nn73wblh4iw6wl3bcsfn7dd-union-test-all-dirs/lib/guile/2.0/ccache/language/brainfuck/compile-tree-il.go'
`/tmp/guix-tests/store/7y0q8n6zv41lr9viybhihlcmhri6939f-guile-bootstrap-2.0/lib/guile/2.0/ccache/language/brainfuck/spec.go' ~> `/tmp/guix-tests/store/0sgpsn768nn73wblh4iw6wl3bcsfn7dd-union-test-all-dirs/lib/guile/2.0/ccache/language/brainfuck/spec.go'
`/tmp/guix-tests/store/7y0q8n6zv41lr9viybhihlcmhri6939f-guile-bootstrap-2.0/lib/guile/2.0/ccache/language/brainfuck/parse.go' ~> `/tmp/guix-tests/store/0sgpsn768nn73wblh4iw6wl3bcsfn7dd-union-test-all-dirs/lib/guile/2.0/ccache/language/brainfuck/parse.go'
`/tmp/guix-tests/store/7y0q8n6zv41lr9viybhihlcmhri6939f-guile-bootstrap-2.0/lib/guile/2.0/ccache/statprof.go' ~> `/tmp/guix-tests/store/0sgpsn768nn73wblh4iw6wl3bcsfn7dd-union-test-all-dirs/lib/guile/2.0/ccache/statprof.go'
`/tmp/guix-tests/store/7y0q8n6zv41lr9viybhihlcmhri6939f-guile-bootstrap-2.0/lib/guile/2.0/ccache/scripts/summarize-guile-TODO.go' ~> `/tmp/guix-tests/store/0sgpsn768nn73wblh4iw6wl3bcsfn7dd-union-test-all-dirs/lib/guile/2.0/ccache/scripts/summarize-guile-TODO.go'
`/tmp/guix-tests/store/7y0q8n6zv41lr9viybhihlcmhri6939f-guile-bootstrap-2.0/lib/guile/2.0/ccache/scripts/snarf-check-and-output-texi.go' ~> `/tmp/guix-tests/store/0sgpsn768nn73wblh4iw6wl3bcsfn7dd-union-test-all-dirs/lib/guile/2.0/ccache/scripts/snarf-check-and-output-texi.go'
`/tmp/guix-tests/store/7y0q8n6zv41lr9viybhihlcmhri6939f-guile-bootstrap-2.0/lib/guile/2.0/ccache/scripts/scan-api.go' ~> `/tmp/guix-tests/store/0sgpsn768nn73wblh4iw6wl3bcsfn7dd-union-test-all-dirs/lib/guile/2.0/ccache/scripts/scan-api.go'
`/tmp/guix-tests/store/7y0q8n6zv41lr9viybhihlcmhri6939f-guile-bootstrap-2.0/lib/guile/2.0/ccache/scripts/doc-snarf.go' ~> `/tmp/guix-tests/store/0sgpsn768nn73wblh4iw6wl3bcsfn7dd-union-test-all-dirs/lib/guile/2.0/ccache/scripts/doc-snarf.go'
`/tmp/guix-tests/store/7y0q8n6zv41lr9viybhihlcmhri6939f-guile-bootstrap-2.0/lib/guile/2.0/ccache/scripts/snarf-guile-m4-docs.go' ~> `/tmp/guix-tests/store/0sgpsn768nn73wblh4iw6wl3bcsfn7dd-union-test-all-dirs/lib/guile/2.0/ccache/scripts/snarf-guile-m4-docs.go'
`/tmp/guix-tests/store/7y0q8n6zv41lr9viybhihlcmhri6939f-guile-bootstrap-2.0/lib/guile/2.0/ccache/scripts/compile.go' ~> `/tmp/guix-tests/store/0sgpsn768nn73wblh4iw6wl3bcsfn7dd-union-test-all-dirs/lib/guile/2.0/ccache/scripts/compile.go'
`/tmp/guix-tests/store/7y0q8n6zv41lr9viybhihlcmhri6939f-guile-bootstrap-2.0/lib/guile/2.0/ccache/scripts/read-scheme-source.go' ~> `/tmp/guix-tests/store/0sgpsn768nn73wblh4iw6wl3bcsfn7dd-union-test-all-dirs/lib/guile/2.0/ccache/scripts/read-scheme-source.go'
`/tmp/guix-tests/store/7y0q8n6zv41lr9viybhihlcmhri6939f-guile-bootstrap-2.0/lib/guile/2.0/ccache/scripts/disassemble.go' ~> `/tmp/guix-tests/store/0sgpsn768nn73wblh4iw6wl3bcsfn7dd-union-test-all-dirs/lib/guile/2.0/ccache/scripts/disassemble.go'
`/tmp/guix-tests/store/7y0q8n6zv41lr9viybhihlcmhri6939f-guile-bootstrap-2.0/lib/guile/2.0/ccache/scripts/lint.go' ~> `/tmp/guix-tests/store/0sgpsn768nn73wblh4iw6wl3bcsfn7dd-union-test-all-dirs/lib/guile/2.0/ccache/scripts/lint.go'
`/tmp/guix-tests/store/7y0q8n6zv41lr9viybhihlcmhri6939f-guile-bootstrap-2.0/lib/guile/2.0/ccache/scripts/api-diff.go' ~> `/tmp/guix-tests/store/0sgpsn768nn73wblh4iw6wl3bcsfn7dd-union-test-all-dirs/lib/guile/2.0/ccache/scripts/api-diff.go'
`/tmp/guix-tests/store/7y0q8n6zv41lr9viybhihlcmhri6939f-guile-bootstrap-2.0/lib/guile/2.0/ccache/scripts/list.go' ~> `/tmp/guix-tests/store/0sgpsn768nn73wblh4iw6wl3bcsfn7dd-union-test-all-dirs/lib/guile/2.0/ccache/scripts/list.go'
`/tmp/guix-tests/store/7y0q8n6zv41lr9viybhihlcmhri6939f-guile-bootstrap-2.0/lib/guile/2.0/ccache/scripts/help.go' ~> `/tmp/guix-tests/store/0sgpsn768nn73wblh4iw6wl3bcsfn7dd-union-test-all-dirs/lib/guile/2.0/ccache/scripts/help.go'
`/tmp/guix-tests/store/7y0q8n6zv41lr9viybhihlcmhri6939f-guile-bootstrap-2.0/lib/guile/2.0/ccache/scripts/use2dot.go' ~> `/tmp/guix-tests/store/0sgpsn768nn73wblh4iw6wl3bcsfn7dd-union-test-all-dirs/lib/guile/2.0/ccache/scripts/use2dot.go'
`/tmp/guix-tests/store/7y0q8n6zv41lr9viybhihlcmhri6939f-guile-bootstrap-2.0/lib/guile/2.0/ccache/scripts/display-commentary.go' ~> `/tmp/guix-tests/store/0sgpsn768nn73wblh4iw6wl3bcsfn7dd-union-test-all-dirs/lib/guile/2.0/ccache/scripts/display-commentary.go'
`/tmp/guix-tests/store/7y0q8n6zv41lr9viybhihlcmhri6939f-guile-bootstrap-2.0/lib/guile/2.0/ccache/scripts/autofrisk.go' ~> `/tmp/guix-tests/store/0sgpsn768nn73wblh4iw6wl3bcsfn7dd-union-test-all-dirs/lib/guile/2.0/ccache/scripts/autofrisk.go'
`/tmp/guix-tests/store/7y0q8n6zv41lr9viybhihlcmhri6939f-guile-bootstrap-2.0/lib/guile/2.0/ccache/scripts/punify.go' ~> `/tmp/guix-tests/store/0sgpsn768nn73wblh4iw6wl3bcsfn7dd-union-test-all-dirs/lib/guile/2.0/ccache/scripts/punify.go'
`/tmp/guix-tests/store/7y0q8n6zv41lr9viybhihlcmhri6939f-guile-bootstrap-2.0/lib/guile/2.0/ccache/scripts/frisk.go' ~> `/tmp/guix-tests/store/0sgpsn768nn73wblh4iw6wl3bcsfn7dd-union-test-all-dirs/lib/guile/2.0/ccache/scripts/frisk.go'
`/tmp/guix-tests/store/7y0q8n6zv41lr9viybhihlcmhri6939f-guile-bootstrap-2.0/lib/guile/2.0/ccache/scripts/read-text-outline.go' ~> `/tmp/guix-tests/store/0sgpsn768nn73wblh4iw6wl3bcsfn7dd-union-test-all-dirs/lib/guile/2.0/ccache/scripts/read-text-outline.go'
`/tmp/guix-tests/store/7y0q8n6zv41lr9viybhihlcmhri6939f-guile-bootstrap-2.0/lib/guile/2.0/ccache/scripts/read-rfc822.go' ~> `/tmp/guix-tests/store/0sgpsn768nn73wblh4iw6wl3bcsfn7dd-union-test-all-dirs/lib/guile/2.0/ccache/scripts/read-rfc822.go'
`/tmp/guix-tests/store/7y0q8n6zv41lr9viybhihlcmhri6939f-guile-bootstrap-2.0/lib/guile/2.0/ccache/scripts/generate-autoload.go' ~> `/tmp/guix-tests/store/0sgpsn768nn73wblh4iw6wl3bcsfn7dd-union-test-all-dirs/lib/guile/2.0/ccache/scripts/generate-autoload.go'
`/tmp/guix-tests/store/7y0q8n6zv41lr9viybhihlcmhri6939f-guile-bootstrap-2.0/lib/guile/2.0/ccache/srfi/srfi-45.go' ~> `/tmp/guix-tests/store/0sgpsn768nn73wblh4iw6wl3bcsfn7dd-union-test-all-dirs/lib/guile/2.0/ccache/srfi/srfi-45.go'
`/tmp/guix-tests/store/7y0q8n6zv41lr9viybhihlcmhri6939f-guile-bootstrap-2.0/lib/guile/2.0/ccache/srfi/srfi-60.go' ~> `/tmp/guix-tests/store/0sgpsn768nn73wblh4iw6wl3bcsfn7dd-union-test-all-dirs/lib/guile/2.0/ccache/srfi/srfi-60.go'
`/tmp/guix-tests/store/7y0q8n6zv41lr9viybhihlcmhri6939f-guile-bootstrap-2.0/lib/guile/2.0/ccache/srfi/srfi-35.go' ~> `/tmp/guix-tests/store/0sgpsn768nn73wblh4iw6wl3bcsfn7dd-union-test-all-dirs/lib/guile/2.0/ccache/srfi/srfi-35.go'
`/tmp/guix-tests/store/7y0q8n6zv41lr9viybhihlcmhri6939f-guile-bootstrap-2.0/lib/guile/2.0/ccache/srfi/srfi-8.go' ~> `/tmp/guix-tests/store/0sgpsn768nn73wblh4iw6wl3bcsfn7dd-union-test-all-dirs/lib/guile/2.0/ccache/srfi/srfi-8.go'
`/tmp/guix-tests/store/7y0q8n6zv41lr9viybhihlcmhri6939f-guile-bootstrap-2.0/lib/guile/2.0/ccache/srfi/srfi-38.go' ~> `/tmp/guix-tests/store/0sgpsn768nn73wblh4iw6wl3bcsfn7dd-union-test-all-dirs/lib/guile/2.0/ccache/srfi/srfi-38.go'
`/tmp/guix-tests/store/7y0q8n6zv41lr9viybhihlcmhri6939f-guile-bootstrap-2.0/lib/guile/2.0/ccache/srfi/srfi-4/gnu.go' ~> `/tmp/guix-tests/store/0sgpsn768nn73wblh4iw6wl3bcsfn7dd-union-test-all-dirs/lib/guile/2.0/ccache/srfi/srfi-4/gnu.go'
`/tmp/guix-tests/store/7y0q8n6zv41lr9viybhihlcmhri6939f-guile-bootstrap-2.0/lib/guile/2.0/ccache/srfi/srfi-10.go' ~> `/tmp/guix-tests/store/0sgpsn768nn73wblh4iw6wl3bcsfn7dd-union-test-all-dirs/lib/guile/2.0/ccache/srfi/srfi-10.go'
`/tmp/guix-tests/store/7y0q8n6zv41lr9viybhihlcmhri6939f-guile-bootstrap-2.0/lib/guile/2.0/ccache/srfi/srfi-18.go' ~> `/tmp/guix-tests/store/0sgpsn768nn73wblh4iw6wl3bcsfn7dd-union-test-all-dirs/lib/guile/2.0/ccache/srfi/srfi-18.go'
`/tmp/guix-tests/store/7y0q8n6zv41lr9viybhihlcmhri6939f-guile-bootstrap-2.0/lib/guile/2.0/ccache/srfi/srfi-9/gnu.go' ~> `/tmp/guix-tests/store/0sgpsn768nn73wblh4iw6wl3bcsfn7dd-union-test-all-dirs/lib/guile/2.0/ccache/srfi/srfi-9/gnu.go'
`/tmp/guix-tests/store/7y0q8n6zv41lr9viybhihlcmhri6939f-guile-bootstrap-2.0/lib/guile/2.0/ccache/srfi/srfi-6.go' ~> `/tmp/guix-tests/store/0sgpsn768nn73wblh4iw6wl3bcsfn7dd-union-test-all-dirs/lib/guile/2.0/ccache/srfi/srfi-6.go'
`/tmp/guix-tests/store/7y0q8n6zv41lr9viybhihlcmhri6939f-guile-bootstrap-2.0/lib/guile/2.0/ccache/srfi/srfi-13.go' ~> `/tmp/guix-tests/store/0sgpsn768nn73wblh4iw6wl3bcsfn7dd-union-test-all-dirs/lib/guile/2.0/ccache/srfi/srfi-13.go'
`/tmp/guix-tests/store/7y0q8n6zv41lr9viybhihlcmhri6939f-guile-bootstrap-2.0/lib/guile/2.0/ccache/srfi/srfi-69.go' ~> `/tmp/guix-tests/store/0sgpsn768nn73wblh4iw6wl3bcsfn7dd-union-test-all-dirs/lib/guile/2.0/ccache/srfi/srfi-69.go'
`/tmp/guix-tests/store/7y0q8n6zv41lr9viybhihlcmhri6939f-guile-bootstrap-2.0/lib/guile/2.0/ccache/srfi/srfi-1.go' ~> `/tmp/guix-tests/store/0sgpsn768nn73wblh4iw6wl3bcsfn7dd-union-test-all-dirs/lib/guile/2.0/ccache/srfi/srfi-1.go'
`/tmp/guix-tests/store/7y0q8n6zv41lr9viybhihlcmhri6939f-guile-bootstrap-2.0/lib/guile/2.0/ccache/srfi/srfi-9.go' ~> `/tmp/guix-tests/store/0sgpsn768nn73wblh4iw6wl3bcsfn7dd-union-test-all-dirs/lib/guile/2.0/ccache/srfi/srfi-9.go'
`/tmp/guix-tests/store/7y0q8n6zv41lr9viybhihlcmhri6939f-guile-bootstrap-2.0/lib/guile/2.0/ccache/srfi/srfi-26.go' ~> `/tmp/guix-tests/store/0sgpsn768nn73wblh4iw6wl3bcsfn7dd-union-test-all-dirs/lib/guile/2.0/ccache/srfi/srfi-26.go'
`/tmp/guix-tests/store/7y0q8n6zv41lr9viybhihlcmhri6939f-guile-bootstrap-2.0/lib/guile/2.0/ccache/srfi/srfi-41.go' ~> `/tmp/guix-tests/store/0sgpsn768nn73wblh4iw6wl3bcsfn7dd-union-test-all-dirs/lib/guile/2.0/ccache/srfi/srfi-41.go'
`/tmp/guix-tests/store/7y0q8n6zv41lr9viybhihlcmhri6939f-guile-bootstrap-2.0/lib/guile/2.0/ccache/srfi/srfi-16.go' ~> `/tmp/guix-tests/store/0sgpsn768nn73wblh4iw6wl3bcsfn7dd-union-test-all-dirs/lib/guile/2.0/ccache/srfi/srfi-16.go'
`/tmp/guix-tests/store/7y0q8n6zv41lr9viybhihlcmhri6939f-guile-bootstrap-2.0/lib/guile/2.0/ccache/srfi/srfi-31.go' ~> `/tmp/guix-tests/store/0sgpsn768nn73wblh4iw6wl3bcsfn7dd-union-test-all-dirs/lib/guile/2.0/ccache/srfi/srfi-31.go'
`/tmp/guix-tests/store/7y0q8n6zv41lr9viybhihlcmhri6939f-guile-bootstrap-2.0/lib/guile/2.0/ccache/srfi/srfi-39.go' ~> `/tmp/guix-tests/store/0sgpsn768nn73wblh4iw6wl3bcsfn7dd-union-test-all-dirs/lib/guile/2.0/ccache/srfi/srfi-39.go'
`/tmp/guix-tests/store/7y0q8n6zv41lr9viybhihlcmhri6939f-guile-bootstrap-2.0/lib/guile/2.0/ccache/srfi/srfi-4.go' ~> `/tmp/guix-tests/store/0sgpsn768nn73wblh4iw6wl3bcsfn7dd-union-test-all-dirs/lib/guile/2.0/ccache/srfi/srfi-4.go'
`/tmp/guix-tests/store/7y0q8n6zv41lr9viybhihlcmhri6939f-guile-bootstrap-2.0/lib/guile/2.0/ccache/srfi/srfi-11.go' ~> `/tmp/guix-tests/store/0sgpsn768nn73wblh4iw6wl3bcsfn7dd-union-test-all-dirs/lib/guile/2.0/ccache/srfi/srfi-11.go'
`/tmp/guix-tests/store/7y0q8n6zv41lr9viybhihlcmhri6939f-guile-bootstrap-2.0/lib/guile/2.0/ccache/srfi/srfi-67.go' ~> `/tmp/guix-tests/store/0sgpsn768nn73wblh4iw6wl3bcsfn7dd-union-test-all-dirs/lib/guile/2.0/ccache/srfi/srfi-67.go'
`/tmp/guix-tests/store/7y0q8n6zv41lr9viybhihlcmhri6939f-guile-bootstrap-2.0/lib/guile/2.0/ccache/srfi/srfi-19.go' ~> `/tmp/guix-tests/store/0sgpsn768nn73wblh4iw6wl3bcsfn7dd-union-test-all-dirs/lib/guile/2.0/ccache/srfi/srfi-19.go'
`/tmp/guix-tests/store/7y0q8n6zv41lr9viybhihlcmhri6939f-guile-bootstrap-2.0/lib/guile/2.0/ccache/srfi/srfi-34.go' ~> `/tmp/guix-tests/store/0sgpsn768nn73wblh4iw6wl3bcsfn7dd-union-test-all-dirs/lib/guile/2.0/ccache/srfi/srfi-34.go'
`/tmp/guix-tests/store/7y0q8n6zv41lr9viybhihlcmhri6939f-guile-bootstrap-2.0/lib/guile/2.0/ccache/srfi/srfi-14.go' ~> `/tmp/guix-tests/store/0sgpsn768nn73wblh4iw6wl3bcsfn7dd-union-test-all-dirs/lib/guile/2.0/ccache/srfi/srfi-14.go'
`/tmp/guix-tests/store/7y0q8n6zv41lr9viybhihlcmhri6939f-guile-bootstrap-2.0/lib/guile/2.0/ccache/srfi/srfi-37.go' ~> `/tmp/guix-tests/store/0sgpsn768nn73wblh4iw6wl3bcsfn7dd-union-test-all-dirs/lib/guile/2.0/ccache/srfi/srfi-37.go'
`/tmp/guix-tests/store/7y0q8n6zv41lr9viybhihlcmhri6939f-guile-bootstrap-2.0/lib/guile/2.0/ccache/srfi/srfi-2.go' ~> `/tmp/guix-tests/store/0sgpsn768nn73wblh4iw6wl3bcsfn7dd-union-test-all-dirs/lib/guile/2.0/ccache/srfi/srfi-2.go'
`/tmp/guix-tests/store/7y0q8n6zv41lr9viybhihlcmhri6939f-guile-bootstrap-2.0/lib/guile/2.0/ccache/srfi/srfi-27.go' ~> `/tmp/guix-tests/store/0sgpsn768nn73wblh4iw6wl3bcsfn7dd-union-test-all-dirs/lib/guile/2.0/ccache/srfi/srfi-27.go'
`/tmp/guix-tests/store/7y0q8n6zv41lr9viybhihlcmhri6939f-guile-bootstrap-2.0/lib/guile/2.0/ccache/srfi/srfi-42.go' ~> `/tmp/guix-tests/store/0sgpsn768nn73wblh4iw6wl3bcsfn7dd-union-test-all-dirs/lib/guile/2.0/ccache/srfi/srfi-42.go'
`/tmp/guix-tests/store/7y0q8n6zv41lr9viybhihlcmhri6939f-guile-bootstrap-2.0/lib/guile/2.0/ccache/srfi/srfi-98.go' ~> `/tmp/guix-tests/store/0sgpsn768nn73wblh4iw6wl3bcsfn7dd-union-test-all-dirs/lib/guile/2.0/ccache/srfi/srfi-98.go'
`/tmp/guix-tests/store/7y0q8n6zv41lr9viybhihlcmhri6939f-guile-bootstrap-2.0/lib/guile/2.0/ccache/srfi/srfi-17.go' ~> `/tmp/guix-tests/store/0sgpsn768nn73wblh4iw6wl3bcsfn7dd-union-test-all-dirs/lib/guile/2.0/ccache/srfi/srfi-17.go'
`/tmp/guix-tests/store/7y0q8n6zv41lr9viybhihlcmhri6939f-guile-bootstrap-2.0/lib/guile/2.0/ccache/srfi/srfi-88.go' ~> `/tmp/guix-tests/store/0sgpsn768nn73wblh4iw6wl3bcsfn7dd-union-test-all-dirs/lib/guile/2.0/ccache/srfi/srfi-88.go'
`/tmp/guix-tests/store/7y0q8n6zv41lr9viybhihlcmhri6939f-guile-bootstrap-2.0/lib/guile/2.0/ccache/rnrs/mutable-pairs.go' ~> `/tmp/guix-tests/store/0sgpsn768nn73wblh4iw6wl3bcsfn7dd-union-test-all-dirs/lib/guile/2.0/ccache/rnrs/mutable-pairs.go'
`/tmp/guix-tests/store/7y0q8n6zv41lr9viybhihlcmhri6939f-guile-bootstrap-2.0/lib/guile/2.0/ccache/rnrs/conditions.go' ~> `/tmp/guix-tests/store/0sgpsn768nn73wblh4iw6wl3bcsfn7dd-union-test-all-dirs/lib/guile/2.0/ccache/rnrs/conditions.go'
`/tmp/guix-tests/store/7y0q8n6zv41lr9viybhihlcmhri6939f-guile-bootstrap-2.0/lib/guile/2.0/ccache/rnrs/records/procedural.go' ~> `/tmp/guix-tests/store/0sgpsn768nn73wblh4iw6wl3bcsfn7dd-union-test-all-dirs/lib/guile/2.0/ccache/rnrs/records/procedural.go'
`/tmp/guix-tests/store/7y0q8n6zv41lr9viybhihlcmhri6939f-guile-bootstrap-2.0/lib/guile/2.0/ccache/rnrs/records/inspection.go' ~> `/tmp/guix-tests/store/0sgpsn768nn73wblh4iw6wl3bcsfn7dd-union-test-all-dirs/lib/guile/2.0/ccache/rnrs/records/inspection.go'
`/tmp/guix-tests/store/7y0q8n6zv41lr9viybhihlcmhri6939f-guile-bootstrap-2.0/lib/guile/2.0/ccache/rnrs/records/syntactic.go' ~> `/tmp/guix-tests/store/0sgpsn768nn73wblh4iw6wl3bcsfn7dd-union-test-all-dirs/lib/guile/2.0/ccache/rnrs/records/syntactic.go'
`/tmp/guix-tests/store/7y0q8n6zv41lr9viybhihlcmhri6939f-guile-bootstrap-2.0/lib/guile/2.0/ccache/rnrs/r5rs.go' ~> `/tmp/guix-tests/store/0sgpsn768nn73wblh4iw6wl3bcsfn7dd-union-test-all-dirs/lib/guile/2.0/ccache/rnrs/r5rs.go'
`/tmp/guix-tests/store/7y0q8n6zv41lr9viybhihlcmhri6939f-guile-bootstrap-2.0/lib/guile/2.0/ccache/rnrs/exceptions.go' ~> `/tmp/guix-tests/store/0sgpsn768nn73wblh4iw6wl3bcsfn7dd-union-test-all-dirs/lib/guile/2.0/ccache/rnrs/exceptions.go'
`/tmp/guix-tests/store/7y0q8n6zv41lr9viybhihlcmhri6939f-guile-bootstrap-2.0/lib/guile/2.0/ccache/rnrs/control.go' ~> `/tmp/guix-tests/store/0sgpsn768nn73wblh4iw6wl3bcsfn7dd-union-test-all-dirs/lib/guile/2.0/ccache/rnrs/control.go'
`/tmp/guix-tests/store/7y0q8n6zv41lr9viybhihlcmhri6939f-guile-bootstrap-2.0/lib/guile/2.0/ccache/rnrs/enums.go' ~> `/tmp/guix-tests/store/0sgpsn768nn73wblh4iw6wl3bcsfn7dd-union-test-all-dirs/lib/guile/2.0/ccache/rnrs/enums.go'
`/tmp/guix-tests/store/7y0q8n6zv41lr9viybhihlcmhri6939f-guile-bootstrap-2.0/lib/guile/2.0/ccache/rnrs/sorting.go' ~> `/tmp/guix-tests/store/0sgpsn768nn73wblh4iw6wl3bcsfn7dd-union-test-all-dirs/lib/guile/2.0/ccache/rnrs/sorting.go'
`/tmp/guix-tests/store/7y0q8n6zv41lr9viybhihlcmhri6939f-guile-bootstrap-2.0/lib/guile/2.0/ccache/rnrs/hashtables.go' ~> `/tmp/guix-tests/store/0sgpsn768nn73wblh4iw6wl3bcsfn7dd-union-test-all-dirs/lib/guile/2.0/ccache/rnrs/hashtables.go'
`/tmp/guix-tests/store/7y0q8n6zv41lr9viybhihlcmhri6939f-guile-bootstrap-2.0/lib/guile/2.0/ccache/rnrs/files.go' ~> `/tmp/guix-tests/store/0sgpsn768nn73wblh4iw6wl3bcsfn7dd-union-test-all-dirs/lib/guile/2.0/ccache/rnrs/files.go'
`/tmp/guix-tests/store/7y0q8n6zv41lr9viybhihlcmhri6939f-guile-bootstrap-2.0/lib/guile/2.0/ccache/rnrs/arithmetic/flonums.go' ~> `/tmp/guix-tests/store/0sgpsn768nn73wblh4iw6wl3bcsfn7dd-union-test-all-dirs/lib/guile/2.0/ccache/rnrs/arithmetic/flonums.go'
`/tmp/guix-tests/store/7y0q8n6zv41lr9viybhihlcmhri6939f-guile-bootstrap-2.0/lib/guile/2.0/ccache/rnrs/arithmetic/bitwise.go' ~> `/tmp/guix-tests/store/0sgpsn768nn73wblh4iw6wl3bcsfn7dd-union-test-all-dirs/lib/guile/2.0/ccache/rnrs/arithmetic/bitwise.go'
`/tmp/guix-tests/store/7y0q8n6zv41lr9viybhihlcmhri6939f-guile-bootstrap-2.0/lib/guile/2.0/ccache/rnrs/arithmetic/fixnums.go' ~> `/tmp/guix-tests/store/0sgpsn768nn73wblh4iw6wl3bcsfn7dd-union-test-all-dirs/lib/guile/2.0/ccache/rnrs/arithmetic/fixnums.go'
`/tmp/guix-tests/store/7y0q8n6zv41lr9viybhihlcmhri6939f-guile-bootstrap-2.0/lib/guile/2.0/ccache/rnrs/lists.go' ~> `/tmp/guix-tests/store/0sgpsn768nn73wblh4iw6wl3bcsfn7dd-union-test-all-dirs/lib/guile/2.0/ccache/rnrs/lists.go'
`/tmp/guix-tests/store/7y0q8n6zv41lr9viybhihlcmhri6939f-guile-bootstrap-2.0/lib/guile/2.0/ccache/rnrs/programs.go' ~> `/tmp/guix-tests/store/0sgpsn768nn73wblh4iw6wl3bcsfn7dd-union-test-all-dirs/lib/guile/2.0/ccache/rnrs/programs.go'
`/tmp/guix-tests/store/7y0q8n6zv41lr9viybhihlcmhri6939f-guile-bootstrap-2.0/lib/guile/2.0/ccache/rnrs/syntax-case.go' ~> `/tmp/guix-tests/store/0sgpsn768nn73wblh4iw6wl3bcsfn7dd-union-test-all-dirs/lib/guile/2.0/ccache/rnrs/syntax-case.go'
`/tmp/guix-tests/store/7y0q8n6zv41lr9viybhihlcmhri6939f-guile-bootstrap-2.0/lib/guile/2.0/ccache/rnrs/bytevectors.go' ~> `/tmp/guix-tests/store/0sgpsn768nn73wblh4iw6wl3bcsfn7dd-union-test-all-dirs/lib/guile/2.0/ccache/rnrs/bytevectors.go'
`/tmp/guix-tests/store/7y0q8n6zv41lr9viybhihlcmhri6939f-guile-bootstrap-2.0/lib/guile/2.0/ccache/rnrs/mutable-strings.go' ~> `/tmp/guix-tests/store/0sgpsn768nn73wblh4iw6wl3bcsfn7dd-union-test-all-dirs/lib/guile/2.0/ccache/rnrs/mutable-strings.go'
`/tmp/guix-tests/store/7y0q8n6zv41lr9viybhihlcmhri6939f-guile-bootstrap-2.0/lib/guile/2.0/ccache/rnrs/unicode.go' ~> `/tmp/guix-tests/store/0sgpsn768nn73wblh4iw6wl3bcsfn7dd-union-test-all-dirs/lib/guile/2.0/ccache/rnrs/unicode.go'
`/tmp/guix-tests/store/7y0q8n6zv41lr9viybhihlcmhri6939f-guile-bootstrap-2.0/lib/guile/2.0/ccache/rnrs/io/simple.go' ~> `/tmp/guix-tests/store/0sgpsn768nn73wblh4iw6wl3bcsfn7dd-union-test-all-dirs/lib/guile/2.0/ccache/rnrs/io/simple.go'
`/tmp/guix-tests/store/7y0q8n6zv41lr9viybhihlcmhri6939f-guile-bootstrap-2.0/lib/guile/2.0/ccache/rnrs/io/ports.go' ~> `/tmp/guix-tests/store/0sgpsn768nn73wblh4iw6wl3bcsfn7dd-union-test-all-dirs/lib/guile/2.0/ccache/rnrs/io/ports.go'
`/tmp/guix-tests/store/7y0q8n6zv41lr9viybhihlcmhri6939f-guile-bootstrap-2.0/lib/guile/2.0/ccache/rnrs/eval.go' ~> `/tmp/guix-tests/store/0sgpsn768nn73wblh4iw6wl3bcsfn7dd-union-test-all-dirs/lib/guile/2.0/ccache/rnrs/eval.go'
`/tmp/guix-tests/store/7y0q8n6zv41lr9viybhihlcmhri6939f-guile-bootstrap-2.0/lib/guile/2.0/ccache/rnrs/base.go' ~> `/tmp/guix-tests/store/0sgpsn768nn73wblh4iw6wl3bcsfn7dd-union-test-all-dirs/lib/guile/2.0/ccache/rnrs/base.go'
`/tmp/guix-tests/store/7y0q8n6zv41lr9viybhihlcmhri6939f-guile-bootstrap-2.0/lib/guile/2.0/ccache/web/response.go' ~> `/tmp/guix-tests/store/0sgpsn768nn73wblh4iw6wl3bcsfn7dd-union-test-all-dirs/lib/guile/2.0/ccache/web/response.go'
`/tmp/guix-tests/store/7y0q8n6zv41lr9viybhihlcmhri6939f-guile-bootstrap-2.0/lib/guile/2.0/ccache/web/server.go' ~> `/tmp/guix-tests/store/0sgpsn768nn73wblh4iw6wl3bcsfn7dd-union-test-all-dirs/lib/guile/2.0/ccache/web/server.go'
`/tmp/guix-tests/store/7y0q8n6zv41lr9viybhihlcmhri6939f-guile-bootstrap-2.0/lib/guile/2.0/ccache/web/server/http.go' ~> `/tmp/guix-tests/store/0sgpsn768nn73wblh4iw6wl3bcsfn7dd-union-test-all-dirs/lib/guile/2.0/ccache/web/server/http.go'
`/tmp/guix-tests/store/7y0q8n6zv41lr9viybhihlcmhri6939f-guile-bootstrap-2.0/lib/guile/2.0/ccache/web/http.go' ~> `/tmp/guix-tests/store/0sgpsn768nn73wblh4iw6wl3bcsfn7dd-union-test-all-dirs/lib/guile/2.0/ccache/web/http.go'
`/tmp/guix-tests/store/7y0q8n6zv41lr9viybhihlcmhri6939f-guile-bootstrap-2.0/lib/guile/2.0/ccache/web/uri.go' ~> `/tmp/guix-tests/store/0sgpsn768nn73wblh4iw6wl3bcsfn7dd-union-test-all-dirs/lib/guile/2.0/ccache/web/uri.go'
`/tmp/guix-tests/store/7y0q8n6zv41lr9viybhihlcmhri6939f-guile-bootstrap-2.0/lib/guile/2.0/ccache/web/client.go' ~> `/tmp/guix-tests/store/0sgpsn768nn73wblh4iw6wl3bcsfn7dd-union-test-all-dirs/lib/guile/2.0/ccache/web/client.go'
`/tmp/guix-tests/store/7y0q8n6zv41lr9viybhihlcmhri6939f-guile-bootstrap-2.0/lib/guile/2.0/ccache/web/request.go' ~> `/tmp/guix-tests/store/0sgpsn768nn73wblh4iw6wl3bcsfn7dd-union-test-all-dirs/lib/guile/2.0/ccache/web/request.go'
`/tmp/guix-tests/store/7y0q8n6zv41lr9viybhihlcmhri6939f-guile-bootstrap-2.0/lib/guile/2.0/ccache/texinfo/html.go' ~> `/tmp/guix-tests/store/0sgpsn768nn73wblh4iw6wl3bcsfn7dd-union-test-all-dirs/lib/guile/2.0/ccache/texinfo/html.go'
`/tmp/guix-tests/store/7y0q8n6zv41lr9viybhihlcmhri6939f-guile-bootstrap-2.0/lib/guile/2.0/ccache/texinfo/serialize.go' ~> `/tmp/guix-tests/store/0sgpsn768nn73wblh4iw6wl3bcsfn7dd-union-test-all-dirs/lib/guile/2.0/ccache/texinfo/serialize.go'
`/tmp/guix-tests/store/7y0q8n6zv41lr9viybhihlcmhri6939f-guile-bootstrap-2.0/lib/guile/2.0/ccache/texinfo/indexing.go' ~> `/tmp/guix-tests/store/0sgpsn768nn73wblh4iw6wl3bcsfn7dd-union-test-all-dirs/lib/guile/2.0/ccache/texinfo/indexing.go'
`/tmp/guix-tests/store/7y0q8n6zv41lr9viybhihlcmhri6939f-guile-bootstrap-2.0/lib/guile/2.0/ccache/texinfo/docbook.go' ~> `/tmp/guix-tests/store/0sgpsn768nn73wblh4iw6wl3bcsfn7dd-union-test-all-dirs/lib/guile/2.0/ccache/texinfo/docbook.go'
`/tmp/guix-tests/store/7y0q8n6zv41lr9viybhihlcmhri6939f-guile-bootstrap-2.0/lib/guile/2.0/ccache/texinfo/reflection.go' ~> `/tmp/guix-tests/store/0sgpsn768nn73wblh4iw6wl3bcsfn7dd-union-test-all-dirs/lib/guile/2.0/ccache/texinfo/reflection.go'
`/tmp/guix-tests/store/7y0q8n6zv41lr9viybhihlcmhri6939f-guile-bootstrap-2.0/lib/guile/2.0/ccache/texinfo/string-utils.go' ~> `/tmp/guix-tests/store/0sgpsn768nn73wblh4iw6wl3bcsfn7dd-union-test-all-dirs/lib/guile/2.0/ccache/texinfo/string-utils.go'
`/tmp/guix-tests/store/7y0q8n6zv41lr9viybhihlcmhri6939f-guile-bootstrap-2.0/lib/guile/2.0/ccache/texinfo/plain-text.go' ~> `/tmp/guix-tests/store/0sgpsn768nn73wblh4iw6wl3bcsfn7dd-union-test-all-dirs/lib/guile/2.0/ccache/texinfo/plain-text.go'
@ build-succeeded /tmp/guix-tests/store/iwc79z4pnnjaz0hif0xnx65cg2j3qsg9-union-test-all-dirs.drv -
/tmp/guix-build-guix-0.13.0.drv-0/source/tests/union.scm:127
source:
+ (test-assert
+ "union-build #:create-all-directories? #t"
+ (let* ((build `(begin
+ (use-modules (guix build union))
+ (union-build
+ (assoc-ref %outputs "out")
+ (map cdr %build-inputs)
+ #:create-all-directories?
+ #t)))
+ (input (package-derivation %store %bootstrap-guile))
+ (drv (build-expression->derivation
+ %store
+ "union-test-all-dirs"
+ build
+ #:modules
+ '((guix build union))
+ #:inputs
+ `(("g" ,input)))))
+ (and (build-derivations %store (list drv))
+ (with-directory-excursion
+ (derivation->output-path drv)
+ (and (file-exists? "bin/guile")
+ (file-is-directory? "bin")
+ (eq? 'symlink (stat:type (lstat "bin/guile"))))))))
actual-value: #t
result: PASS
SKIP: tests/syscalls
====================
test-name: mount, ENOENT
location: /tmp/guix-build-guix-0.13.0.drv-0/source/tests/syscalls.scm:38
source:
+ (test-equal
+ "mount, ENOENT"
+ ENOENT
+ (catch 'system-error
+ (lambda ()
+ (mount "/dev/null" "/does-not-exist" "ext2")
+ #f)
+ (compose system-error-errno list)))
expected-value: 2
actual-value: 2
result: PASS
test-name: umount, ENOENT/EPERM
location: /tmp/guix-build-guix-0.13.0.drv-0/source/tests/syscalls.scm:46
source:
+ (test-assert
+ "umount, ENOENT/EPERM"
+ (catch 'system-error
+ (lambda () (umount "/does-not-exist") #f)
+ (lambda args
+ (memv (system-error-errno args)
+ (list EPERM ENOENT)))))
actual-value: (1 2)
result: PASS
test-name: mount-points
location: /tmp/guix-build-guix-0.13.0.drv-0/source/tests/syscalls.scm:55
source:
+ (test-assert
+ "mount-points"
+ (any (cute member <> (mount-points))
+ '("/" "/proc" "/sys" "/dev")))
actual-value: ("/" "/dev/full" "/dev/kvm" "/dev/null" "/dev/random" "/dev/tty" "/dev/urandom" "/dev/zero" "/gnu/store/02426nwiy32cscm4h83729vn5ws1gs2i-bash-static-4.4.12" "/gnu/store/02a60j2x8i4wdj67krl4z7fc5i7maqrw-nettle-3.3" "/gnu/store/0fzh44zpdw1h2dwpzgfw2lic05y4k6md-libxt-1.1.5" "/gnu/store/0wps368gx0cn3ynrkbhzq5pxf75rng7y-glib-2.50.3" "/gnu/store/0xm7szwymsv87z7y4bi2lgvx2jhniqms-file-5.28" "/gnu/store/16i6p8liwzl2wk10akcqw84l9mqhdyfg-automake-1.15" "/gnu/store/1h0p1lgl5i1dmwa0rzxflv664zwwm6am-glibc-utf8-locales-2.25" "/gnu/store/2rba93k7hlaqgwimwnsi0a4h4f04afag-libxmu-1.1.2" "/gnu/store/2sf5dkanvf3r0mg20yysxig5fgg8yq8d-libxrender-0.9.10" "/gnu/store/2xm70k2vppjw5m4aqnh9ii3hiz667dg2-pkg-config-0.29.1" "/gnu/store/38j1nrzd039sd65zfpbd0i3j9lxvnwpx-fontconfig-2.12.1" "/gnu/store/3lsfrwlp1qa345x71yw5w49i2mpp0vxm-guile-2.0.14" "/gnu/store/4iw4r2majarqlm19adaikqw126jxqf2p-gcc-5.4.0" "/gnu/store/4m58wpsp8xx4b3v5rwnq6ww93dp16z0l-module-import" "/gnu/store/540scmzhxx3avrr760ma7pyzp26k5gbs-libxpm-3.5.12" "/gnu/store/55r4yg5iw9zh2j3zvzc6272k5xn4yxg4-gawk-4.1.4" "/gnu/store/5bh7p754d09wcp64ckxlvwz7lgyk0h59-linux-libre-headers-4.4.47" "/gnu/store/5zx29y44nrqj0s8h3jlvlj82k8hj4dxs-guile-2.2.2" "/gnu/store/6908gy3pws0ccys49ni98idwnicchlr2-coreutils-8.26" "/gnu/store/6rp4sjvp7lxkjh6mya4gg5g37i4qlrk4-gd-2.2.4" "/gnu/store/6z06w9zfnq3zcr50vcv2wvzr5wpzvy7l-util-linux-2.29.2" "/gnu/store/85ss68qvpfb62chf2wapp3b8gfqv5xc6-libffi-3.2.1" "/gnu/store/87sj03j9kwzhl9zr76gs2i8ill86ki95-grep-3.0" "/gnu/store/899421wkg4iff0vvid7c9zvrdnyqd69v-acl-2.2.52" "/gnu/store/8cahzancb8dyh5ciwzclq41m1cvw78cj-ed-1.14.1" "/gnu/store/8nkj1w5whm5gwrhsmqvm1w6im27vz02g-bzip2-1.0.6" "/gnu/store/8wmanahsh0mk1n5xw6i7wpwih95yqzaq-gzip-1.8" "/gnu/store/92nphddbww5b9z4sqdzis5z53lhqf0bd-gts-0.7.6" "/gnu/store/9ahz2yfi9ydchfksdgl96y785kn9453w-zlib-1.2.11" "/gnu/store/9f66pvz4vf1d9k8iir6asdp3l8k58cnn-libatomic-ops-7.4.4" "/gnu/store/9kpc0l7888av969242bswsd0h6vpw8q7-libcap-2.25" "/gnu/store/a3qkf2l3jqnpqibcg2iwbkak4d6scx28-libbsd-0.8.3" "/gnu/store/a42pfdz8w5qxdkp6xz8783ydywmp0p8p-module-import" "/gnu/store/aamm99b0iq42qcxqy6mxi50h93a84af3-m4-1.4.18" "/gnu/store/alg6ani0nnwrxyz15d1j5d0k6qs2m5sk-make-4.2.1" "/gnu/store/ax413995ajhcrk5g48r6w3bwkb3pb1lr-gettext-minimal-0.19.8.1" "/gnu/store/b7w6bjp602qvhbsjs535dfax8v7wy8s8-gmp-6.1.2" "/gnu/store/b837wr8ffw2ppbx1744a2xll70bh8h4c-freetype-2.7.1" "/gnu/store/bji78ysmny9kwy7566g3xzyqbjhvc1fn-libatomic-ops-7.4.4" "/gnu/store/c096s3rxsilbp36y7wnsr29w2hvr3s9x-autoconf-2.69" "/gnu/store/c140q16b1n4x0j2i7wv1awc1c39ipzrr-xz-5.2.2" "/gnu/store/cgnwpa0h824nvffcc3nngks1rv7p80d4-autoconf-wrapper-2.69" "/gnu/store/cz9ci6jdmwfnmk6n697dj98rc4sjs0ql-attr-2.4.47" "/gnu/store/dcc4b6r7npjmhdsah1g6nw1j9wdy635y-sqlite-3.17.0" "/gnu/store/dhc2iy059hi91fk55dcv79z09kp6500y-gcc-5.4.0-lib" "/gnu/store/dj9w9y66ncmn7qpnahz5fhqjjwqrnbjm-ncurses-6.0" "/gnu/store/dr4qfgqmcv8vjfyi5bh6iqxmcnr5psxh-libxau-1.0.8" "/gnu/store/fa6rba5r6m5ad1hy80ngmyc3r391lf9r-guile2.2-gnutls-3.5.9" "/gnu/store/fk20a8bgdd2ld3ik514zpfzj8akwvb30-gmp-6.1.2" "/gnu/store/fpbm0nvl2zi4jksm22kr1mq3hfw79xdn-libxcb-1.12" "/gnu/store/gdgrzf1y15scqwk1yzm51dc40g29vad9-findutils-4.6.0" "/gnu/store/gdx6vk579px16dgv60hgrr1c2k1pwsni-libx11-1.6.5" "/gnu/store/h7mx27bl0wynlz8vjszzykqqldccfwm5-ncurses-6.0" "/gnu/store/hag795ji8p9vqikwp8cibfibpsa39s3n-libgcrypt-1.7.6" "/gnu/store/hgv1xc69vf2cqy21iglppnr2329llxqw-pixman-0.34.0" "/gnu/store/hqim8ih804fbqk7gailh1hlgmkpjzccn-gzip-1.8" "/gnu/store/hqqw3jkqdpy72drq8mnn1kbh4dssw5lc-libxaw-1.0.13" "/gnu/store/hvyk1qyph1hihfmym1w271ygp84adb0v-readline-7.0" "/gnu/store/i0bjwdqvn0wixcwfpw254w0az17iysga-cairo-1.14.8" "/gnu/store/i92s6sqzlps5wasx09wv3lckn2lj3dm7-perl-5.24.0" "/gnu/store/if99vbhh9vk98p61a7l3s9d1vmbmfkk0-expat-2.2.0" "/gnu/store/j4p7cnxb6byf1wra3yz6pk8av4g5mwkl-libgc-7.6.0" "/gnu/store/j92kxc1l8h879cc4ss1gbhsq73ddnbsg-libgpg-error-1.26" "/gnu/store/ja06pq19g0cf2122kimk15z5yn0az73j-libxdmcp-1.1.2" "/gnu/store/jwkcd7siv6fcyl0qsg607bg9c8ap0gqr-zlib-1.2.11" "/gnu/store/k6jkr6p94xlsddgiy8abicm2b36gkdh6-harfbuzz-1.4.3" "/gnu/store/k7029k5va68lkapbzcycdzj7m5bjb4b8-bash-4.4.12" "/gnu/store/k8xbdjbpd83s6i48az9c7l6pkf8za8xj-libidn2-0.16" "/gnu/store/kbs0012il9z63kp0nlq0h66m6zjp4f21-diffutils-3.5" "/gnu/store/kndl3vllk4bdq1xd3p8k67h8jrsq8xbq-readline-7.0" "/gnu/store/l2paa4ka8lglar0b778qzl7a6h2v5dzn-guile-json-0.6.0" "/gnu/store/lcmcm4c0zjv3sa9amdrhaszd7vwwxjh1-libltdl-2.4.6" "/gnu/store/m71kgd1gbx609mqn2m4lm9x1i1pgzz74-help2man-1.47.4" "/gnu/store/mf9aln8affmgaj8vkwv636cgalfqdv8g-libjpeg-9b" "/gnu/store/mfx9ib0cy6mvjfmszplnlh0dvdb0513v-tar-1.29" "/gnu/store/n04pda8i88ry820qwz2f12i99535sy3d-pcre-8.40" "/gnu/store/ng61qpn9qk82nhxarksfnv53ki2j0ld2-module-import-compiled" "/gnu/store/nrrwyb21bn8cdc0k6pis3ggs2vayibin-bash-4.4.12" "/gnu/store/pv2qmb1kjbskzph09yg06vd0wm6iwgbd-graphite2-1.3.9" "/gnu/store/px46g18zg3sjgndwdcsgm6027w7s5gbc-pkg-config-0.29.1" "/gnu/store/q1x4v3x8v2g59d244hl7k0i1n4h83c9a-ncurses-6.0" "/gnu/store/qbngj80kmydl4jsba2cdgwq2y51xlfv0-patch-2.7.5" "/gnu/store/ql5h9hxh5560d42xdirh0yxzrgii6i0m-guile-ssh-0.11.0" "/gnu/store/r1zsyinrpcpfbcym5qrx6zbk6hwzxwnm-pango-1.40.3" "/gnu/store/r4pvx277n8lcfn9xv62sx6ikspwlg3kl-libxext-1.3.3" "/gnu/store/ri56wnmzkgzrajdyl5ydc55lrwy1164k-ld-wrapper-0" "/gnu/store/rmb4nh95s22lnd42sarzj5bswakd3mxx-icu4c-58.2" "/gnu/store/rmjlycdgiq8pfy5hfi42qhw3k7p6kdav-glibc-2.25" "/gnu/store/s3c442d075fc8a0q0nspc9jjsgjq613p-bzip2-1.0.6" "/gnu/store/sjm2c0dymn3mjl7g0jqbjdbibnqh0iaw-readline-7.0" "/gnu/store/v4h4qw8a95479capaq08vs4zdyxdijhv-libunistring-0.9.7" "/gnu/store/vis7x2j2lsmwbl5m5w794c23ysqah8xh-libpng-1.6.28" "/gnu/store/vlc43y485v80sgq7iw60hzy4pw5r52d2-libssh-0.7.4" "/gnu/store/vndw4mh60kap1vwk9mj0rmf4xh9z5ndq-libxft-2.3.2" "/gnu/store/w3ng5infdzn234167kvgc6a01n0j26qc-libltdl-2.4.6" "/gnu/store/w5b3db8y2rq3d73b30m4c5z0ql270r9a-libsm-1.2.2" "/gnu/store/wak3m4kdkgw010qn1ksnqlggvklp4b24-gmp-6.1.2" "/gnu/store/wfy8pwxjbyc9033sqb1snyfla3h8d02p-libice-1.0.9" "/gnu/store/wqx8sxqjvz323vk9xalrhqk5f35yd42f-libffi-3.2.1" "/gnu/store/x8cfigwi2sf7l2aq9csfjaawn1aa4733-graphviz-2.38.0" "/gnu/store/xpldw0hzzn85074zdscjxxp5c64176hv-libtasn1-4.10" "/gnu/store/y7cgyi1syavy17kacn5s2adw20i8mglz-guix-0.13.0-checkout" "/gnu/store/yr7m8ldp3n40mrzjax91cj9hjw1k2a58-libgc-7.6.0" "/gnu/store/z0as6gp6grsqs4a8knbxkcwbyxriqmgc-gs-fonts-8.11" "/gnu/store/z1kihijf9klm5g3rzn4nk034nxhx58mn-libunistring-0.9.7" "/gnu/store/z763jk8lkragpz2qr2wbrz946lgalx2h-sed-4.4" "/gnu/store/zk41gmzbibvpx9dpsm5gs8p0liz8shy0-guile-2.0.14" "/gnu/store/zq65kpvwwxgc3qqbf9apic8gyss2l0zq-binutils-2.27" "/gnu/store/zrk4galrr3cbp4yvkn93hcq6dpkf6k98-texinfo-6.3" "/tmp/guix-build-guix-0.13.0.drv-0" "/proc" "/dev/shm" "/dev/pts")
result: PASS
test-name: swapon, ENOENT/EPERM
location: /tmp/guix-build-guix-0.13.0.drv-0/source/tests/syscalls.scm:61
source:
+ (test-assert
+ "swapon, ENOENT/EPERM"
+ (catch 'system-error
+ (lambda () (swapon "/does-not-exist") #f)
+ (lambda args
+ (memv (system-error-errno args)
+ (list EPERM ENOENT)))))
actual-value: (1 2)
result: PASS
test-name: swapoff, ENOENT/EINVAL/EPERM
location: /tmp/guix-build-guix-0.13.0.drv-0/source/tests/syscalls.scm:69
source:
+ (test-assert
+ "swapoff, ENOENT/EINVAL/EPERM"
+ (catch 'system-error
+ (lambda () (swapoff "/does-not-exist") #f)
+ (lambda args
+ (memv (system-error-errno args)
+ (list EPERM EINVAL ENOENT)))))
actual-value: (1 22 2)
result: PASS
test-name: mkdtemp!
location: /tmp/guix-build-guix-0.13.0.drv-0/source/tests/syscalls.scm:77
source:
+ (test-assert
+ "mkdtemp!"
+ (let* ((tmp (or (getenv "TMPDIR") "/tmp"))
+ (dir (mkdtemp!
+ (string-append tmp "/guix-test-XXXXXX"))))
+ (and (file-exists? dir) (begin (rmdir dir) #t))))
actual-value: #t
result: PASS
test-name: statfs, ENOENT
location: /tmp/guix-build-guix-0.13.0.drv-0/source/tests/syscalls.scm:85
source:
+ (test-equal
+ "statfs, ENOENT"
+ ENOENT
+ (catch 'system-error
+ (lambda () (statfs "/does-not-exist"))
+ (compose system-error-errno list)))
expected-value: 2
actual-value: 2
result: PASS
test-name: statfs
location: /tmp/guix-build-guix-0.13.0.drv-0/source/tests/syscalls.scm:92
source:
+ (test-assert
+ "statfs"
+ (let ((fs (statfs "/")))
+ (and (file-system? fs)
+ (> (file-system-block-size fs) 0)
+ (>= (file-system-blocks-available fs) 0)
+ (>= (file-system-blocks-free fs)
+ (file-system-blocks-available fs)))))
actual-value: #t
result: PASS
test-name: clone
location: /tmp/guix-build-guix-0.13.0.drv-0/source/tests/syscalls.scm:110
source:
+ (test-assert
+ "clone"
+ (match (clone (logior CLONE_NEWUSER SIGCHLD))
+ (0 (primitive-exit 42))
+ (pid (and (not (equal?
+ (readlink (user-namespace pid))
+ (readlink (user-namespace (getpid)))))
+ (match (waitpid pid)
+ ((_ . status) (= 42 (status:exit-val status))))))))
result: SKIP
test-name: setns
location: /tmp/guix-build-guix-0.13.0.drv-0/source/tests/syscalls.scm:124
source:
+ (test-assert
+ "setns"
+ (match (clone (logior CLONE_NEWUSER SIGCHLD))
+ (0 (primitive-exit 0))
+ (clone-pid
+ (match (pipe)
+ ((in . out)
+ (match (primitive-fork)
+ (0
+ (close in)
+ (call-with-input-file
+ (user-namespace clone-pid)
+ (lambda (port) (setns (port->fdes port) 0)))
+ (write 'done out)
+ (close out)
+ (primitive-exit 0))
+ (fork-pid
+ (close out)
+ (read in)
+ (let ((result
+ (and (equal?
+ (readlink
+ (user-namespace clone-pid))
+ (readlink
+ (user-namespace fork-pid))))))
+ (waitpid clone-pid)
+ (waitpid fork-pid)
+ result))))))))
result: SKIP
test-name: pivot-root
location: /tmp/guix-build-guix-0.13.0.drv-0/source/tests/syscalls.scm:157
source:
+ (test-equal
+ "pivot-root"
+ #t
+ (match (pipe)
+ ((in . out)
+ (match (clone (logior CLONE_NEWUSER CLONE_NEWNS SIGCHLD))
+ (0
+ (dynamic-wind
+ (const #t)
+ (lambda ()
+ (close in)
+ (call-with-temporary-directory
+ (lambda (root)
+ (let ((put-old (string-append root "/real-root")))
+ (mount "none" root "tmpfs")
+ (mkdir put-old)
+ (call-with-output-file
+ (string-append root "/test")
+ (lambda (port) (display "testing\n" port)))
+ (pivot-root root put-old)
+ (write (file-exists? "/test") out)
+ (close out)))))
+ (lambda () (primitive-exit 0))))
+ (pid (close out)
+ (let ((result (read in)))
+ (close in)
+ (and (zero? (match (waitpid pid)
+ ((_ . status)
+ (status:exit-val status))))
+ (eq? #t result))))))))
result: SKIP
test-name: fcntl-flock wait
location: /tmp/guix-build-guix-0.13.0.drv-0/source/tests/syscalls.scm:191
source:
+ (test-equal
+ "fcntl-flock wait"
+ 42
+ (let ((file (open-file temp-file "w0b")))
+ (fcntl-flock file 'write-lock)
+ (match (primitive-fork)
+ (0
+ (dynamic-wind
+ (const #t)
+ (lambda ()
+ (let ((file (open-file temp-file "r0b")))
+ (fcntl-flock file 'read-lock)
+ (primitive-exit (read file)))
+ (primitive-exit 1))
+ (lambda () (primitive-exit 2))))
+ (pid (display "hello, world!" file)
+ (force-output file)
+ (sleep 1)
+ (seek file 0 SEEK_SET)
+ (truncate-file file 0)
+ (write 42 file)
+ (force-output file)
+ (fcntl-flock file 'unlock)
+ (match (waitpid pid)
+ ((_ . status)
+ (let ((result (status:exit-val status)))
+ (close-port file)
+ result)))))))
(string-append root "/test")
+ (lambda (port) (display "testing\n" port)))
+ (pivot-root root put-old)
+ (write (file-exists? "/test") out)
+ (close out)))))
+ (lambda () (primitive-exit 0))))
+ (pid (close out)
+ (let ((result (read in)))
+ (close in)
+ (and (zero? (match (waitpid pid)
+ ((_ . status)
+ (status:exit-val status))))
+ (eq? #t result))))))))
result: SKIP
test-name: fcntl-flock wait
location: /tmp/guix-build-guix-0.13.0.drv-0/source/tests/syscalls.scm:191
source:
+ (test-equal
+ "fcntl-flock wait"
+ 42
+ (let ((file (open-file temp-file "w0b")))
+ (fcntl-flock file 'write-lock)
+ (match (primitive-fork)
+ (0
+ (dynamic-wind
+ (const #t)
+ (lambda ()
+ (let ((file (open-file temp-file "r0b")))
+ (fcntl-flock file 'read-lock)
+ (primitive-exit (read file)))
+ (primitive-exit 1))
+ (lambda () (primitive-exit 2))))
+ (pid (display "hello, world!" file)
+ (force-output file)
+ (sleep 1)
+ (seek file 0 SEEK_SET)
+ (truncate-file file 0)
+ (write 42 file)
+ (force-output file)
+ (fcntl-flock file 'unlock)
+ (match (waitpid pid)
+ ((_ . status)
+ (let ((result (status:exit-val status)))
+ (close-port file)
+ result)))))))
expected-value: 42
actual-value: 42
result: PASS
test-name: fcntl-flock non-blocking
location: /tmp/guix-build-guix-0.13.0.drv-0/source/tests/syscalls.scm:230
source:
+ (test-equal
+ "fcntl-flock non-blocking"
+ EAGAIN
+ (match (pipe)
+ ((input . output)
+ (match (primitive-fork)
+ (0
+ (dynamic-wind
+ (const #t)
+ (lambda ()
+ (close-port output)
+ (read-char input)
+ (let ((file (open-file temp-file "w0")))
+ (catch 'flock-error
+ (lambda ()
+ (fcntl-flock file 'write-lock #:wait? #f))
+ (lambda (key errno)
+ (primitive-exit (pk 'errno errno)))))
+ (primitive-exit -1))
+ (lambda () (primitive-exit -2))))
+ (pid (close-port input)
+ (let ((file (open-file temp-file "w0")))
+ (fcntl-flock file 'write-lock)
+ (write 'green-light output)
+ (force-output output)
+ (match (waitpid pid)
+ ((_ . status)
+ (let ((result (status:exit-val status)))
+ (fcntl-flock file 'unlock)
+ (close-port file)
+ result)))))))))
;;; (errno 11)
(string-append root "/test")
+ (lambda (port) (display "testing\n" port)))
+ (pivot-root root put-old)
+ (write (file-exists? "/test") out)
+ (close out)))))
+ (lambda () (primitive-exit 0))))
+ (pid (close out)
+ (let ((result (read in)))
+ (close in)
+ (and (zero? (match (waitpid pid)
+ ((_ . status)
+ (status:exit-val status))))
+ (eq? #t result))))))))
result: SKIP
test-name: fcntl-flock wait
location: /tmp/guix-build-guix-0.13.0.drv-0/source/tests/syscalls.scm:191
source:
+ (test-equal
+ "fcntl-flock wait"
+ 42
+ (let ((file (open-file temp-file "w0b")))
+ (fcntl-flock file 'write-lock)
+ (match (primitive-fork)
+ (0
+ (dynamic-wind
+ (const #t)
+ (lambda ()
+ (let ((file (open-file temp-file "r0b")))
+ (fcntl-flock file 'read-lock)
+ (primitive-exit (read file)))
+ (primitive-exit 1))
+ (lambda () (primitive-exit 2))))
+ (pid (display "hello, world!" file)
+ (force-output file)
+ (sleep 1)
+ (seek file 0 SEEK_SET)
+ (truncate-file file 0)
+ (write 42 file)
+ (force-output file)
+ (fcntl-flock file 'unlock)
+ (match (waitpid pid)
+ ((_ . status)
+ (let ((result (status:exit-val status)))
+ (close-port file)
+ result)))))))
expected-value: 42
actual-value: 42
result: PASS
test-name: fcntl-flock non-blocking
location: /tmp/guix-build-guix-0.13.0.drv-0/source/tests/syscalls.scm:230
source:
+ (test-equal
+ "fcntl-flock non-blocking"
+ EAGAIN
+ (match (pipe)
+ ((input . output)
+ (match (primitive-fork)
+ (0
+ (dynamic-wind
+ (const #t)
+ (lambda ()
+ (close-port output)
+ (read-char input)
+ (let ((file (open-file temp-file "w0")))
+ (catch 'flock-error
+ (lambda ()
+ (fcntl-flock file 'write-lock #:wait? #f))
+ (lambda (key errno)
+ (primitive-exit (pk 'errno errno)))))
+ (primitive-exit -1))
+ (lambda () (primitive-exit -2))))
+ (pid (close-port input)
+ (let ((file (open-file temp-file "w0")))
+ (fcntl-flock file 'write-lock)
+ (write 'green-light output)
+ (force-output output)
+ (match (waitpid pid)
+ ((_ . status)
+ (let ((result (status:exit-val status)))
+ (fcntl-flock file 'unlock)
+ (close-port file)
+ result)))))))))
expected-value: 11
actual-value: 11
result: PASS
test-name: all-network-interface-names
location: /tmp/guix-build-guix-0.13.0.drv-0/source/tests/syscalls.scm:272
source:
+ (test-assert
+ "all-network-interface-names"
+ (match (all-network-interface-names)
+ (((? string? names) ..1) (member "lo" names))))
actual-value: ("lo")
result: PASS
test-name: network-interface-names
location: /tmp/guix-build-guix-0.13.0.drv-0/source/tests/syscalls.scm:277
source:
+ (test-assert
+ "network-interface-names"
+ (match (network-interface-names)
+ (((? string? names) ..1)
+ (lset<=
+ string=?
+ names
+ (all-network-interface-names)))))
actual-value: #t
result: PASS
test-name: network-interface-flags
location: /tmp/guix-build-guix-0.13.0.drv-0/source/tests/syscalls.scm:282
source:
+ (test-assert
+ "network-interface-flags"
+ (let* ((sock (socket AF_INET SOCK_STREAM 0))
+ (flags (network-interface-flags sock "lo")))
+ (close-port sock)
+ (and (not (zero? (logand flags IFF_LOOPBACK)))
+ (not (zero? (logand flags IFF_UP))))))
actual-value: #t
result: PASS
test-name: loopback-network-interface?
location: /tmp/guix-build-guix-0.13.0.drv-0/source/tests/syscalls.scm:289
source:
+ (test-equal
+ "loopback-network-interface?"
+ ENODEV
+ (and (loopback-network-interface? "lo")
+ (catch 'system-error
+ (lambda ()
+ (loopback-network-interface? "nonexistent")
+ #f)
+ (lambda args (system-error-errno args)))))
expected-value: 19
actual-value: 19
result: PASS
test-name: set-network-interface-flags
location: /tmp/guix-build-guix-0.13.0.drv-0/source/tests/syscalls.scm:300
source:
+ (test-assert
+ "set-network-interface-flags"
+ (let ((sock (socket AF_INET SOCK_STREAM 0)))
+ (catch 'system-error
+ (lambda ()
+ (set-network-interface-flags sock "lo" IFF_UP))
+ (lambda args
+ (close-port sock)
+ (memv (system-error-errno args)
+ (list EPERM EACCES))))))
actual-value: (1 13)
result: PASS
test-name: network-interface-address lo
location: /tmp/guix-build-guix-0.13.0.drv-0/source/tests/syscalls.scm:310
source:
+ (test-equal
+ "network-interface-address lo"
+ (make-socket-address
+ AF_INET
+ (inet-pton AF_INET "127.0.0.1")
+ 0)
+ (let* ((sock (socket AF_INET SOCK_STREAM 0))
+ (addr (network-interface-address sock "lo")))
+ (close-port sock)
+ addr))
expected-value: #(2 2130706433 0)
actual-value: #(2 2130706433 0)
result: PASS
test-name: set-network-interface-address
location: /tmp/guix-build-guix-0.13.0.drv-0/source/tests/syscalls.scm:318
source:
+ (test-assert
+ "set-network-interface-address"
+ (let ((sock (socket AF_INET SOCK_STREAM 0)))
+ (catch 'system-error
+ (lambda ()
+ (set-network-interface-address
+ sock
+ "nonexistent"
+ (make-socket-address
+ AF_INET
+ (inet-pton AF_INET "127.12.14.15")
+ 0)))
+ (lambda args
+ (close-port sock)
+ (memv (system-error-errno args)
+ (list EPERM EACCES))))))
actual-value: (1 13)
result: PASS
test-name: network-interface-netmask lo
location: /tmp/guix-build-guix-0.13.0.drv-0/source/tests/syscalls.scm:332
source:
+ (test-equal
+ "network-interface-netmask lo"
+ (make-socket-address
+ AF_INET
+ (inet-pton AF_INET "255.0.0.0")
+ 0)
+ (let* ((sock (socket AF_INET SOCK_STREAM 0))
+ (addr (network-interface-netmask sock "lo")))
+ (close-port sock)
+ addr))
expected-value: #(2 4278190080 0)
actual-value: #(2 4278190080 0)
result: PASS
test-name: set-network-interface-netmask
location: /tmp/guix-build-guix-0.13.0.drv-0/source/tests/syscalls.scm:340
source:
+ (test-assert
+ "set-network-interface-netmask"
+ (let ((sock (socket AF_INET SOCK_STREAM 0)))
+ (catch 'system-error
+ (lambda ()
+ (set-network-interface-netmask
+ sock
+ "nonexistent"
+ (make-socket-address
+ AF_INET
+ (inet-pton AF_INET "255.0.0.0")
+ 0)))
+ (lambda args
+ (close-port sock)
+ (memv (system-error-errno args)
+ (list EPERM EACCES))))))
actual-value: (1 13)
result: PASS
test-name: network-interfaces returns one or more interfaces
location: /tmp/guix-build-guix-0.13.0.drv-0/source/tests/syscalls.scm:353
source:
+ (test-equal
+ "network-interfaces returns one or more interfaces"
+ '(#t #t #t)
+ (match (network-interfaces)
+ ((interfaces ..1)
+ (list (every interface? interfaces)
+ (every string? (map interface-name interfaces))
+ (every (lambda (sockaddr)
+ (or (vector? sockaddr) (not sockaddr)))
+ (map interface-address interfaces))))))
expected-value: (#t #t #t)
actual-value: (#t #t #t)
result: PASS
test-name: network-interfaces returns "lo"
location: /tmp/guix-build-guix-0.13.0.drv-0/source/tests/syscalls.scm:365
source:
+ (test-equal
+ "network-interfaces returns \"lo\""
+ (list #t
+ (make-socket-address
+ AF_INET
+ (inet-pton AF_INET "127.0.0.1")
+ 0))
+ (match (filter
+ (lambda (interface)
+ (string=? "lo" (interface-name interface)))
+ (network-interfaces))
+ ((loopbacks ..1)
+ (list (every (lambda (lo)
+ (not (zero? (logand
+ IFF_LOOPBACK
+ (interface-flags lo)))))
+ loopbacks)
+ (match (find (lambda (lo)
+ (= AF_INET
+ (sockaddr:fam (interface-address lo))))
+ loopbacks)
+ (#f #f)
+ (lo (interface-address lo)))))))
expected-value: (#t #(2 2130706433 0))
actual-value: (#t #(2 2130706433 0))
result: PASS
test-name: add-network-route/gateway
location: /tmp/guix-build-guix-0.13.0.drv-0/source/tests/syscalls.scm:381
source:
+ (test-assert
+ "add-network-route/gateway"
+ (let ((sock (socket AF_INET SOCK_STREAM 0))
+ (gateway
+ (make-socket-address
+ AF_INET
+ (inet-pton AF_INET "192.168.0.1")
+ 0)))
+ (catch 'system-error
+ (lambda ()
+ (add-network-route/gateway sock gateway))
+ (lambda args
+ (close-port sock)
+ (memv (system-error-errno args)
+ (list EPERM EACCES))))))
actual-value: (1 13)
result: PASS
test-name: delete-network-route
location: /tmp/guix-build-guix-0.13.0.drv-0/source/tests/syscalls.scm:394
source:
+ (test-assert
+ "delete-network-route"
+ (let ((sock (socket AF_INET SOCK_STREAM 0))
+ (destination
+ (make-socket-address AF_INET INADDR_ANY 0)))
+ (catch 'system-error
+ (lambda ()
+ (delete-network-route sock destination))
+ (lambda args
+ (close-port sock)
+ (memv (system-error-errno args)
+ (list EPERM EACCES))))))
actual-value: (1 13)
result: PASS
test-name: tcgetattr ENOTTY
location: /tmp/guix-build-guix-0.13.0.drv-0/source/tests/syscalls.scm:404
source:
+ (test-equal
+ "tcgetattr ENOTTY"
+ ENOTTY
+ (catch 'system-error
+ (lambda ()
+ (call-with-input-file
+ "/dev/null"
+ (lambda (port) (tcgetattr (fileno port)))))
+ (compose system-error-errno list)))
expected-value: 25
actual-value: 25
result: PASS
test-name: tcgetattr
location: /tmp/guix-build-guix-0.13.0.drv-0/source/tests/syscalls.scm:418
source:
+ (test-assert
+ "tcgetattr"
+ (let ((termios (tcgetattr 0)))
+ (and (termios? termios)
+ (> (termios-input-speed termios) 0)
+ (> (termios-output-speed termios) 0))))
result: SKIP
test-name: tcsetattr
location: /tmp/guix-build-guix-0.13.0.drv-0/source/tests/syscalls.scm:424
source:
+ (test-assert
+ "tcsetattr"
+ (let ((first (tcgetattr 0)))
+ (tcsetattr 0 (tcsetattr-action TCSANOW) first)
+ (equal? first (tcgetattr 0))))
result: SKIP
test-name: terminal-window-size ENOTTY
location: /tmp/guix-build-guix-0.13.0.drv-0/source/tests/syscalls.scm:429
source:
+ (test-assert
+ "terminal-window-size ENOTTY"
+ (call-with-input-file
+ "/dev/null"
+ (lambda (port)
+ (catch 'system-error
+ (lambda () (terminal-window-size port))
+ (lambda args
+ (memv (system-error-errno args)
+ (list ENOTTY EINVAL)))))))
actual-value: (25 22)
result: PASS
test-name: terminal-columns
location: /tmp/guix-build-guix-0.13.0.drv-0/source/tests/syscalls.scm:440
source:
+ (test-assert
+ "terminal-columns"
+ (> (terminal-columns) 0))
actual-value: #t
result: PASS
test-name: terminal-columns non-file port
location: /tmp/guix-build-guix-0.13.0.drv-0/source/tests/syscalls.scm:443
source:
+ (test-assert
+ "terminal-columns non-file port"
+ (> (terminal-columns
+ (open-input-string
+ "Join us now, share the software!"))
+ 0))
actual-value: #t
result: PASS
test-name: utmpx-entries
location: /tmp/guix-build-guix-0.13.0.drv-0/source/tests/syscalls.scm:447
source:
+ (test-assert
+ "utmpx-entries"
+ (match (utmpx-entries)
+ (((? utmpx? entries) ...)
+ (every (lambda (entry)
+ (match (utmpx-user entry)
+ ((? string?)
+ (or (eqv? (login-type BOOT_TIME)
+ (utmpx-login-type entry))
+ (> (utmpx-pid entry) 0)))
+ (#f #t)))
+ entries))))
actual-value: #t
result: PASS
test-name: read-utmpx, EOF
location: /tmp/guix-build-guix-0.13.0.drv-0/source/tests/syscalls.scm:459
source:
+ (test-assert
+ "read-utmpx, EOF"
+ (eof-object? (read-utmpx (%make-void-port "r"))))
actual-value: #t
result: PASS
test-name: read-utmpx
location: /tmp/guix-build-guix-0.13.0.drv-0/source/tests/syscalls.scm:464
source:
+ (test-assert
+ "read-utmpx"
+ (let ((result
+ (call-with-input-file
+ "/var/run/utmpx"
+ read-utmpx)))
+ (or (utmpx? result) (eof-object? result))))
result: SKIP
SKIP: tests/gremlin
===================
test-name: elf-dynamic-info-needed, executable
location: /tmp/guix-build-guix-0.13.0.drv-0/source/tests/gremlin.scm:44
source:
+ (test-assert
+ "elf-dynamic-info-needed, executable"
+ (let* ((elf (call-with-input-file %guile-executable read-elf))
+ (dyninfo (elf-dynamic-info elf)))
+ (or (not dyninfo)
+ (lset<=
+ string=?
+ (list (string-append "libguile-" (effective-version))
+ "libgc"
+ "libunistring"
+ "libffi")
+ (map (lambda (lib)
+ (string-take lib (string-contains lib ".so")))
+ (elf-dynamic-info-needed dyninfo))))))
result: SKIP
test-name: expand-origin
location: /tmp/guix-build-guix-0.13.0.drv-0/source/tests/gremlin.scm:55
source:
+ (test-equal
+ "expand-origin"
+ '("OOO/../lib"
+ "OOO"
+ "../OOO/bar/OOO/baz"
+ "ORIGIN/foo")
+ (map (cut expand-origin <> "OOO")
+ '("$ORIGIN/../lib"
+ "${ORIGIN}"
+ "../${ORIGIN}/bar/$ORIGIN/baz"
+ "ORIGIN/foo")))
expected-value: ("OOO/../lib" "OOO" "../OOO/bar/OOO/baz" "ORIGIN/foo")
actual-value: ("OOO/../lib" "OOO" "../OOO/bar/OOO/baz" "ORIGIN/foo")
result: PASS
SKIP: tests/containers
======================
test-name: call-with-container, exit with 0 when there is no error
location: /tmp/guix-build-guix-0.13.0.drv-0/source/tests/containers.scm:42
source:
+ (test-assert
+ "call-with-container, exit with 0 when there is no error"
+ (zero? (call-with-container
+ '()
+ (const #t)
+ #:namespaces
+ '(user))))
result: SKIP
test-name: call-with-container, user namespace
location: /tmp/guix-build-guix-0.13.0.drv-0/source/tests/containers.scm:48
source:
+ (test-assert
+ "call-with-container, user namespace"
+ (zero? (call-with-container
+ '()
+ (lambda ()
+ (assert-exit
+ (and (zero? (getuid)) (zero? (getgid)))))
+ #:namespaces
+ '(user))))
result: SKIP
test-name: call-with-container, uts namespace
location: /tmp/guix-build-guix-0.13.0.drv-0/source/tests/containers.scm:58
source:
+ (test-assert
+ "call-with-container, uts namespace"
+ (zero? (call-with-container
+ '()
+ (lambda ()
+ (sethostname "test-container")
+ (primitive-exit 0))
+ #:namespaces
+ '(user uts))))
result: SKIP
test-name: call-with-container, pid namespace
location: /tmp/guix-build-guix-0.13.0.drv-0/source/tests/containers.scm:70
source:
+ (test-assert
+ "call-with-container, pid namespace"
+ (zero? (call-with-container
+ '()
+ (lambda ()
+ (match (primitive-fork)
+ (0 (assert-exit (= 2 (getpid))))
+ (pid (primitive-exit
+ (match (waitpid pid)
+ ((_ . status)
+ (status:exit-val status)))))))
+ #:namespaces
+ '(user pid))))
result: SKIP
test-name: call-with-container, mnt namespace
location: /tmp/guix-build-guix-0.13.0.drv-0/source/tests/containers.scm:87
source:
+ (test-assert
+ "call-with-container, mnt namespace"
+ (zero? (call-with-container
+ (list (file-system
+ (device "none")
+ (mount-point "/testing")
+ (type "tmpfs")
+ (check? #f)))
+ (lambda ()
+ (assert-exit (file-exists? "/testing")))
+ #:namespaces
+ '(user mnt))))
result: SKIP
test-name: call-with-container, mnt namespace, wrong bind mount
location: /tmp/guix-build-guix-0.13.0.drv-0/source/tests/containers.scm:100
source:
+ (test-equal
+ "call-with-container, mnt namespace, wrong bind mount"
+ `(system-error ,ENOENT)
+ (catch 'system-error
+ (lambda ()
+ (call-with-container
+ (list (file-system
+ (device "/does-not-exist")
+ (mount-point "/foo")
+ (type "none")
+ (flags '(bind-mount))
+ (check? #f)))
+ (const #t)
+ #:namespaces
+ '(user mnt)))
+ (lambda args
+ (list 'system-error (system-error-errno args)))))
result: SKIP
test-name: call-with-container, all namespaces
location: /tmp/guix-build-guix-0.13.0.drv-0/source/tests/containers.scm:118
source:
+ (test-assert
+ "call-with-container, all namespaces"
+ (zero? (call-with-container
+ '()
+ (lambda () (primitive-exit 0)))))
result: SKIP
test-name: container-excursion
location: /tmp/guix-build-guix-0.13.0.drv-0/source/tests/containers.scm:126
source:
+ (test-assert
+ "container-excursion"
+ (call-with-temporary-directory
+ (lambda (root)
+ (match (list (pipe) (pipe))
+ (((start-in . start-out) (end-in . end-out))
+ (define (container)
+ (close end-out)
+ (close start-in)
+ (write 'ready start-out)
+ (close start-out)
+ (read end-in)
+ (close end-in))
+ (define (namespaces pid)
+ (let ((pid (number->string pid)))
+ (map (lambda (ns)
+ (readlink (string-append "/proc/" pid "/ns/" ns)))
+ '("user" "ipc" "uts" "net" "pid" "mnt"))))
+ (let* ((pid (run-container root '() %namespaces 1 container))
+ (container-namespaces (namespaces pid))
+ (result
+ (begin
+ (close start-out)
+ (read start-in)
+ (close start-in)
+ (container-excursion
+ pid
+ (lambda ()
+ (match (primitive-fork)
+ (0
+ (assert-exit
+ (equal?
+ container-namespaces
+ (namespaces (getpid)))))
+ (fork-pid
+ (match (waitpid fork-pid)
+ ((_ . status)
+ (primitive-exit
+ (status:exit-val
+ status)))))))))))
+ (close end-in)
+ (write 'done end-out)
+ (close end-out)
+ (waitpid pid)
+ (zero? result)))))))
result: SKIP
test-name: container-excursion, same namespaces
location: /tmp/guix-build-guix-0.13.0.drv-0/source/tests/containers.scm:184
source:
+ (test-equal
+ "container-excursion, same namespaces"
+ 42
+ (container-excursion
+ (getpid)
+ (lambda () (primitive-exit 42))))
result: SKIP
test-name: container-excursion*
location: /tmp/guix-build-guix-0.13.0.drv-0/source/tests/containers.scm:194
source:
+ (test-assert
+ "container-excursion*"
+ (call-with-temporary-directory
+ (lambda (root)
+ (define (namespaces pid)
+ (let ((pid (number->string pid)))
+ (map (lambda (ns)
+ (readlink (string-append "/proc/" pid "/ns/" ns)))
+ '("user" "ipc" "uts" "net" "pid" "mnt"))))
+ (let* ((pid (run-container
+ root
+ '()
+ %namespaces
+ 1
+ (lambda () (sleep 100))))
+ (result
+ (container-excursion*
+ pid
+ (lambda () (namespaces 1)))))
+ (kill pid SIGKILL)
+ (equal? result (namespaces pid))))))
result: SKIP
test-name: container-excursion*, same namespaces
location: /tmp/guix-build-guix-0.13.0.drv-0/source/tests/containers.scm:215
source:
+ (test-equal
+ "container-excursion*, same namespaces"
+ 42
+ (container-excursion*
+ (getpid)
+ (lambda () (* 6 7))))
result: SKIP
SKIP: tests/pack
================
random seed for tests: 1495496074
test-name: self-contained-tarball
location: /tmp/guix-build-guix-0.13.0.drv-0/source/tests/pack.scm:54
source:
+ (test-assert
+ "self-contained-tarball"
+ (run-with-store
+ %store
+ (mlet* %store-monad
+ ((profile
+ (profile-derivation
+ (packages->manifest (list %bootstrap-guile))
+ #:hooks
+ '()
+ #:locales?
+ #f))
+ (tarball
+ (self-contained-tarball
+ "pack"
+ profile
+ #:symlinks
+ '(("/bin/Guile" -> "bin/guile"))
+ #:compressor
+ %gzip-compressor
+ #:tar
+ %tar-bootstrap))
+ (check (gexp->derivation
+ "check-tarball"
+ (gexp (let ((guile (string-append
+ "."
+ (ungexp profile)
+ "/bin")))
+ (setenv
+ "PATH"
+ (string-append
+ (ungexp %tar-bootstrap)
+ "/bin"))
+ (system* "tar" "xvf" (ungexp tarball))
+ (mkdir (ungexp output))
+ (exit (and (file-exists?
+ (string-append guile "/guile"))
+ (string=?
+ (string-append
+ (ungexp %bootstrap-guile)
+ "/bin")
+ (readlink guile))
+ (string=?
+ (string-append
+ (string-drop guile 1)
+ "/guile")
+ (readlink "bin/Guile")))))))))
+ (built-derivations (list check)))
+ #:guile-for-build
+ (%guile-for-build)))
result: SKIP
SKIP: tests/pypi
================
test-name: guix-package->pypi-name, old URL style
location: /tmp/guix-build-guix-0.13.0.drv-0/source/tests/pypi.scm:78
source:
+ (test-equal
+ "guix-package->pypi-name, old URL style"
+ "psutil"
+ (guix-package->pypi-name
+ (dummy-package
+ "foo"
+ (source
+ (dummy-origin
+ (uri "https://pypi.io/packages/source/p/psutil/psutil-4.3.0.tar.gz"))))))
expected-value: "psutil"
actual-value: "psutil"
result: PASS
test-name: guix-package->pypi-name, new URL style
location: /tmp/guix-build-guix-0.13.0.drv-0/source/tests/pypi.scm:86
source:
+ (test-equal
+ "guix-package->pypi-name, new URL style"
+ "certbot"
+ (guix-package->pypi-name
+ (dummy-package
+ "foo"
+ (source
+ (dummy-origin
+ (uri "https://pypi.python.org/packages/a2/3b/4756e6a0ceb14e084042a2a65c615d68d25621c6fd446d0fc10d14c4ce7d/certbot-0.8.1.tar.gz"))))))
expected-value: "certbot"
actual-value: "certbot"
result: PASS
test-name: guix-package->pypi-name, several URLs
location: /tmp/guix-build-guix-0.13.0.drv-0/source/tests/pypi.scm:94
source:
+ (test-equal
+ "guix-package->pypi-name, several URLs"
+ "cram"
+ (guix-package->pypi-name
+ (dummy-package
+ "foo"
+ (source
+ (dummy-origin
+ (uri (list "https://bitheap.org/cram/cram-0.7.tar.gz"
+ (pypi-uri "cram" "0.7"))))))))
expected-value: "cram"
actual-value: "cram"
result: PASS
test-name: pypi->guix-package
location: /tmp/guix-build-guix-0.13.0.drv-0/source/tests/pypi.scm:103
source:
+ (test-assert
+ "pypi->guix-package"
+ (mock ((guix import utils)
+ url-fetch
+ (lambda (url file-name)
+ (match url
+ ("https://example.com/foo-1.0.0.tar.gz"
+ (begin
+ (mkdir "foo-1.0.0")
+ (with-output-to-file
+ "foo-1.0.0/requirements.txt"
+ (lambda () (display test-requirements)))
+ (system* "tar" "czvf" file-name "foo-1.0.0/")
+ (delete-file-recursively "foo-1.0.0")
+ (set! test-source-hash
+ (call-with-input-file file-name port-sha256))))
+ ("https://example.com/foo-1.0.0-py2.py3-none-any.whl"
+ #f)
+ (_ (error "Unexpected URL: " url)))))
+ (mock ((guix http-client)
+ http-fetch
+ (lambda (url . rest)
+ (match url
+ ("https://pypi.python.org/pypi/foo/json"
+ (values
+ (open-input-string test-json)
+ (string-length test-json)))
+ ("https://example.com/foo-1.0.0-py2.py3-none-any.whl"
+ #f)
+ (_ (error "Unexpected URL: " url)))))
+ (match (pypi->guix-package "foo")
+ (('package
+ ('name "python-foo")
+ ('version "1.0.0")
+ ('source
+ ('origin
+ ('method 'url-fetch)
+ ('uri
+ (string-append
+ "https://example.com/foo-"
+ version
+ ".tar.gz"))
+ ('sha256 ('base32 (? string? hash)))))
+ ('build-system 'python-build-system)
+ ('propagated-inputs
+ ('quasiquote
+ (("python-bar" ('unquote 'python-bar))
+ ("python-baz" ('unquote 'python-baz)))))
+ ('home-page "http://example.com")
+ ('synopsis "summary")
+ ('description "summary")
+ ('license 'license:lgpl2.0))
+ (string=?
+ (bytevector->nix-base32-string test-source-hash)foo-1.0.0/
foo-1.0.0/requirements.txt
random seed for tests: 1495496117
+ hash))
+ (x (pk 'fail x #f))))))
actual-value: #t
result: PASS
test-name: pypi->guix-package, wheels
location: /tmp/guix-build-guix-0.13.0.drv-0/source/tests/pypi.scm:155
source:
+ (test-assert
+ "pypi->guix-package, wheels"
+ (mock ((guix import utils)
+ url-fetch
+ (lambda (url file-name)
+ (match url
+ ("https://example.com/foo-1.0.0.tar.gz"
+ (begin
+ (mkdir "foo-1.0.0")
+ (with-output-to-file
+ "foo-1.0.0/requirements.txt"
+ (lambda () (display test-requirements)))
+ (system* "tar" "czvf" file-name "foo-1.0.0/")
+ (delete-file-recursively "foo-1.0.0")
+ (set! test-source-hash
+ (call-with-input-file file-name port-sha256))))
+ ("https://example.com/foo-1.0.0-py2.py3-none-any.whl"
+ (begin
+ (mkdir "foo-1.0.0.dist-info")
+ (with-output-to-file
+ "foo-1.0.0.dist-info/metadata.json"
+ (lambda () (display test-metadata)))
+ (let ((zip-file (string-append file-name ".zip")))
+ (system*
+ "zip"
+ zip-file
+ "foo-1.0.0.dist-info/metadata.json")
+ (rename-file zip-file file-name))
+ (delete-file-recursively "foo-1.0.0.dist-info")))
+ (_ (error "Unexpected URL: " url)))))
+ (mock ((guix http-client)
+ http-fetch
+ (lambda (url . rest)
+ (match url
+ ("https://pypi.python.org/pypi/foo/json"
+ (values
+ (open-input-string test-json)
+ (string-length test-json)))
+ ("https://example.com/foo-1.0.0-py2.py3-none-any.whl"
+ #f)
+ (_ (error "Unexpected URL: " url)))))
+ (match (pypi->guix-package "foo")
+ (('package
+ ('name "python-foo")
+ ('version "1.0.0")
+ ('source
+ ('origin
+ ('method 'url-fetch)
+ ('uri
+ (string-append
+ "https://example.com/foo-"
+ version
+ ".tar.gz"))
+ ('sha256 ('base32 (? string? hash)))))
+ ('build-system 'python-build-system)
+ ('propagated-inputs
+ ('quasiquote
+ (("python-bar" ('unquote 'python-bar))
+ ("python-baz" ('unquote 'python-baz)))))
+ ('home-page "http://example.com")
+ ('synopsis "summary")
+ ('description "summary")
+ ('license 'license:lgpl2.0))
+ (string=?
+ (bytevector->nix-base32-string test-source-hash)
+ hash))
+ (x (pk 'fail x #f))))))
result: SKIP
SKIP: tests/guix-package-net
============================
+ guix package --version
guix package (GNU Guix)
Copyright (C) 2017 the Guix authors
License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.
+ guile -c '(getaddrinfo "www.gnu.org" "80" AI_NUMERICSERV)'
+ exit 77
./test-env: line 1: 15642 Terminated "/tmp/guix-build-guix-0.13.0.drv-0/source/pre-inst-env" "/tmp/guix-build-guix-0.13.0.drv-0/source/guix-daemon" --disable-chroot --substitute-urls="$GUIX_BINARY_SUBSTITUTE_URL"
SKIP tests/guix-package-net.sh (exit status: 77)
SKIP: tests/guix-environment-container
======================================
+ set -e
+ exit 77
./test-env: line 1: 16255 Terminated "/tmp/guix-build-guix-0.13.0.drv-0/source/pre-inst-env" "/tmp/guix-build-guix-0.13.0.drv-0/source/guix-daemon" --disable-chroot --substitute-urls="$GUIX_BINARY_SUBSTITUTE_URL"
SKIP tests/guix-environment-container.sh (exit status: 77)
^ permalink raw reply [flat|nested] 3+ messages in thread
* bug#27032: make check fails for Guix 0.13.0
2017-05-22 22:51 bug#27032: make check fails for Guix 0.13.0 William
@ 2017-05-23 13:21 ` ng0
2017-05-24 11:44 ` Ludovic Courtès
1 sibling, 0 replies; 3+ messages in thread
From: ng0 @ 2017-05-23 13:21 UTC (permalink / raw)
To: 27032
I can confirm this error on my end, using UEFI aswell and having
a partition mounted in /mnt/boot/efi formated with fat 32 (going by Gentoo Handbook).
^ permalink raw reply [flat|nested] 3+ messages in thread
* bug#27032: make check fails for Guix 0.13.0
2017-05-22 22:51 bug#27032: make check fails for Guix 0.13.0 William
2017-05-23 13:21 ` ng0
@ 2017-05-24 11:44 ` Ludovic Courtès
1 sibling, 0 replies; 3+ messages in thread
From: Ludovic Courtès @ 2017-05-24 11:44 UTC (permalink / raw)
To: William; +Cc: 27032
Hi William,
William <sign@vieta.uk> skribis:
> I am trying to do a fresh install of GuixSD 0.13.0 (using UEFI if it's
> important), after running "guix system init /mnt/etc/config.scm /mnt"
> the "make check" stage of guix fails.
There was one problem, which is that substitutes for the ‘guix’ package
itself were missing. This is now fixed, meaning that if you install
GuixSD 0.13.0 now, you won’t have to build ‘guix’.
Could you try again?
> test-name: dead path can be explicitly collected
> location: /tmp/guix-build-guix-0.13.0.drv-0/source/tests/store.scm:178
> source:
> + (test-assert
> + "dead path can be explicitly collected"
> + (let ((p (add-text-to-store
> + %store
> + "random-text"
> + (random-text)
> + '())))
> + (let-values
> + (((paths freed) (delete-paths %store (list p))))
> + (and (equal? paths (list p))
> + (> freed 0)
> + (not (file-exists? p))))))
> actual-value: #f
> result: FAIL
[...]
> test-name: verify-store + check-contents
> location: /tmp/guix-build-guix-0.13.0.drv-0/source/tests/store.scm:815
> source:
> + (test-assert
> + "verify-store + check-contents"
> + (with-store
> + s
> + (let* ((text (random-text))
> + (drv (build-expression->derivation
> + s
> + "corrupt"
> + `(let ((out (assoc-ref %outputs "out")))
> + (call-with-output-file
> + out
> + (lambda (port) (display ,text port)))
> + #t)
> + #:guile-for-build
> + (package-derivation
> + s
> + %bootstrap-guile
> + (%current-system))))
> + (file (derivation->output-path drv)))
> + (with-derivation-substitute
> + drv
> + text
> + (and (build-derivations s (list drv))
> + (verify-store s #:check-contents? #t)
> + (begin
> + (chmod file 420)
> + (call-with-output-file
> + file
> + (lambda (port) (display "corrupt!" port)))
> + #t)
> + (not (verify-store s #:check-contents? #t))
> + (delete-paths s (list file)))))))
> actual-value: #f
> actual-error:
> + (srfi-34
> + #<condition &nix-protocol-error [message: "path `dtmp/guix-tests/store/462z3fnl7bs44vp9s97jyg1z74nsfvly-tar' is not in the Nix store" status: 1] e171e0>)
> result: FAIL
I’m surprised by the “dtmp” prefix here. It should be
“/tmp/guix-tests”. Was the log altered in some way?
Apart from that it’s hard to draw any conclusions. We run these tests
very often without problems. The difference here is that the GuixSD
installation system uses unionfs-fuse for its root file system, and I
suspect that file system could have slightly different semantics that
bite here. We’ll have to investigate this.
Thanks for your report!
Ludo’.
^ permalink raw reply [flat|nested] 3+ messages in thread
end of thread, other threads:[~2017-05-24 11:45 UTC | newest]
Thread overview: 3+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2017-05-22 22:51 bug#27032: make check fails for Guix 0.13.0 William
2017-05-23 13:21 ` ng0
2017-05-24 11:44 ` Ludovic Courtès
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.