[Nix-dev] Haskell NG

roconnor at theorem.ca roconnor at theorem.ca
Sun Dec 14 04:35:41 CET 2014


On Fri, 12 Dec 2014, Peter Simons wrote:

Hi Peter,

> 2) Haskell packages support 'deepOverride'. Suppose package 'foo' requires a
>    non-default version of 'binary'. Then
>
>      foo.deepOverride { binary = self.binary_0_4_0_1; };
>
>    gives a derivation that uses this particular version to build 'foo' as well
>    as all of foo's build inputs.

How would you feel about using my overrideScope functionality from my
haskellPackagesFixpoint branch instead:

https://github.com/NixOS/nixpkgs/blob/haskellPackagesFixpoint/pkgs/top-level/haskell-packages.nix#L54

I think this works much more elegantly than deepOverride.  deepOverride works by
recursively analyzing and overriding paramaters to functions producting
deriviations.

On the otherhand, overrideScope works directly by updating the scope that
callPackages is run in.  overrideScope "unties" the knot that is formed
by the recursive set of packages and lets you update the set before
tying the knot up again and rerunning callPackage.

I'm happy to help make a patch for you.

-- 
Russell O'Connor                                      <http://r6.ca/>
``All talk about `theft,''' the general counsel of the American Graphophone
Company wrote, ``is the merest claptrap, for there exists no property in
ideas musical, literary or artistic, except as defined by statute.''


More information about the nix-dev mailing list