aboutsummaryrefslogtreecommitdiff
path: root/pkgs/development/haskell-modules/lib.nix
diff options
context:
space:
mode:
authorJohn Ericson <John.Ericson@Obsidian.Systems>2017-08-01 12:44:08 -0400
committerPeter Simons <simons@cryp.to>2017-08-03 13:12:01 +0200
commit74f5fe50681003f075bf0b1ff811d0c0cd7c64f3 (patch)
tree3778107673a5b406aaca29fe5901c0cf998af555 /pkgs/development/haskell-modules/lib.nix
parenta2825a3c6f445175d4ad8dc52b8c02af3c629571 (diff)
haskell infra: Misc cleanups
- The haskell lib is very close to not relying on Nixpkgs. I think this is good---simpler to think about and matches Nixpkgs's lib. - The haskell lib is only imported once - stdenv is exposed more shallowly so it can be overriden more easily. I'll eventually use this on Darwin to avoid the Sierra shared library problems (unless changes are to be made system-wide). Closes https://github.com/NixOS/nixpkgs/pull/27840.
Diffstat (limited to '')
-rw-r--r--pkgs/development/haskell-modules/lib.nix17
1 files changed, 9 insertions, 8 deletions
diff --git a/pkgs/development/haskell-modules/lib.nix b/pkgs/development/haskell-modules/lib.nix
index 30d82d3efc93..c67b61acd78d 100644
--- a/pkgs/development/haskell-modules/lib.nix
+++ b/pkgs/development/haskell-modules/lib.nix
@@ -1,7 +1,9 @@
-{ pkgs }:
+# TODO(@Ericson2314): Remove `pkgs` param, which is only used for
+# `buildStackProject` and `justStaticExecutables`
+{ pkgs, lib }:
rec {
- makePackageSet = pkgs.callPackage ./make-package-set.nix {};
+ makePackageSet = import ./make-package-set.nix;
overrideCabal = drv: f: (drv.override (args: args // {
mkDerivation = drv: (args.mkDerivation drv).override f;
@@ -25,7 +27,7 @@ rec {
dontDistribute = drv: overrideCabal drv (drv: { hydraPlatforms = []; });
appendConfigureFlag = drv: x: overrideCabal drv (drv: { configureFlags = (drv.configureFlags or []) ++ [x]; });
- removeConfigureFlag = drv: x: overrideCabal drv (drv: { configureFlags = pkgs.stdenv.lib.remove x (drv.configureFlags or []); });
+ removeConfigureFlag = drv: x: overrideCabal drv (drv: { configureFlags = lib.remove x (drv.configureFlags or []); });
addBuildTool = drv: x: addBuildTools drv [x];
addBuildTools = drv: xs: overrideCabal drv (drv: { buildTools = (drv.buildTools or []) ++ xs; });
@@ -71,7 +73,7 @@ rec {
disableHardening = drv: flags: overrideCabal drv (drv: { hardeningDisable = flags; });
- sdistTarball = pkg: pkgs.lib.overrideDerivation pkg (drv: {
+ sdistTarball = pkg: lib.overrideDerivation pkg (drv: {
name = "${drv.pname}-source-${drv.version}";
buildPhase = "./Setup sdist";
haddockPhase = ":";
@@ -89,12 +91,11 @@ rec {
isLibrary = false;
doHaddock = false;
postFixup = "rm -rf $out/lib $out/nix-support $out/share/doc";
- } // (if pkgs.stdenv.isDarwin then {
+ } // lib.optionalAttrs (pkgs.hostPlatform.isDarwin) {
configureFlags = (drv.configureFlags or []) ++ ["--ghc-option=-optl=-dead_strip"];
- } else {})
- );
+ });
- buildFromSdist = pkg: pkgs.lib.overrideDerivation pkg (drv: {
+ buildFromSdist = pkg: lib.overrideDerivation pkg (drv: {
unpackPhase = let src = sdistTarball pkg; tarname = "${pkg.pname}-${pkg.version}"; in ''
echo "Source tarball is at ${src}/${tarname}.tar.gz"
tar xf ${src}/${tarname}.tar.gz