Subject: Re: bug#18747: Fixed-output derivations are not substituted

From: [email-masked] (Ludovic Courtès)
Date: Thu, 16 Oct 2014 17:46:18 +0200

[email-masked] (Ludovic Courtès) skribis:

> Initially #:local-build? (aka. ‘preferLocalBuild’) meant “avoid
> offloading this derivation”, but Nix commit 55586527 (June 2013) changed
> it to “avoid offloading *or substituting* this derivation”, which I
> somehow overlooked for all this time.

The relevant code is in libstore/build.cc:

--8<---------------cut here---------------start------------->8---
    /* We are first going to try to create the invalid output paths
       through substitutes.  If that doesn't work, we'll build
       them. */
    if (settings.useSubstitutes && !willBuildLocally(drv))
        foreach (PathSet::iterator, i, invalidOutputs)
            addWaitee(worker.makeSubstitutionGoal(*i, buildMode == bmRepair));
--8<---------------cut here---------------end--------------->8---

Ludo’.