mirror of
https://git.in.rschanz.org/ryan77627/guix.git
synced 2024-11-07 07:26:13 -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))
|
(_ #f))
|
||||||
files)
|
files)
|
||||||
(imported-files/derivation files #:name name
|
(imported-files/derivation files #:name name
|
||||||
#:symlink? derivation?
|
#:symlink? #f ;like 'interned-file-tree'
|
||||||
#:system system #:guile guile)
|
#:system system #:guile guile)
|
||||||
(interned-file-tree `(,name directory
|
(interned-file-tree `(,name directory
|
||||||
,@(file-mapping->tree files)))))
|
,@(file-mapping->tree files)))))
|
||||||
|
|
|
@ -944,6 +944,33 @@ (define (canonical-file? file)
|
||||||
(and (file=? (string-append dir "/a/b/c") q-scm* stat)
|
(and (file=? (string-append dir "/a/b/c") q-scm* stat)
|
||||||
(file=? (string-append dir "/p/q") plain* 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"
|
(test-equal "gexp-modules & ungexp"
|
||||||
'((bar) (foo))
|
'((bar) (foo))
|
||||||
((@@ (guix gexp) gexp-modules)
|
((@@ (guix gexp) gexp-modules)
|
||||||
|
|
Loading…
Reference in a new issue