guix-build: Error out when `-S' used for source-less package.
* guix-build.in (derivations-from-package-expressions): Leave with an error message when SOURCE? is #t and P has no source. * tests/guix-build.sh: Add test.
This commit is contained in:
parent
eeaf44276c
commit
912209ee61
|
@ -53,13 +53,16 @@ When SOURCE? is true, return the derivations of the package sources."
|
||||||
(let ((p (eval exp (current-module))))
|
(let ((p (eval exp (current-module))))
|
||||||
(if (package? p)
|
(if (package? p)
|
||||||
(if source?
|
(if source?
|
||||||
(package-source-derivation %store (package-source p))
|
(let ((source (package-source p))
|
||||||
|
(loc (package-location p)))
|
||||||
|
(if source
|
||||||
|
(package-source-derivation %store source)
|
||||||
|
(leave (_ "~a:~a:~a: error: package `~a' has no source~%")
|
||||||
|
(location-file loc) (location-line loc)
|
||||||
|
(location-column loc) (package-name p))))
|
||||||
(package-derivation %store p system))
|
(package-derivation %store p system))
|
||||||
(begin
|
(leave (_ "expression `~s' does not evaluate to a package~%")
|
||||||
(format (current-error-port)
|
exp))))
|
||||||
(_ "expression `~s' does not evaluate to a package")
|
|
||||||
exp)
|
|
||||||
(exit 1)))))
|
|
||||||
|
|
||||||
|
|
||||||
;;;
|
;;;
|
||||||
|
|
|
@ -23,7 +23,12 @@
|
||||||
guix-build --version
|
guix-build --version
|
||||||
|
|
||||||
# Should fail.
|
# Should fail.
|
||||||
guix-build -e + || true
|
if guix-build -e +;
|
||||||
|
then false; else true; fi
|
||||||
|
|
||||||
|
# Should fail because this is a source-less package.
|
||||||
|
if guix-build -e '(@ (distro packages bootstrap) %bootstrap-glibc)' -S
|
||||||
|
then false; else true; fi
|
||||||
|
|
||||||
# Should pass.
|
# Should pass.
|
||||||
guix-build -e '(@@ (distro packages base) %bootstrap-guile)' | \
|
guix-build -e '(@@ (distro packages base) %bootstrap-guile)' | \
|
||||||
|
|
Loading…
Reference in New Issue