Hi Ludo, ludo@gnu.org (Ludovic Courtès) writes: > Hi Chris, > > Chris Marusich skribis: > >> ludo@gnu.org (Ludovic Courtès) writes: > > [...] > >>>> Issue #2: even when I run 'make' first, the test fails. It fails with >>>> this message: >>>> >>>> [... some output omitted for brevity ...] >>>> >>>> starting phase `copy-bootstrap-guile' >>>> Backtrace: >>>> In ice-9/boot-9.scm: >>>> 160: 13 [catch #t # ...] >>>> In unknown file: >>>> ?: 12 [apply-smob/1 #] >>>> In ice-9/boot-9.scm: >>>> 66: 11 [call-with-prompt prompt0 ...] >>>> In ice-9/eval.scm: >>>> 432: 10 [eval # #] >>>> In ice-9/boot-9.scm: >>>> 2412: 9 [save-module-excursion #] >>>> 4089: 8 [#] >>>> 1734: 7 [%start-stack load-stack #] >>>> 1739: 6 [#] >>>> In unknown file: >>>> ?: 5 [primitive-load "/gnu/store/wgh83kqjif20wfdg56iz7bxk9d4xmlk0-guix-0.12.0-9.25a4+-guile-builder"] >>>> In ice-9/eval.scm: >>>> 387: 4 [eval # ()] >>>> In srfi/srfi-1.scm: >>>> 827: 3 [every1 # ...] >>>> In /gnu/store/a42pfdz8w5qxdkp6xz8783ydywmp0p8p-module-import/guix/build/gnu-build-system.scm: >>>> 653: 2 [# #] >>>> In ice-9/eval.scm: >>>> 432: 1 [eval # #] >>>> In unknown file: >>>> ?: 0 [copy-file "/gnu/store/dgncc5wmw8prxq09y71hqjc6g7rxqvvb-guile-2.0.9.tar.xz" ...] >>>> >>>> ERROR: In procedure copy-file: >>>> ERROR: In procedure copy-file: Permission denied >>> >>> What this means is that the target of ‘copy-file’ is read-only. >> >> Why is this test is trying to copy a file into a read-only target? I've >> tried debugging this myself by inserting pk statements in the relevant >> code, but the long iteration time makes it difficult. > > This is coming from the ‘copy-bootstrap-guile’ phase of the ‘guix’ > package, which happens before ‘configure’. > > I wonder why you’re seeing that happening. Does “./pre-inst-env guix > build guix” fail as well? No, it doesn't fail. When I tried this, I needed to invoke it with --check, and the build failed due to non-determinism, but the actual build and check phases succeeded (I ran this on my GuixSD machine). > And I don’t why we’re getting different results here. I think I might have finally found the reason. When I remove the "--pure" from the invocation, the "installed-os" test runs successfully on my GuixSD machine. It seems that, for some reason, "--pure" was the cause of the failure. That's surprising to me, since my expectation was that Guix's tests should work just fine in a pure environment. Could this be a bug? This surprising behavior is not limited to my single GuixSD system. I've tried running the same invocation on my Ubuntu machine, and it fails with the same "ERROR: In procedure copy-file: Permission denied" message. So I think you ought to be able to reproduce it, too, as long as you use the same invocation (and the same commit: 4aabc8eaa22314b412d8c5517e05085aa1b38498). Curiously, on my Ubuntu system, when I remove "--pure", the "copy-file" error does NOT occur. (The "installed-os" test fails anyway due to KVM issues because I haven't set up KVM properly on my Ubuntu machine yet, but that's not relevant to this discussion.) To summarize, on my GuixSD system, the "copy-file" error occurs when I run: guix environment --pure guix -- make check-system TESTS=installed-os On my GuixSD system, it also occurs when I run: guix environment --pure guix followed by (in the environment): make check-system TESTS=installed-os However, on my Ubuntu system, the "copy-file" error only occurs when I run: guix environment --pure guix -- make check-system TESTS=installed-os On my Ubuntu system, it does NOT occur when I run: guix environment --pure guix followed by (in the environment): make check-system TESTS=installed-os In conclusion, I can now run the tests, which is great. However, I'm surprised that "--pure" was causing the "copy-file" error. I'm also unable to explain the difference in behavior between GuixSD and Ubuntu when using "--pure". Could this be a bug? -- Chris