[Nix-dev] A Journey into our brand-new Haskell infrastructure: Part II
Thomas Tuegel
ttuegel at gmail.com
Mon Jan 12 16:41:35 CET 2015
On Sun, Jan 11, 2015 at 1:41 PM, Peter Simons <simons at cryp.to> wrote:
> The topic of today's posting is: Fixing Build Failures!
>
>
> I know all about Cabal builds. How can I override a Nix build environment?
> --------------------------------------------------------------------------
>
> Every Haskell expression expects an argument called "mkDerivation" -- the
> function that builds the derivation from the build description. You can
> modify the environment of a build "foo" by replacing mkDerivation with a
> version that applies some function "f" to the expression first:
>
> | foo.override (args: args // {
> | mkDerivation = expr: args.mkDerivation (expr // f expr);
> | })
>
> All Haskell configuration modules import the 'lib' library
> <https://github.com/NixOS/nixpkgs/blob/master/pkgs/development/haskell-modules/lib.nix>
> that defines a bunch of neat little helper functions on top of this basic
> mechanism. Just check out out the configuration-XYZ.nix files to see some
> examples of how these functions are used.
How can I override a package to enable profiling? Is there an obvious
way in general to apply the same override to a package and all its
dependencies? Or, if it's impossible to generally override all of a
package's dependencies, is there special support for profiling?
--
Thomas Tuegel
More information about the nix-dev
mailing list