From 5366b030f4b1c5d2d700c6c7ec1c99e181476934 Mon Sep 17 00:00:00 2001 From: Hamish Mackenzie Date: Thu, 15 May 2025 11:42:40 +1200 Subject: [PATCH 1/2] Fix terminfo dep in dummy ghc for haskeline The dependency is missed because a `terminfo` cabal flag is used. --- compiler/ghc/default.nix | 2 +- lib/call-cabal-project-to-nix.nix | 8 +++++++- 2 files changed, 8 insertions(+), 2 deletions(-) diff --git a/compiler/ghc/default.nix b/compiler/ghc/default.nix index 13abf8bdf7..4e7f46a45d 100644 --- a/compiler/ghc/default.nix +++ b/compiler/ghc/default.nix @@ -668,7 +668,7 @@ haskell-nix.haskellLib.makeCompilerDeps (stdenv.mkDerivation (rec { ''; passthru = { - inherit bootPkgs targetPrefix libDir llvmPackages enableShared useLLVM hadrian hadrianProject; + inherit bootPkgs targetPrefix libDir llvmPackages enableShared enableTerminfo useLLVM hadrian hadrianProject; # Our Cabal compiler name haskellCompilerName = "ghc-${version}"; diff --git a/lib/call-cabal-project-to-nix.nix b/lib/call-cabal-project-to-nix.nix index 03c6cad9ad..21a9fe6ff5 100644 --- a/lib/call-cabal-project-to-nix.nix +++ b/lib/call-cabal-project-to-nix.nix @@ -540,7 +540,13 @@ let ''} ${pkgs.lib.optionalString (!pkgs.stdenv.targetPlatform.isWindows) '' deps+=" $(jq -r '.components.lib."build-depends"[]|select(._if.not.os == "windows")|._then[]|.package' $json_cabal_file)" - ''} + '' + # Fix problem with `haskeline` using a `terminfo` flag + # For haskell-nix ghc we can use ghc.enableTerminfo to get the flag setting + + pkgs.lib.optionalString (name == "haskeline" && !pkgs.stdenv.targetPlatform.isWindows && ghc.enableTerminfo or true) '' + deps+=" terminfo" + '' + } DEPS_${varname name}="$(tr '\n' ' ' <<< "$deps")" VER_${varname name}="$(jq -r '.version' $json_cabal_file)" PKGS+=" ${name}" From 7693c14c10d942984cfc2866dd4985a5c6cbe7f6 Mon Sep 17 00:00:00 2001 From: Hamish Mackenzie Date: Thu, 15 May 2025 15:10:56 +1200 Subject: [PATCH 2/2] Also fix Win32:filepath --- lib/call-cabal-project-to-nix.nix | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/lib/call-cabal-project-to-nix.nix b/lib/call-cabal-project-to-nix.nix index 21a9fe6ff5..ccf11542b1 100644 --- a/lib/call-cabal-project-to-nix.nix +++ b/lib/call-cabal-project-to-nix.nix @@ -546,6 +546,10 @@ let + pkgs.lib.optionalString (name == "haskeline" && !pkgs.stdenv.targetPlatform.isWindows && ghc.enableTerminfo or true) '' deps+=" terminfo" '' + # Similar issue for Win32:filepath build-depends (hidden behind `if impl(ghc >= 8.0)`) + + pkgs.lib.optionalString (name == "Win32" && pkgs.stdenv.targetPlatform.isWindows) '' + deps+=" filepath" + '' } DEPS_${varname name}="$(tr '\n' ' ' <<< "$deps")" VER_${varname name}="$(jq -r '.version' $json_cabal_file)"