|
1 | 1 | { pkgs, cacert, index-state-hashes, haskellLib }:
|
2 | 2 | { name ? src.name or null # optional name for better error messages
|
3 | 3 | , src
|
| 4 | +, evalSrc ? src |
4 | 5 | , materialized-dir ? ../materialized
|
5 | 6 | , compiler-nix-name # The name of the ghc compiler to use eg. "ghc884"
|
6 | 7 | , index-state ? null # Hackage index-state, eg. "2019-10-10T00:00:00Z"
|
@@ -94,13 +95,13 @@ in let
|
94 | 95 | ghc = if ghc' ? latestVersion
|
95 | 96 | then __trace "WARNING: ${ghc'.version} is out of date, consider using upgrading to ${ghc'.latestVersion}." ghc'
|
96 | 97 | else ghc';
|
97 |
| - subDir' = src.origSubDir or ""; |
| 98 | + subDir' = evalSrc.origSubDir or ""; |
98 | 99 | subDir = pkgs.lib.strings.removePrefix "/" subDir';
|
99 | 100 |
|
100 | 101 | cleanedSource = haskellLib.cleanSourceWith {
|
101 | 102 | name = if name != null then "${name}-root-cabal-files" else "source-root-cabal-files";
|
102 |
| - src = src.origSrc or src; |
103 |
| - filter = path: type: (!(src ? filter) || src.filter path type) && ( |
| 103 | + src = evalSrc.origSrc or evalSrc; |
| 104 | + filter = path: type: (!(evalSrc ? filter) || evalSrc.filter path type) && ( |
104 | 105 | type == "directory" ||
|
105 | 106 | pkgs.lib.any (i: (pkgs.lib.hasSuffix i path)) [ ".cabal" "package.yaml" ]); };
|
106 | 107 |
|
|
544 | 545 | ''}
|
545 | 546 | ${pkgs.lib.optionalString (!pkgs.stdenv.targetPlatform.isWindows) ''
|
546 | 547 | deps+=" $(jq -r '.components.lib."build-depends"[]|select(._if.not.os == "windows")|._then[]|.package' $json_cabal_file)"
|
547 |
| - ''} |
| 548 | + '' |
| 549 | + # Fix problem with `haskeline` using a `terminfo` flag |
| 550 | + # For haskell-nix ghc we can use ghc.enableTerminfo to get the flag setting |
| 551 | + + pkgs.lib.optionalString (name == "haskeline" && !pkgs.stdenv.targetPlatform.isWindows && ghc.enableTerminfo or true) '' |
| 552 | + deps+=" terminfo" |
| 553 | + '' |
| 554 | + # Similar issue for Win32:filepath build-depends (hidden behind `if impl(ghc >= 8.0)`) |
| 555 | + + pkgs.lib.optionalString (name == "Win32" && pkgs.stdenv.targetPlatform.isWindows) '' |
| 556 | + deps+=" filepath" |
| 557 | + '' |
| 558 | + } |
548 | 559 | DEPS_${varname name}="$(tr '\n' ' ' <<< "$deps")"
|
549 | 560 | VER_${varname name}="$(jq -r '.version' $json_cabal_file)"
|
550 | 561 | PKGS+=" ${name}"
|
|
0 commit comments