aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLudovic Courtès <ludo@gnu.org>2013-11-12 23:44:47 +0100
committerLudovic Courtès <ludo@gnu.org>2013-11-13 00:29:05 +0100
commitf80594cc41d7ad491f14a73d594228bacafdc871 (patch)
tree21405e6294986e2258fe6cde2822915dfdee0a2f
parent9336e5b5e7b05e636b147aba2c97357620711c2a (diff)
downloadgnu-guix-f80594cc41d7ad491f14a73d594228bacafdc871.tar
gnu-guix-f80594cc41d7ad491f14a73d594228bacafdc871.tar.gz
packages: Suitably cope with indirect store paths as package sources.
* guix/packages.scm (package-source-derivation): Don't let indirect store paths pass through. * tests/packages.scm ("package-source-derivation, indirect store path"): New test.
-rw-r--r--guix/packages.scm2
-rw-r--r--tests/packages.scm11
2 files changed, 12 insertions, 1 deletions
diff --git a/guix/packages.scm b/guix/packages.scm
index d4a295e3ac..b25cc52bba 100644
--- a/guix/packages.scm
+++ b/guix/packages.scm
@@ -413,7 +413,7 @@ IMPORTED-MODULES specify modules to use/import for use by SNIPPET."
#:guile-for-build (or guile-for-build
(%guile-for-build)
(default-guile store system)))))
- ((and (? string?) (? store-path?) file)
+ ((and (? string?) (? direct-store-path?) file)
file)
((? string? file)
(add-to-store store (basename file) #t "sha256" file))))
diff --git a/tests/packages.scm b/tests/packages.scm
index 7c5dd9f4e1..b499c380ce 100644
--- a/tests/packages.scm
+++ b/tests/packages.scm
@@ -122,6 +122,17 @@
(package-source package))))
(string=? file source)))
+(test-assert "package-source-derivation, indirect store path"
+ (let* ((dir (add-to-store %store "guix-build" #t "sha256"
+ (dirname (search-path %load-path
+ "guix/build/utils.scm"))))
+ (package (package (inherit (dummy-package "p"))
+ (source (string-append dir "/utils.scm"))))
+ (source (package-source-derivation %store
+ (package-source package))))
+ (and (direct-store-path? source)
+ (string-suffix? "utils.scm" source))))
+
(test-equal "package-source-derivation, snippet"
"OK"
(let* ((file (search-bootstrap-binary "guile-2.0.7.tar.xz"