When running these two tests in a clean environment without having Guix installed first, they crash when trying to obtain the value of localstatedir. + guix pack --version guix pack (GNU Guix) 1.0.0.711-f52e8-dirty Copyright (C) 2019 the Guix authors License GPLv3+: GNU GPL version 3 or later This is free software: you are free to change and redistribute it. There is NO WARRANTY, to the extent permitted by law. ++ guile2.2 -c '(use-modules (guix config))(display %storedir)' + NIX_STORE_DIR=/gnu/store ++ guile2.2 -c '(use-modules (guix config))(display %localstatedir)' Backtrace: In ice-9/eval.scm:     619:8 19 (_ #(#(#))) In ice-9/command-line.scm:    181:18 18 (_ #) In unknown file:           17 (eval (use-modules (guix config)) #) In ice-9/eval.scm:    721:20 16 (primitive-eval (use-modules (guix config))) In ice-9/psyntax.scm:   1235:36 15 (expand-top-sequence ((use-modules (guix config))) _ _ # …)   1182:24 14 (parse _ (("placeholder" placeholder)) ((top) #(# # …)) …)    285:10 13 (parse _ (("placeholder" placeholder)) (()) _ c&e (eval) …) In ice-9/boot-9.scm:   3377:20 12 (process-use-modules _)    222:17 11 (map1 (((guix config))))   3378:31 10 (_ ((guix config)))   2800:17  9 (resolve-interface (guix config) #:select _ #:hide _ # _ …) In ice-9/threads.scm:     390:8  8 (_ _) In ice-9/boot-9.scm:   2726:13  7 (_) In ice-9/threads.scm:     390:8  6 (_ _) In ice-9/boot-9.scm:   2994:20  5 (_)    2312:4  4 (save-module-excursion #)   3014:26  3 (_) In unknown file:            2 (primitive-load-path "guix/config" #) In guix/config.scm:      71:6  1 (_) In unknown file:            0 (canonicalize-path "/gnu/store") ERROR: In procedure canonicalize-path: In procedure canonicalize-path: No such file or directory + localstatedir= FAIL tests/guix-pack-localstatedir.sh (exit status: 1) It seems to me that the reason is that NIX_STORE_DIR is exported by test-env script, so the line NIX_STORE_DIR="`guile -c '(use-modules (guix config))(display %storedir)'`" not only changes the value of shell variable NIX_STORE_DIR but also exports it to the environment. Therefore, the next line localstatedir="`guile -c '(use-modules (guix config))(display %localstatedir)'`" crashes at guix/config.scm when running the code (define %store-directory   (or (and=> (getenv "NIX_STORE_DIR") canonicalize-path)       %storedir)) because NIX_STORE_DIR points to a non-existent path /gnu/store. I attached a patch to avoid the crash by delaying the modification to NIX_STORE_DIR, but I am not sure if it is correct to do so.