[Nix-dev] fixed-output derivation that *also* depend on (some of) its inputs?
Bjørn Forsman
bjorn.forsman at gmail.com
Wed Sep 24 21:56:58 CEST 2014
On 22 September 2014 11:52, Wout Mertens <wout.mertens at gmail.com> wrote:
> Isn't the whole point of the fixed-output derivations that the means of
> getting there doesn't matter? So if you change the build script but leave
> the output hash the same, you're basically saying that the build script will
> generate the same output.
Right.
So I guess what I want isn't really a "fixed-output" derivation, but
more of a "checked-output" derivation.
In my use case, I don't have direct control over buildCommand. I run
"grails -Duser.home=$out refresh-dependencies" in the source tree and
grails downloads a bunch of stuff according to what's specified in
$src/.../BuildConfig.groovy. (I've written a fetchGrailsAppDeps
function for that.)
1) The derivation must be fixed-output to allow internet access
2) The output isn't _really_ fixed, because it can change if $src
changes (new application source may have different deps)
> I think what you want is to remove a build product from the store when you
> change the build scripts?
That feels hackish and not something I want to be doing on a regular basis.
> As for this use case, handbrake also downloads a bunch of things as part of
> the build and I made the expression just patch that away, moving all the
> extra building and patches into other expressions.
I considered doing that. But the solution / workaround by adding the
source hash to derivation name (to force rebuild if changed) works so
well :-)
Best regards,
Bjørn Forsman
More information about the nix-dev
mailing list