diff options
author | Ludovic Courtès <ludo@gnu.org> | 2012-06-12 23:30:00 +0200 |
---|---|---|
committer | Ludovic Courtès <ludo@gnu.org> | 2012-06-12 23:30:00 +0200 |
commit | 224f7ad6a3627df538a345ae3d3e8dd3494ecab2 (patch) | |
tree | 9c9ae63b3ce1e5d0b74ad4ad794270842deb9e11 | |
parent | d1b1c4249a1747262e48d15512ee5435da068182 (diff) | |
download | patches-224f7ad6a3627df538a345ae3d3e8dd3494ecab2.tar patches-224f7ad6a3627df538a345ae3d3e8dd3494ecab2.tar.gz |
Fix `imported-files' for files with a common prefix.
* guix/derivations.scm (imported-files)[builder]: For TAIL, check
whether it exists before (mkdir TAIL).
* tests/derivations.scm ("imported-files"): Add file with a common
prefix.
-rw-r--r-- | guix/derivations.scm | 3 | ||||
-rw-r--r-- | tests/derivations.scm | 3 |
2 files changed, 4 insertions, 2 deletions
diff --git a/guix/derivations.scm b/guix/derivations.scm index 47023f566c..9f5ab16d6d 100644 --- a/guix/derivations.scm +++ b/guix/derivations.scm @@ -412,7 +412,8 @@ system, imported, and appears under FINAL-PATH in the resulting store path." `(false-if-exception (mkdir ,d))) head) - `((mkdir ,tail))))) + `((or (file-exists? ,tail) + (mkdir ,tail)))))) `((symlink ,store-path ,final-path))))) files)))) (build-expression->derivation store name (%current-system) diff --git a/tests/derivations.scm b/tests/derivations.scm index 3f48289380..d39dacd9a0 100644 --- a/tests/derivations.scm +++ b/tests/derivations.scm @@ -221,7 +221,8 @@ (let* ((files `(("x" . ,(search-path %load-path "ice-9/q.scm")) ("a/b/c" . ,(search-path %load-path "guix/derivations.scm")) - ("p/q" . ,(search-path %load-path "guix.scm")))) + ("p/q" . ,(search-path %load-path "guix.scm")) + ("p/z" . ,(search-path %load-path "guix/store.scm")))) (drv-path (imported-files %store files))) (and (build-derivations %store (list drv-path)) (let ((dir (derivation-path->output-path drv-path))) |