1
0
mirror of https://git.savannah.gnu.org/git/guix.git synced 2026-04-06 21:20:33 +02:00

gexp: ‘imported-files’ does not create symlinks.

Fixes <https://issues.guix.gnu.org/73275>.

This is presumably what e529d46828 meant
to do, except that it wrongfully pass #:symlink? a true value instead,
most likely due to a typo.

* guix/gexp.scm (imported-files): Pass #:symlink? #f.
* tests/gexp.scm ("imported-files does not create symlinks"): New test.

Change-Id: Ic31be56a2adf4dfa55e1ec390c53cc9ba5f8a96c
This commit is contained in:
Ludovic Courtès
2024-09-15 21:55:45 +02:00
parent aec4c70a4d
commit a7bb45b39d
2 changed files with 28 additions and 1 deletions

View File

@@ -944,6 +944,33 @@
(and (file=? (string-append dir "/a/b/c") q-scm* stat)
(file=? (string-append dir "/p/q") plain* stat)))))))
(test-assert "imported-files does not create symlinks"
;; 'imported-files' should always produce a directory with regular files,
;; whether or not it's going through 'imported-files/derivation'.
;; See <https://issues.guix.gnu.org/73275>.
(call-with-temporary-directory
(lambda (directory)
(symlink (search-path %load-path "guix/store.scm")
(in-vicinity directory "store.scm"))
(run-with-store %store
(mlet* %store-monad
((files1 -> `(("x" . ,(in-vicinity directory "store.scm"))))
(files2 -> `(,@files1
("y" . ,(plain-file "foo.scm" "#t"))))
(import1 (imported-files files1))
(import2-drv (imported-files files2))
(import2 -> (derivation->output-path import2-drv))
(_ (built-derivations (list import2-drv))))
(return (and (eq? (stat:type (lstat (in-vicinity import1 "x")))
'regular)
(eq? (stat:type (lstat (in-vicinity import2 "x")))
'regular)
(file=? (in-vicinity import1 "x")
(search-path %load-path "guix/store.scm"))
(file=? (in-vicinity import2 "x")
(search-path %load-path "guix/store.scm")))))))))
(test-equal "gexp-modules & ungexp"
'((bar) (foo))
((@@ (guix gexp) gexp-modules)