mirror of
https://git.in.rschanz.org/ryan77627/guix.git
synced 2024-12-25 05:48:07 -05:00
challenge: Do nothing when passed zero arguments.
Previously, 'guix challenge' without arguments would list live store items that had been locally built. This was deemed confusing, especially since 'list-live' is an expensive operation. * guix/scripts/challenge.scm (guix-challenge): Warn and exit with 0 when FILES is empty. * doc/guix.texi (Invoking guix challenge): Update accordingly.
This commit is contained in:
parent
4745be8514
commit
e7ab3d33ae
2 changed files with 25 additions and 18 deletions
|
@ -14941,7 +14941,9 @@ any given store item.
|
||||||
The command output looks like this:
|
The command output looks like this:
|
||||||
|
|
||||||
@smallexample
|
@smallexample
|
||||||
$ guix challenge --substitute-urls="https://@value{SUBSTITUTE-SERVER-1} https://guix.example.org"
|
$ guix challenge \
|
||||||
|
--substitute-urls="https://@value{SUBSTITUTE-SERVER-1} https://guix.example.org" \
|
||||||
|
openssl git pius coreutils grep
|
||||||
updating substitutes from 'https://@value{SUBSTITUTE-SERVER-1}'... 100.0%
|
updating substitutes from 'https://@value{SUBSTITUTE-SERVER-1}'... 100.0%
|
||||||
updating substitutes from 'https://guix.example.org'... 100.0%
|
updating substitutes from 'https://guix.example.org'... 100.0%
|
||||||
/gnu/store/@dots{}-openssl-1.0.2d contents differ:
|
/gnu/store/@dots{}-openssl-1.0.2d contents differ:
|
||||||
|
@ -14968,18 +14970,20 @@ updating substitutes from 'https://guix.example.org'... 100.0%
|
||||||
|
|
||||||
@dots{}
|
@dots{}
|
||||||
|
|
||||||
6,406 store items were analyzed:
|
5 store items were analyzed:
|
||||||
- 4,749 (74.1%) were identical
|
- 2 (40.0%) were identical
|
||||||
- 525 (8.2%) differed
|
- 3 (60.0%) differed
|
||||||
- 1,132 (17.7%) were inconclusive
|
- 0 (0.0%) were inconclusive
|
||||||
@end smallexample
|
@end smallexample
|
||||||
|
|
||||||
@noindent
|
@noindent
|
||||||
In this example, @command{guix challenge} first scans the store to
|
In this example, @command{guix challenge} queries all the substitute
|
||||||
determine the set of locally-built derivations---as opposed to store
|
servers for each of the fives packages specified on the command line.
|
||||||
items that were downloaded from a substitute server---and then queries
|
It then reports those store items for which the servers obtained a
|
||||||
all the substitute servers. It then reports those store items for which
|
result different from the local build (if it exists) and/or different
|
||||||
the servers obtained a result different from the local build.
|
from one another; here, the @samp{local hash} lines indicate that a
|
||||||
|
local build result was available for each of these packages and shows
|
||||||
|
its hash.
|
||||||
|
|
||||||
@cindex non-determinism, in package builds
|
@cindex non-determinism, in package builds
|
||||||
As an example, @code{guix.example.org} always gets a different answer.
|
As an example, @code{guix.example.org} always gets a different answer.
|
||||||
|
@ -15035,19 +15039,21 @@ whether @code{@value{SUBSTITUTE-SERVER-1}} and other substitute servers obtain t
|
||||||
same build result as you did with:
|
same build result as you did with:
|
||||||
|
|
||||||
@example
|
@example
|
||||||
$ guix challenge @var{package}
|
guix challenge @var{package}
|
||||||
@end example
|
@end example
|
||||||
|
|
||||||
@noindent
|
|
||||||
where @var{package} is a package specification such as
|
|
||||||
@code{guile@@2.0} or @code{glibc:debug}.
|
|
||||||
|
|
||||||
The general syntax is:
|
The general syntax is:
|
||||||
|
|
||||||
@example
|
@example
|
||||||
guix challenge @var{options} [@var{packages}@dots{}]
|
guix challenge @var{options} @var{argument}@dots{}
|
||||||
@end example
|
@end example
|
||||||
|
|
||||||
|
@noindent
|
||||||
|
where @var{argument} is a package specification such as
|
||||||
|
@code{guile@@2.0} or @code{glibc:debug} or, alternatively, a store file
|
||||||
|
name as returned, for example, by @command{guix build} or @command{guix
|
||||||
|
gc --list-live}.
|
||||||
|
|
||||||
When a difference is found between the hash of a locally-built item and
|
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
|
that of a server-provided substitute, or among substitutes provided by
|
||||||
different servers, the command displays it as in the example above and
|
different servers, the command displays it as in the example above and
|
||||||
|
|
|
@ -537,8 +537,9 @@ (define-command (guix-challenge . args)
|
||||||
(current-terminal-columns (terminal-columns)))
|
(current-terminal-columns (terminal-columns)))
|
||||||
(let ((files (match files
|
(let ((files (match files
|
||||||
(()
|
(()
|
||||||
(filter (cut locally-built? store <>)
|
(warning
|
||||||
(live-paths store)))
|
(G_ "no arguments specified, nothing to do~%"))
|
||||||
|
(exit 0))
|
||||||
(x
|
(x
|
||||||
files))))
|
files))))
|
||||||
(set-build-options store
|
(set-build-options store
|
||||||
|
|
Loading…
Reference in a new issue