mirror of
https://git.in.rschanz.org/ryan77627/guix.git
synced 2024-12-24 05:18:07 -05: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:
parent
aec4c70a4d
commit
a7bb45b39d
2 changed files with 28 additions and 1 deletions
|
@ -1629,7 +1629,7 @@ (define* (imported-files files
|
|||
(_ #f))
|
||||
files)
|
||||
(imported-files/derivation files #:name name
|
||||
#:symlink? derivation?
|
||||
#:symlink? #f ;like 'interned-file-tree'
|
||||
#:system system #:guile guile)
|
||||
(interned-file-tree `(,name directory
|
||||
,@(file-mapping->tree files)))))
|
||||
|
|
|
@ -944,6 +944,33 @@ (define (canonical-file? file)
|
|||
(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)
|
||||
|
|
Loading…
Reference in a new issue