M doc/guix.texi => doc/guix.texi +6 -1
@@ 5582,7 5582,7 @@ $ guix challenge @var{package}
@noindent
where @var{package} is a package specification such as
-@code{guile-2.0} or @code{glibc:debug}.
+@code{guile@@2.0} or @code{glibc:debug}.
The general syntax is:
@@ 5590,6 5590,11 @@ The general syntax is:
guix challenge @var{options} [@var{packages}@dots{}]
@end example
+When a difference is found between the hash of a locally-built item and
+that of a server-provided substitute, or among substitutes provided by
+different servers, the command displays it as in the example above and
+exits with a non-zero return code.
+
The one option that matters is:
@table @code
M guix/scripts/challenge.scm => guix/scripts/challenge.scm +3 -1
@@ 233,9 233,11 @@ Challenge the substitutes for PACKAGE... provided by one or more servers.\n"))
(run-with-store store
(mlet* %store-monad ((items (mapm %store-monad
- ensure-store-item files))
+ ensure-store-item files))
(issues (discrepancies items urls)))
(for-each summarize-discrepancy issues)
+ (unless (null? issues)
+ (exit 1))
(return (null? issues)))
#:system system)))))))
M scripts/guix.in => scripts/guix.in +5 -0
@@ 64,4 64,9 @@
(apply guix-main (command-line))))
(maybe-augment-load-paths!)
+
+ ;; XXX: It would be more convenient to change it to:
+ ;; (exit (run-guix-main))
+ ;; but since the 'guix' command is not updated by 'guix pull', we cannot
+ ;; really do it now.
(run-guix-main))