Hi Guix, I'm trying to define a fixed output derivation using gexp->derivation, but I'm getting a hash mismatch, and I can't figure out why. I've attached a minimal script that illustrates the problem. When I run it, I see the following output: --8<---------------cut here---------------start------------->8--- $ /tmp/test-fixed-output-derivation.scm ;;; note: auto-compilation is enabled, set GUILE_AUTO_COMPILE=0 ;;; or pass the --no-auto-compile argument to disable. ;;; compiling /tmp/test-fixed-output-derivation.scm ;;; compiled /home/marusich/.cache/guile/ccache/2.2-LE-8-3.A/tmp/test-fixed-output-derivation.scm.go The following derivation will be built: /gnu/store/fiiz8cxz90q7l0c6jfdrpzkanyyvhpv8-test.drv building path(s) `/gnu/store/8s4m28x6qmpkqhqasy59lw3hih548kxv-test' `/gnu/store/kfzwabhn37bg692ayb2czb853drlv2gp-test' -> `/gnu/store/8s4m28x6qmpkqhqasy59lw3hih548kxv-test' sha256 hash mismatch for output path `/gnu/store/8s4m28x6qmpkqhqasy59lw3hih548kxv-test' expected: 0dids4n73p8w77pn9nffs7x0ww1a3f1jbic1p642hwd0jfl3zcg9 actual: 1r3v22qkypccqifzbww5lrn6hf1chi23m6zzkyvb8bvg457nxslq Backtrace: 8 (apply-smob/1 #) In ice-9/boot-9.scm: 705:2 7 (call-with-prompt _ _ #) In ice-9/eval.scm: 619:8 6 (_ #(#(#))) In ice-9/boot-9.scm: 2312:4 5 (save-module-excursion _) 3822:12 4 (_) In /tmp/test-fixed-output-derivation.scm: 30:2 3 (_) In guix/store.scm: 1443:24 2 (run-with-store _ _ #:guile-for-build _ #:system _ # _) 1362:38 1 (_ #) 936:15 0 (_ # _ _) guix/store.scm:936:15: Throw to key `srfi-34' with args `(#)'. --8<---------------cut here---------------end--------------->8--- I don't understand why the Guix daemon thinks that the output (/gnu/store/8s4m28x6qmpkqhqasy59lw3hih548kxv-test) hashes to 0dids4n73p8w77pn9nffs7x0ww1a3f1jbic1p642hwd0jfl3zcg9. That doesn't even match what "guix hash" says: $ guix hash /gnu/store/8s4m28x6qmpkqhqasy59lw3hih548kxv-test 1r3v22qkypccqifzbww5lrn6hf1chi23m6zzkyvb8bvg457nxslq $ guix hash --recursive /gnu/store/8s4m28x6qmpkqhqasy59lw3hih548kxv-test 1xmr8jicvzszfzpz46g37mlpvbzjl2wpwvl2b05psipssyp1sm8h Note that the result of "guix hash" above DOES match the hash value for /tmp/test: $ guix hash /tmp/test 1r3v22qkypccqifzbww5lrn6hf1chi23m6zzkyvb8bvg457nxslq $ guix hash --recursive /tmp/test 1xmr8jicvzszfzpz46g37mlpvbzjl2wpwvl2b05psipssyp1sm8h What's going on here? No matter what I try (e.g., change recursive? to #t), I can't seem to escape this hash mismatch. I think I'm missing something obvious, but I can't see what. I'd really appreciate a second pair of eyes! -- Chris