Unverified Commit 3016300d authored by Vladimír Čunát's avatar Vladimír Čunát
Browse files

haskellPackages: cherry picks from haskell-updates (#360499)

parents 3dec3c32 649721fe
Loading
Loading
Loading
Loading
+13 −8
Original line number Diff line number Diff line
@@ -169,10 +169,11 @@

      patches =
        let
          # Disable haddock generating pretty source listings to stay under 3GB on aarch64-linux
          enableHyperlinkedSource =
            lib.versionAtLeast version "9.8" ||
            !(stdenv.hostPlatform.isAarch64 && stdenv.hostPlatform.isLinux);
            # Disable haddock generating pretty source listings to stay under 3GB on aarch64-linux
            !(stdenv.hostPlatform.isAarch64 && stdenv.hostPlatform.isLinux)
            # 9.8 and 9.10 don't run into this problem for some reason
            || (lib.versionAtLeast version "9.8" && lib.versionOlder version "9.11");
        in
        [
          # Fix docs build with Sphinx >= 7 https://gitlab.haskell.org/ghc/ghc/-/issues/24129
@@ -207,12 +208,16 @@
           then ./Cabal-at-least-3.6-paths-fix-cycle-aarch64-darwin.patch
           else ./Cabal-3.12-paths-fix-cycle-aarch64-darwin.patch)
        ]
        # Prevents passing --hyperlinked-source to haddock. This is a custom
        # workaround as we wait for this to be configurable via userSettings or
        # similar. https://gitlab.haskell.org/ghc/ghc/-/issues/23625
        # Prevents passing --hyperlinked-source to haddock. Note that this can
        # be configured via a user defined flavour now. Unfortunately, it is
        # impossible to import an existing flavour in UserSettings, so patching
        # the defaults is actually simpler and less maintenance intensive
        # compared to keeping an entire flavour definition in sync with upstream
        # manually. See also https://gitlab.haskell.org/ghc/ghc/-/issues/23625
        ++ lib.optionals (!enableHyperlinkedSource) [
          # TODO(@sternenseemann): Doesn't apply for GHC >= 9.8
          ../../tools/haskell/hadrian/disable-hyperlinked-source.patch
          (if lib.versionOlder version "9.8"
           then ../../tools/haskell/hadrian/disable-hyperlinked-source-pre-9.8.patch
           else ../../tools/haskell/hadrian/disable-hyperlinked-source-extra-args.patch)
        ]
        # Incorrect bounds on Cabal in hadrian
        # https://gitlab.haskell.org/ghc/ghc/-/issues/24100
+26 −13
Original line number Diff line number Diff line
@@ -102,7 +102,9 @@ self: super: {
  #######################################

  # All jailbreaks in this section due to: https://github.com/haskell/haskell-language-server/pull/4316#discussion_r1667684895
  haskell-language-server = doJailbreak (dontCheck (super.haskell-language-server.overrideScope (lself: lsuper: {
  haskell-language-server =
    lib.pipe
      (super.haskell-language-server.overrideScope (lself: lsuper: {
        # For most ghc versions, we overrideScope Cabal in the configuration-ghc-???.nix,
        # because some packages, like ormolu, need a newer Cabal version.
        # ghc-paths is special because it depends on Cabal for building
@@ -113,9 +115,20 @@ self: super: {
        # otherwise we have different versions of ghc-paths
        # around which have the same abi-hash, which can lead to confusions and conflicts.
        ghc-paths = lsuper.ghc-paths.override { Cabal = null; };
  })));
      }))
      [
        doJailbreak
        dontCheck
      ];

  hls-plugin-api = doJailbreak super.hls-plugin-api;
  ghcide = doJailbreak super.ghcide;
  ghcide = doJailbreak (appendPatch (pkgs.fetchpatch {
    name = "ghcide-ghc-9.8.3.patch";
    url = "https://github.com/haskell/haskell-language-server/commit/6d0a6f220226fe6c1cb5b6533177deb55e755b0b.patch";
    sha256 = "1jwxldar9qzkg2z6vsx8f2yih3vkf4yjk9p3mryv0azn929qn3h1";
    stripLen = 1;
    excludes = [ "cabal.project" ];
  }) super.ghcide);

  # For -f-auto see cabal.project in haskell-language-server.
  ghc-lib-parser-ex = addBuildDepend self.ghc-lib-parser (disableCabalFlag "auto" super.ghc-lib-parser-ex);
+61 −0
Original line number Diff line number Diff line
{ pkgs, haskellLib }:

let
  inherit (pkgs) lib;

in

self: super: {
  llvmPackages = lib.dontRecurseIntoAttrs self.ghc.llvmPackages;

  # Disable GHC core libraries
  array = null;
  base = null;
  binary = null;
  bytestring = null;
  Cabal = null;
  Cabal-syntax = null;
  containers = null;
  deepseq = null;
  directory = null;
  exceptions = null;
  file-io = null;
  filepath = null;
  ghc-bignum = null;
  ghc-boot = null;
  ghc-boot-th = null;
  ghc-compact = null;
  ghc-experimental = null;
  ghc-heap = null;
  ghc-internal = null;
  ghc-platform = null;
  ghc-prim = null;
  ghc-toolchain = null;
  ghci = null;
  haddock-api = null;
  haddock-library = null;
  haskeline = null;
  hpc = null;
  integer-gmp = null;
  mtl = null;
  os-string = null;
  parsec = null;
  pretty = null;
  process = null;
  rts = null;
  semaphore-compat = null;
  stm = null;
  system-cxx-std-lib = null;
  template-haskell = null;
  # GHC only builds terminfo if it is a native compiler
  terminfo =
    if pkgs.stdenv.hostPlatform == pkgs.stdenv.buildPlatform then
      null
    else
      haskellLib.doDistribute self.terminfo_0_4_1_6;
  text = null;
  time = null;
  transformers = null;
  unix = null;
  xhtml = null;
}
+13 −0
Original line number Diff line number Diff line
diff --git a/hadrian/src/Settings/Default.hs b/hadrian/src/Settings/Default.hs
index 0b743788ec..a7ff841609 100644
--- a/hadrian/src/Settings/Default.hs
+++ b/hadrian/src/Settings/Default.hs
@@ -249,7 +249,7 @@ defaultExtraArgs =
 
 defaultHaddockExtraArgs :: Args
 defaultHaddockExtraArgs = builder (Haddock BuildPackage) ?
-  mconcat [ arg "--hyperlinked-source", arg "--hoogle", arg "--quickjump" ]
+  mconcat [ arg "--hoogle", arg "--quickjump" ]
 
 
 -- | Default source arguments, e.g. optimisation settings.
Loading