Subject: Re: bug#22697: Rebuilding sources with svn-fetch won't refetch

From: [email-masked] (Ludovic Courtès)
Date: Wed, 24 Feb 2016 14:27:21 +0100

Jookia <[email-masked]> skribis:

> After building netpbm from source using no substitutes, running this command:
>
> % guix build --source netpbm --check
>
> Will use the checked out source files in /gnu/store rather than redownloading
> from the project SVN repostiory. This is unlike this command:
>
> % guix build --source guix --check
>
> Which will refetch Guix from the project's Git repository.

Sources without patches/snippets translate to “fixed-output
derivations”—i.e., derivations for which the hash of the output is known
in advance.

Thus, it doesn’t make sense to --check the result of such derivations:
if the result available, it’s necessarily correct (IOW, it has the
expected hash.)

Now, although this doesn’t make much sense, the daemon supports it
(which is fine.)

In the case of netpbm, there’s a difference: netpbm’s origin has a
‘snippet’, so what ‘guix build --source netpbm’ returns is the
derivation that applies the snippet to the upstream source, not the
derivation that downloads the upstream source.

Thus, ‘guix build netpbm --source --check’ rebuilds the derivation that
applies the snippet, not the derivation that does the svn checkout.

Hope this clarifies things!

Ludo’.