|
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