Skip to content
Snippets Groups Projects
Commit f80594cc authored by Ludovic Courtès's avatar Ludovic Courtès
Browse files

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.
parent 9336e5b5
No related branches found
No related tags found
No related merge requests found
......@@ -413,7 +413,7 @@ (define* (package-source-derivation store source
#: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))))
......
......@@ -122,6 +122,17 @@ (define read-at
(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"
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment