diff --git a/gnu/system/linux-container.scm b/gnu/system/linux-container.scm index c6124cd223..2ab679ff3f 100644 --- a/gnu/system/linux-container.scm +++ b/gnu/system/linux-container.scm @@ -257,11 +257,13 @@ (define items (lowered-gexp-guile lowered)) "/bin/guile") "guile" - (append (map (lambda (directory) `("-L" ,directory)) - (lowered-gexp-load-path lowered)) - (map (lambda (directory) `("-C" ,directory)) - (lowered-gexp-load-compiled-path - lowered)) + (append (append-map (lambda (directory) + `("-L" ,directory)) + (lowered-gexp-load-path lowered)) + (append-map (lambda (directory) + `("-C" ,directory)) + (lowered-gexp-load-compiled-path + lowered)) (list "-c" (object->string (lowered-gexp-sexp lowered)))))))))))) diff --git a/tests/containers.scm b/tests/containers.scm index c6c738f234..01fbcbb45a 100644 --- a/tests/containers.scm +++ b/tests/containers.scm @@ -269,4 +269,31 @@ (define requisites* (lset= string=? (cons* "." ".." (map basename reqs)) (pk (call-with-input-file result read)))))))))) +(test-assert "eval/container, non-empty load path" + (call-with-temporary-directory + (lambda (directory) + (define store + (open-connection-for-tests)) + (define result + (string-append directory "/r")) + (define requisites* + (store-lift requisites)) + + (mkdir result) + (run-with-store store + (mlet %store-monad ((status (eval/container + (with-imported-modules '((guix build utils)) + #~(begin + (use-modules (guix build utils)) + (mkdir-p "/result/a/b/c"))) + #:mappings + (list (file-system-mapping + (source result) + (target "/result") + (writable? #t)))))) + (close-connection store) + (return (and (zero? status) + (file-is-directory? + (string-append result "/a/b/c"))))))))) + (test-end)