diff options
Diffstat (limited to 'pkgs/development/haskell-modules/configuration-darwin.nix')
-rw-r--r-- | pkgs/development/haskell-modules/configuration-darwin.nix | 52 |
1 files changed, 52 insertions, 0 deletions
diff --git a/pkgs/development/haskell-modules/configuration-darwin.nix b/pkgs/development/haskell-modules/configuration-darwin.nix index 3e7bf1f89f7cf..5985d29f8b591 100644 --- a/pkgs/development/haskell-modules/configuration-darwin.nix +++ b/pkgs/development/haskell-modules/configuration-darwin.nix @@ -110,6 +110,12 @@ self: super: ({ substituteInPlace System/X509/MacOS.hs --replace security /usr/bin/security '' + (drv.postPatch or ""); }) super.x509-system; + crypton-x509-system = overrideCabal (drv: + lib.optionalAttrs (!pkgs.stdenv.cc.nativeLibc) { + postPatch = '' + substituteInPlace System/X509/MacOS.hs --replace security /usr/bin/security + '' + (drv.postPatch or ""); + }) super.crypton-x509-system; # https://github.com/haskell-foundation/foundation/pull/412 foundation = dontCheck super.foundation; @@ -316,8 +322,46 @@ self: super: ({ # Tests fail on macOS https://github.com/mrkkrp/zip/issues/112 zip = dontCheck super.zip; + + jsaddle-wkwebview = overrideCabal (drv: { + libraryFrameworkDepends = with pkgs.buildPackages.darwin.apple_sdk.frameworks; [ Cocoa WebKit ]; + libraryHaskellDepends = with self; [ aeson data-default jsaddle ]; # cabal2nix doesn't add darwin-only deps + }) super.jsaddle-wkwebview; + reflex-dom = overrideCabal (drv: { + libraryHaskellDepends = with self; [ base bytestring jsaddle-wkwebview reflex reflex-dom-core text ]; # cabal2nix doesn't add darwin-only deps + }) super.reflex-dom; + + # Remove a problematic assert, the length is sometimes 1 instead of 2 on darwin + di-core = overrideCabal (drv: { + preConfigure = '' + substituteInPlace test/Main.hs --replace \ + "2 @=? List.length (List.nub (List.sort (map Di.log_time logs)))" "" + ''; + }) super.di-core; + } // lib.optionalAttrs pkgs.stdenv.isAarch64 { # aarch64-darwin + # Workarounds for justStaticExecutables on aarch64-darwin. Since dead code + # elimination barely works on aarch64-darwin, any package that has a + # dependency that uses a Paths_ module will incur a reference on GHC, making + # it fail with disallowGhcReference (which is set by justStaticExecutables). + # + # To address this, you can either manually remove the references causing this + # after verifying they are indeed erroneous (e.g. cabal2nix) or just disable + # the check, sticking with the status quo. Ideally there'll be zero cases of + # the latter in the future! + inherit ( + lib.mapAttrs (_: overrideCabal (old: { + postInstall = '' + remove-references-to -t ${self.hpack} "$out/bin/cabal2nix" + # Note: The `data` output is needed at runtime. + remove-references-to -t ${self.distribution-nixpkgs.out} "$out/bin/hackage2nix" + + ${old.postInstall or ""} + ''; + })) super + ) cabal2nix cabal2nix-unstable; + # https://github.com/fpco/unliftio/issues/87 unliftio = dontCheck super.unliftio; # This is the same issue as above; the rio tests call functions in unliftio @@ -354,4 +398,12 @@ self: super: ({ # same # https://hydra.nixos.org/build/174540882/nixlog/9 jacinda = dontCheck super.jacinda; + + # Greater floating point error on x86_64-darwin (!) for some reason + # https://github.com/ekmett/ad/issues/113 + ad = overrideCabal (drv: { + testFlags = drv.testFlags or [ ] ++ [ + "-p" "!/issue-108/" + ]; + }) super.ad; }) |