haskell.compiler.ghc884: remove at 8.8.4

The main aim of this is to be able to drop llvmPackages_7.

-608
-381
pkgs/development/compilers/ghc/8.8.4.nix
··· 1 - { lib, stdenv, pkgsBuildTarget, pkgsHostTarget, targetPackages 2 - 3 - # build-tools 4 - , bootPkgs 5 - , autoconf, automake, coreutils, fetchpatch, fetchurl, perl, python3, m4, sphinx 6 - , bash 7 - 8 - , libiconv ? null, ncurses 9 - 10 - , # GHC can be built with system libffi or a bundled one. 11 - libffi ? null 12 - 13 - , useLLVM ? !(stdenv.targetPlatform.isx86 14 - || stdenv.targetPlatform.isPower 15 - || stdenv.targetPlatform.isSparc) 16 - , # LLVM is conceptually a run-time-only dependency, but for 17 - # non-x86, we need LLVM to bootstrap later stages, so it becomes a 18 - # build-time dependency too. 19 - buildTargetLlvmPackages, llvmPackages 20 - 21 - , # If enabled, GHC will be built with the GPL-free but slower integer-simple 22 - # library instead of the faster but GPLed integer-gmp library. 23 - enableIntegerSimple ? !(lib.meta.availableOn stdenv.hostPlatform gmp 24 - && lib.meta.availableOn stdenv.targetPlatform gmp) 25 - , gmp 26 - 27 - , # If enabled, use -fPIC when compiling static libs. 28 - enableRelocatedStaticLibs ? stdenv.targetPlatform != stdenv.hostPlatform 29 - 30 - , enableProfiledLibs ? true 31 - 32 - , # Whether to build dynamic libs for the standard library (on the target 33 - # platform). Static libs are always built. 34 - enableShared ? !stdenv.targetPlatform.isWindows && !stdenv.targetPlatform.useiOSPrebuilt 35 - 36 - , # Whether to build terminfo. 37 - enableTerminfo ? !stdenv.targetPlatform.isWindows 38 - 39 - , # What flavour to build. An empty string indicates no 40 - # specific flavour and falls back to ghc default values. 41 - ghcFlavour ? lib.optionalString (stdenv.targetPlatform != stdenv.hostPlatform) 42 - (if useLLVM then "perf-cross" else "perf-cross-ncg") 43 - 44 - , # Whether to build sphinx documentation. 45 - enableDocs ? ( 46 - # Docs disabled for musl and cross because it's a large task to keep 47 - # all `sphinx` dependencies building in those environments. 48 - # `sphinx` pullls in among others: 49 - # Ruby, Python, Perl, Rust, OpenGL, Xorg, gtk, LLVM. 50 - (stdenv.targetPlatform == stdenv.hostPlatform) 51 - && !stdenv.hostPlatform.isMusl 52 - ) 53 - 54 - , enableHaddockProgram ? 55 - # Disabled for cross; see note [HADDOCK_DOCS]. 56 - (stdenv.targetPlatform == stdenv.hostPlatform) 57 - 58 - , # Whether to disable the large address space allocator 59 - # necessary fix for iOS: https://www.reddit.com/r/haskell/comments/4ttdz1/building_an_osxi386_to_iosarm64_cross_compiler/d5qvd67/ 60 - disableLargeAddressSpace ? stdenv.targetPlatform.isiOS 61 - }: 62 - 63 - assert !enableIntegerSimple -> gmp != null; 64 - 65 - # Cross cannot currently build the `haddock` program for silly reasons, 66 - # see note [HADDOCK_DOCS]. 67 - assert (stdenv.targetPlatform != stdenv.hostPlatform) -> !enableHaddockProgram; 68 - 69 - let 70 - inherit (stdenv) buildPlatform hostPlatform targetPlatform; 71 - 72 - inherit (bootPkgs) ghc; 73 - 74 - # TODO(@Ericson2314) Make unconditional 75 - targetPrefix = lib.optionalString 76 - (targetPlatform != hostPlatform) 77 - "${targetPlatform.config}-"; 78 - 79 - buildMK = dontStrip: '' 80 - BuildFlavour = ${ghcFlavour} 81 - ifneq \"\$(BuildFlavour)\" \"\" 82 - include mk/flavours/\$(BuildFlavour).mk 83 - endif 84 - BUILD_SPHINX_HTML = ${if enableDocs then "YES" else "NO"} 85 - BUILD_SPHINX_PDF = NO 86 - '' + 87 - # Note [HADDOCK_DOCS]: 88 - # Unfortunately currently `HADDOCK_DOCS` controls both whether the `haddock` 89 - # program is built (which we generally always want to have a complete GHC install) 90 - # and whether it is run on the GHC sources to generate hyperlinked source code 91 - # (which is impossible for cross-compilation); see: 92 - # https://gitlab.haskell.org/ghc/ghc/-/issues/20077 93 - # This implies that currently a cross-compiled GHC will never have a `haddock` 94 - # program, so it can never generate haddocks for any packages. 95 - # If this is solved in the future, we'd like to unconditionally 96 - # build the haddock program (removing the `enableHaddockProgram` option). 97 - '' 98 - HADDOCK_DOCS = ${if enableHaddockProgram then "YES" else "NO"} 99 - DYNAMIC_GHC_PROGRAMS = ${if enableShared then "YES" else "NO"} 100 - INTEGER_LIBRARY = ${if enableIntegerSimple then "integer-simple" else "integer-gmp"} 101 - '' 102 - # We only need to build stage1 on most cross-compilation because 103 - # we will be running the compiler on the native system. In some 104 - # situations, like native Musl compilation, we need the compiler 105 - # to actually link to our new Libc. The iOS simulator is a special 106 - # exception because we can’t actually run simulators binaries 107 - # ourselves. 108 - + lib.optionalString (targetPlatform != hostPlatform) '' 109 - Stage1Only = ${if (targetPlatform.system == hostPlatform.system && !targetPlatform.isiOS) then "NO" else "YES"} 110 - CrossCompilePrefix = ${targetPrefix} 111 - '' + lib.optionalString dontStrip '' 112 - STRIP_CMD = : 113 - '' + lib.optionalString (!enableProfiledLibs) '' 114 - GhcLibWays = "v dyn" 115 - '' + lib.optionalString enableRelocatedStaticLibs '' 116 - GhcLibHcOpts += -fPIC 117 - GhcRtsHcOpts += -fPIC 118 - '' + lib.optionalString targetPlatform.useAndroidPrebuilt '' 119 - EXTRA_CC_OPTS += -std=gnu99 120 - '' 121 - # While split sections are now enabled by default in ghc 8.8 for windows, 122 - # they seem to lead to `too many sections` errors when building base for 123 - # profiling. 124 - + lib.optionalString targetPlatform.isWindows '' 125 - SplitSections = NO 126 - ''; 127 - 128 - # Splicer will pull out correct variations 129 - libDeps = platform: lib.optional enableTerminfo ncurses 130 - ++ [libffi] 131 - ++ lib.optional (!enableIntegerSimple) gmp 132 - ++ lib.optional (platform.libc != "glibc" && !targetPlatform.isWindows) libiconv; 133 - 134 - # TODO(@sternenseemann): is buildTarget LLVM unnecessary? 135 - # GHC doesn't seem to have {LLC,OPT}_HOST 136 - toolsForTarget = [ 137 - pkgsBuildTarget.targetPackages.stdenv.cc 138 - ] ++ lib.optional useLLVM buildTargetLlvmPackages.llvm; 139 - 140 - targetCC = builtins.head toolsForTarget; 141 - 142 - # Use gold either following the default, or to avoid the BFD linker due to some bugs / perf issues. 143 - # But we cannot avoid BFD when using musl libc due to https://sourceware.org/bugzilla/show_bug.cgi?id=23856 144 - # see #84670 and #49071 for more background. 145 - useLdGold = targetPlatform.linker == "gold" || 146 - (targetPlatform.linker == "bfd" && (targetCC.bintools.bintools.hasGold or false) && !targetPlatform.isMusl); 147 - 148 - # Makes debugging easier to see which variant is at play in `nix-store -q --tree`. 149 - variantSuffix = lib.concatStrings [ 150 - (lib.optionalString stdenv.hostPlatform.isMusl "-musl") 151 - (lib.optionalString enableIntegerSimple "-integer-simple") 152 - ]; 153 - 154 - in 155 - 156 - # C compiler, bintools and LLVM are used at build time, but will also leak into 157 - # the resulting GHC's settings file and used at runtime. This means that we are 158 - # currently only able to build GHC if hostPlatform == buildPlatform. 159 - assert targetCC == pkgsHostTarget.targetPackages.stdenv.cc; 160 - assert buildTargetLlvmPackages.llvm == llvmPackages.llvm; 161 - assert stdenv.targetPlatform.isDarwin -> buildTargetLlvmPackages.clang == llvmPackages.clang; 162 - 163 - stdenv.mkDerivation (rec { 164 - version = "8.8.4"; 165 - pname = "${targetPrefix}ghc${variantSuffix}"; 166 - 167 - src = fetchurl { 168 - url = "https://downloads.haskell.org/ghc/${version}/ghc-${version}-src.tar.xz"; 169 - sha256 = "0bgwbxxvdn56l91bp9p5d083gzcfdi6z8l8b17qzjpr3n8w5wl7h"; 170 - }; 171 - 172 - enableParallelBuilding = true; 173 - 174 - outputs = [ "out" "doc" ]; 175 - 176 - patches = [ 177 - # Fix docs build with sphinx >= 6.0 178 - # https://gitlab.haskell.org/ghc/ghc/-/issues/22766 179 - ./ghc-8.8.4-sphinx-6.0.patch 180 - 181 - # See upstream patch at 182 - # https://gitlab.haskell.org/ghc/ghc/-/merge_requests/4885. Since we build 183 - # from source distributions, the auto-generated configure script needs to be 184 - # patched as well, therefore we use an in-tree patch instead of pulling the 185 - # upstream patch. Don't forget to check backport status of the upstream patch 186 - # when adding new GHC releases in nixpkgs. 187 - ./respect-ar-path.patch 188 - # Fix documentation configuration which causes a syntax error with sphinx 4.* 189 - # See also https://gitlab.haskell.org/ghc/ghc/-/issues/19962 190 - ./sphinx-4-configuration.patch 191 - # cabal passes incorrect --host= when cross-compiling 192 - # https://github.com/haskell/cabal/issues/5887 193 - (fetchpatch { 194 - url = "https://raw.githubusercontent.com/input-output-hk/haskell.nix/122bd81150386867da07fdc9ad5096db6719545a/overlays/patches/ghc/cabal-host.patch"; 195 - sha256 = "sha256:0yd0sajgi24sc1w5m55lkg2lp6kfkgpp3lgija2c8y3cmkwfpdc1"; 196 - }) 197 - 198 - # error: 'VirtualAllocExNuma' redeclared as different kind of symbol 199 - # name conflict between rts/win32/OSMem.c and winbase.h from the mingw-w64 runtime package 200 - # Renamed to match ghc8.8: 201 - # https://gitlab.haskell.org/ghc/ghc/-/commit/4b431f334018eaef2cf36de3316025c68c922915#20d64c0bdc272817149d1d5cf20a73a8b5fd637f 202 - ./rename-numa-api-call.patch 203 - ]; 204 - 205 - postPatch = "patchShebangs ."; 206 - 207 - # GHC is a bit confused on its cross terminology. 208 - # TODO(@sternenseemann): investigate coreutils dependencies and pass absolute paths 209 - preConfigure = 210 - # Aarch64 allow backward bootstrapping since earlier versions are unstable. 211 - # Same for musl, as earlier versions do not provide a musl bindist for bootstrapping. 212 - lib.optionalString (stdenv.isAarch64 || stdenv.hostPlatform.isMusl) '' 213 - find . -name \*\.cabal\* -exec sed -i -e 's/\(base.*\)4.14/\14.16/' {} \; \ 214 - -exec sed -i -e 's/\(prim.*\)0.6/\10.8/' {} \; 215 - '' 216 - + '' 217 - for env in $(env | grep '^TARGET_' | sed -E 's|\+?=.*||'); do 218 - export "''${env#TARGET_}=''${!env}" 219 - done 220 - # GHC is a bit confused on its cross terminology, as these would normally be 221 - # the *host* tools. 222 - export CC="${targetCC}/bin/${targetCC.targetPrefix}cc" 223 - export CXX="${targetCC}/bin/${targetCC.targetPrefix}c++" 224 - # Use gold to work around https://sourceware.org/bugzilla/show_bug.cgi?id=16177 225 - export LD="${targetCC.bintools}/bin/${targetCC.bintools.targetPrefix}ld${lib.optionalString useLdGold ".gold"}" 226 - export AS="${targetCC.bintools.bintools}/bin/${targetCC.bintools.targetPrefix}as" 227 - export AR="${targetCC.bintools.bintools}/bin/${targetCC.bintools.targetPrefix}ar" 228 - export NM="${targetCC.bintools.bintools}/bin/${targetCC.bintools.targetPrefix}nm" 229 - export RANLIB="${targetCC.bintools.bintools}/bin/${targetCC.bintools.targetPrefix}ranlib" 230 - export READELF="${targetCC.bintools.bintools}/bin/${targetCC.bintools.targetPrefix}readelf" 231 - export STRIP="${targetCC.bintools.bintools}/bin/${targetCC.bintools.targetPrefix}strip" 232 - '' + lib.optionalString useLLVM '' 233 - export LLC="${lib.getBin buildTargetLlvmPackages.llvm}/bin/llc" 234 - export OPT="${lib.getBin buildTargetLlvmPackages.llvm}/bin/opt" 235 - '' + lib.optionalString (useLLVM && stdenv.targetPlatform.isDarwin) '' 236 - # LLVM backend on Darwin needs clang: https://downloads.haskell.org/~ghc/latest/docs/html/users_guide/codegens.html#llvm-code-generator-fllvm 237 - export CLANG="${buildTargetLlvmPackages.clang}/bin/${buildTargetLlvmPackages.clang.targetPrefix}clang" 238 - '' + '' 239 - 240 - echo -n "${buildMK dontStrip}" > mk/build.mk 241 - sed -i -e 's|-isysroot /Developer/SDKs/MacOSX10.5.sdk||' configure 242 - '' + lib.optionalString (!stdenv.isDarwin) '' 243 - export NIX_LDFLAGS+=" -rpath $out/lib/ghc-${version}" 244 - '' + lib.optionalString stdenv.isDarwin '' 245 - export NIX_LDFLAGS+=" -no_dtrace_dof" 246 - '' + lib.optionalString targetPlatform.useAndroidPrebuilt '' 247 - sed -i -e '5i ,("armv7a-unknown-linux-androideabi", ("e-m:e-p:32:32-i64:64-v128:64:128-a:0:32-n32-S64", "cortex-a8", ""))' llvm-targets 248 - '' + lib.optionalString targetPlatform.isMusl '' 249 - echo "patching llvm-targets for musl targets..." 250 - echo "Cloning these existing '*-linux-gnu*' targets:" 251 - grep linux-gnu llvm-targets | sed 's/^/ /' 252 - echo "(go go gadget sed)" 253 - sed -i 's,\(^.*linux-\)gnu\(.*\)$,\0\n\1musl\2,' llvm-targets 254 - echo "llvm-targets now contains these '*-linux-musl*' targets:" 255 - grep linux-musl llvm-targets | sed 's/^/ /' 256 - 257 - echo "And now patching to preserve '-musleabi' as done with '-gnueabi'" 258 - # (aclocal.m4 is actual source, but patch configure as well since we don't re-gen) 259 - for x in configure aclocal.m4; do 260 - substituteInPlace $x \ 261 - --replace '*-android*|*-gnueabi*)' \ 262 - '*-android*|*-gnueabi*|*-musleabi*)' 263 - done 264 - ''; 265 - 266 - # TODO(@Ericson2314): Always pass "--target" and always prefix. 267 - configurePlatforms = [ "build" "host" ] 268 - ++ lib.optional (targetPlatform != hostPlatform) "target"; 269 - 270 - # `--with` flags for libraries needed for RTS linker 271 - configureFlags = [ 272 - "--datadir=$doc/share/doc/ghc" 273 - "--with-curses-includes=${ncurses.dev}/include" "--with-curses-libraries=${ncurses.out}/lib" 274 - ] ++ lib.optionals (libffi != null) [ 275 - "--with-system-libffi" 276 - "--with-ffi-includes=${targetPackages.libffi.dev}/include" 277 - "--with-ffi-libraries=${targetPackages.libffi.out}/lib" 278 - ] ++ lib.optionals (targetPlatform == hostPlatform && !enableIntegerSimple) [ 279 - "--with-gmp-includes=${targetPackages.gmp.dev}/include" 280 - "--with-gmp-libraries=${targetPackages.gmp.out}/lib" 281 - ] ++ lib.optionals (targetPlatform == hostPlatform && hostPlatform.libc != "glibc" && !targetPlatform.isWindows) [ 282 - "--with-iconv-includes=${libiconv}/include" 283 - "--with-iconv-libraries=${libiconv}/lib" 284 - ] ++ lib.optionals (targetPlatform != hostPlatform) [ 285 - "--enable-bootstrap-with-devel-snapshot" 286 - ] ++ lib.optionals useLdGold [ 287 - "CFLAGS=-fuse-ld=gold" 288 - "CONF_GCC_LINKER_OPTS_STAGE1=-fuse-ld=gold" 289 - "CONF_GCC_LINKER_OPTS_STAGE2=-fuse-ld=gold" 290 - ] ++ lib.optionals (disableLargeAddressSpace) [ 291 - "--disable-large-address-space" 292 - ]; 293 - 294 - # Make sure we never relax`$PATH` and hooks support for compatibility. 295 - strictDeps = true; 296 - 297 - # Don’t add -liconv to LDFLAGS automatically so that GHC will add it itself. 298 - dontAddExtraLibs = true; 299 - 300 - nativeBuildInputs = [ 301 - perl autoconf automake m4 python3 302 - ghc bootPkgs.alex bootPkgs.happy bootPkgs.hscolour 303 - ] ++ lib.optionals enableDocs [ 304 - sphinx 305 - ]; 306 - 307 - # For building runtime libs 308 - depsBuildTarget = toolsForTarget; 309 - 310 - buildInputs = [ perl bash ] ++ (libDeps hostPlatform); 311 - 312 - depsTargetTarget = map lib.getDev (libDeps targetPlatform); 313 - depsTargetTargetPropagated = map (lib.getOutput "out") (libDeps targetPlatform); 314 - 315 - # required, because otherwise all symbols from HSffi.o are stripped, and 316 - # that in turn causes GHCi to abort 317 - stripDebugFlags = [ "-S" ] ++ lib.optional (!targetPlatform.isDarwin) "--keep-file-symbols"; 318 - 319 - checkTarget = "test"; 320 - 321 - hardeningDisable = 322 - [ "format" ] 323 - # In nixpkgs, musl based builds currently enable `pie` hardening by default 324 - # (see `defaultHardeningFlags` in `make-derivation.nix`). 325 - # But GHC cannot currently produce outputs that are ready for `-pie` linking. 326 - # Thus, disable `pie` hardening, otherwise `recompile with -fPIE` errors appear. 327 - # See: 328 - # * https://github.com/NixOS/nixpkgs/issues/129247 329 - # * https://gitlab.haskell.org/ghc/ghc/-/issues/19580 330 - ++ lib.optional stdenv.targetPlatform.isMusl "pie"; 331 - 332 - postInstall = '' 333 - # Install the bash completion file. 334 - install -D -m 444 utils/completion/ghc.bash $out/share/bash-completion/completions/${targetPrefix}ghc 335 - ''; 336 - 337 - passthru = { 338 - inherit bootPkgs targetPrefix; 339 - 340 - inherit llvmPackages; 341 - inherit enableShared; 342 - 343 - # This is used by the haskell builder to query 344 - # the presence of the haddock program. 345 - hasHaddock = enableHaddockProgram; 346 - 347 - # Our Cabal compiler name 348 - haskellCompilerName = "ghc-${version}"; 349 - }; 350 - 351 - meta = { 352 - homepage = "http://haskell.org/ghc"; 353 - description = "The Glasgow Haskell Compiler"; 354 - maintainers = with lib.maintainers; [ 355 - guibou 356 - ] ++ lib.teams.haskell.members; 357 - timeout = 24 * 3600; 358 - inherit (ghc.meta) license; 359 - # hardcode platforms because the bootstrap GHC differs depending on the platform, 360 - # with differing platforms available for each of them; See HACK comment in 361 - # 8.10.2-binary.nix for an explanation of the musl special casing. 362 - platforms = [ 363 - "x86_64-linux" 364 - ] ++ lib.optionals (!hostPlatform.isMusl) [ 365 - "i686-linux" 366 - "aarch64-linux" 367 - "x86_64-darwin" 368 - ]; 369 - # integer-simple builds are broken with musl when bootstrapping using 370 - # GHC 8.10.2 and below, however it is not possible to reverse bootstrap 371 - # GHC 8.8.4 with GHC 8.10.7. 372 - # See https://github.com/NixOS/nixpkgs/pull/138523#issuecomment-927339953 373 - broken = hostPlatform.isMusl && enableIntegerSimple; 374 - }; 375 - 376 - dontStrip = (targetPlatform.useAndroidPrebuilt || targetPlatform.isWasm); 377 - 378 - } // lib.optionalAttrs targetPlatform.useAndroidPrebuilt{ 379 - dontPatchELF = true; 380 - noAuditTmpdir = true; 381 - })
···
-195
pkgs/development/haskell-modules/configuration-ghc-8.8.x.nix
··· 1 - { pkgs, haskellLib }: 2 - 3 - with haskellLib; 4 - 5 - let 6 - inherit (pkgs.stdenv.hostPlatform) isDarwin; 7 - in 8 - 9 - self: super: { 10 - 11 - llvmPackages = pkgs.lib.dontRecurseIntoAttrs self.ghc.llvmPackages; 12 - 13 - # Disable GHC 8.8.x core libraries. 14 - array = null; 15 - base = null; 16 - binary = null; 17 - bytestring = null; 18 - Cabal = null; 19 - containers = null; 20 - deepseq = null; 21 - directory = null; 22 - filepath = null; 23 - ghc-boot = null; 24 - ghc-boot-th = null; 25 - ghc-compact = null; 26 - ghc-heap = null; 27 - ghc-prim = null; 28 - ghci = null; 29 - haskeline = null; 30 - hpc = null; 31 - integer-gmp = null; 32 - libiserv = null; 33 - mtl = null; 34 - parsec = null; 35 - pretty = null; 36 - process = null; 37 - rts = null; 38 - stm = null; 39 - template-haskell = null; 40 - # GHC only builds terminfo if it is a native compiler 41 - terminfo = if pkgs.stdenv.hostPlatform == pkgs.stdenv.buildPlatform then null else self.terminfo_0_4_1_6; 42 - text = null; 43 - time = null; 44 - transformers = null; 45 - unix = null; 46 - # GHC only bundles the xhtml library if haddock is enabled, check if this is 47 - # still the case when updating: https://gitlab.haskell.org/ghc/ghc/-/blob/0198841877f6f04269d6050892b98b5c3807ce4c/ghc.mk#L463 48 - xhtml = if self.ghc.hasHaddock or true then null else self.xhtml_3000_3_0_0; 49 - # These core package only exist for GHC >= 9.4. The best we can do is feign 50 - # their existence to callPackages, but their is no shim for lower GHC versions. 51 - system-cxx-std-lib = null; 52 - 53 - # Need the Cabal-syntax-3.6.0.0 fake package for Cabal < 3.8 to allow callPackage and the constraint solver to work 54 - Cabal-syntax = self.Cabal-syntax_3_6_0_0; 55 - 56 - # GHC 8.8.x can build haddock version 2.23.* 57 - haddock = self.haddock_2_23_1; 58 - haddock-api = self.haddock-api_2_23_1; 59 - 60 - # This build needs a newer version of Cabal. 61 - cabal2spec = super.cabal2spec.override { Cabal = self.Cabal_3_2_1_0; }; 62 - 63 - # Additionally depends on OneTuple for GHC < 9.0 64 - base-compat-batteries = addBuildDepend self.OneTuple super.base-compat-batteries; 65 - 66 - # For GHC < 9.4, some packages need data-array-byte as an extra dependency 67 - primitive = addBuildDepends [ self.data-array-byte ] super.primitive; 68 - hashable = addBuildDepends [ 69 - self.data-array-byte 70 - self.base-orphans 71 - ] super.hashable; 72 - 73 - # Ignore overly restrictive upper version bounds. 74 - aeson-diff = doJailbreak super.aeson-diff; 75 - async = doJailbreak super.async; 76 - ChasingBottoms = doJailbreak super.ChasingBottoms; 77 - chell = doJailbreak super.chell; 78 - Diff = dontCheck super.Diff; 79 - doctest = overrideCabal (drv: { 80 - jailbreak = true; 81 - # The test case relies on the Printf module which did not exist in base 4.13 82 - testFlags = drv.testFlags or [ ] ++ [ 83 - "--skip=/Main/doctest (regression tests)/template-haskell-bugfix/" 84 - ]; 85 - }) super.doctest; 86 - hashable-time = doJailbreak super.hashable-time; 87 - hledger-lib = doJailbreak super.hledger-lib; # base >=4.8 && <4.13, easytest >=0.2.1 && <0.3 88 - integer-logarithms = doJailbreak super.integer-logarithms; 89 - lucid = doJailbreak super.lucid; 90 - parallel = doJailbreak super.parallel; 91 - setlocale = doJailbreak super.setlocale; 92 - split = doJailbreak super.split; 93 - system-fileio = doJailbreak super.system-fileio; 94 - tasty-expected-failure = doJailbreak super.tasty-expected-failure; 95 - tasty-hedgehog = doJailbreak super.tasty-hedgehog; 96 - test-framework = doJailbreak super.test-framework; 97 - th-expand-syns = doJailbreak super.th-expand-syns; 98 - # TODO: remove when upstream accepts https://github.com/snapframework/io-streams-haproxy/pull/17 99 - io-streams-haproxy = doJailbreak super.io-streams-haproxy; # base >=4.5 && <4.13 100 - snap-server = doJailbreak super.snap-server; 101 - exact-pi = doJailbreak super.exact-pi; 102 - time-compat = doJailbreak super.time-compat; 103 - http-media = unmarkBroken (doJailbreak super.http-media); 104 - servant-server = unmarkBroken (doJailbreak super.servant-server); 105 - basement = doDistribute self.basement_0_0_14; 106 - foundation = doDistribute (dontCheck self.foundation_0_0_28); 107 - vault = dontHaddock super.vault; 108 - 109 - # https://github.com/snapframework/snap-core/issues/288 110 - snap-core = overrideCabal (drv: { prePatch = "substituteInPlace src/Snap/Internal/Core.hs --replace 'fail = Fail.fail' ''"; }) super.snap-core; 111 - 112 - # Upstream ships a broken Setup.hs file. 113 - csv = overrideCabal (drv: { prePatch = "rm Setup.hs"; }) super.csv; 114 - 115 - # https://github.com/kowainik/relude/issues/241 116 - relude = dontCheck super.relude; 117 - 118 - # The current version 2.14.2 does not compile with ghc-8.8.x or newer because 119 - # of issues with Cabal 3.x. 120 - darcs = dontDistribute super.darcs; 121 - 122 - # liquidhaskell does not support ghc version 8.8.x. 123 - liquid = markBroken super.liquid; 124 - liquid-base = markBroken super.liquid-base; 125 - liquid-bytestring = markBroken super.liquid-bytestring; 126 - liquid-containers = markBroken super.liquid-containers; 127 - liquid-ghc-prim = markBroken super.liquid-ghc-prim; 128 - liquid-parallel = markBroken super.liquid-parallel; 129 - liquid-platform = markBroken super.liquid-platform; 130 - liquid-prelude = markBroken super.liquid-prelude; 131 - liquid-vector = markBroken super.liquid-vector; 132 - liquidhaskell = markBroken super.liquidhaskell; 133 - 134 - # This became a core library in ghc 8.10., so we don’t have an "exception" attribute anymore. 135 - exceptions = super.exceptions_0_10_7; 136 - 137 - ormolu = super.ormolu_0_2_0_0; 138 - 139 - ghc-api-compat = doDistribute (unmarkBroken super.ghc-api-compat_8_6); 140 - 141 - mime-string = disableOptimization super.mime-string; 142 - 143 - haskell-language-server = throw "haskell-language-server dropped support for ghc 8.8 in version 1.9.0.0 please use a newer ghc version or an older nixpkgs version"; 144 - 145 - hlint = self.hlint_3_2_8; 146 - 147 - ghc-lib-parser = doDistribute self.ghc-lib-parser_8_10_7_20220219; 148 - ghc-lib = doDistribute self.ghc-lib_8_10_7_20220219; 149 - 150 - # ghc versions which don’t match the ghc-lib-parser-ex version need the 151 - # additional dependency to compile successfully. 152 - ghc-lib-parser-ex = doDistribute (addBuildDepend self.ghc-lib-parser self.ghc-lib-parser-ex_8_10_0_24); 153 - 154 - # has a restrictive lower bound on Cabal 155 - fourmolu = doJailbreak super.fourmolu; 156 - 157 - # Overly-strict bounds introducted by a revision in version 0.3.2. 158 - text-metrics = doJailbreak super.text-metrics; 159 - 160 - # OneTuple needs hashable (instead of ghc-prim) and foldable1-classes-compat for GHC < 9 161 - OneTuple = addBuildDepends [ 162 - self.foldable1-classes-compat 163 - ] (super.OneTuple.override { 164 - ghc-prim = self.hashable; 165 - }); 166 - 167 - # Temporarily disabled blaze-textual for GHC >= 9.0 causing hackage2nix ignoring it 168 - # https://github.com/paul-rouse/mysql-simple/blob/872604f87044ff6d1a240d9819a16c2bdf4ed8f5/Database/MySQL/Internal/Blaze.hs#L4-L10 169 - mysql-simple = addBuildDepends [ 170 - self.blaze-textual 171 - ] super.mysql-simple; 172 - 173 - # https://github.com/fpco/inline-c/issues/127 (recommend to upgrade to Nixpkgs GHC >=9.0) 174 - inline-c-cpp = (if isDarwin then dontCheck else x: x) super.inline-c-cpp; 175 - 176 - # Depends on OneTuple for GHC < 9.0 177 - universe-base = addBuildDepends [ self.OneTuple ] super.universe-base; 178 - 179 - # doctest-parallel dependency requires newer Cabal 180 - regex-tdfa = dontCheck super.regex-tdfa; 181 - 182 - # Unnecessarily strict lower bound on base 183 - # https://github.com/mrkkrp/megaparsec/pull/485#issuecomment-1250051823 184 - megaparsec = doJailbreak super.megaparsec; 185 - 186 - # Needs OneTuple for ghc < 9.2 187 - binary-orphans = addBuildDepends [ self.OneTuple ] super.binary-orphans; 188 - 189 - # Later versions only support GHC >= 9.2 190 - ghc-exactprint = self.ghc-exactprint_0_6_4; 191 - apply-refact = self.apply-refact_0_9_3_0; 192 - 193 - # Requires GHC < 9.4 194 - ghc-source-gen = doDistribute (unmarkBroken super.ghc-source-gen); 195 - }
···
-20
pkgs/top-level/haskell-packages.nix
··· 80 llvmPackages = pkgs.llvmPackages_12; 81 }; 82 83 - ghc884 = callPackage ../development/compilers/ghc/8.8.4.nix { 84 - bootPkgs = 85 - # aarch64 ghc865Binary gets SEGVs due to haskell#15449 or similar 86 - # 8.10.2 is needed as using 8.10.7 is broken due to RTS-incompatibilities 87 - # Musl bindists do not exist for ghc 8.6.5, so we use 8.10.* for them 88 - if stdenv.hostPlatform.isAarch64 || stdenv.hostPlatform.isMusl then 89 - packages.ghc8102Binary 90 - else 91 - packages.ghc865Binary; 92 - inherit (buildPackages.python3Packages) sphinx; 93 - buildTargetLlvmPackages = pkgsBuildTarget.llvmPackages_7; 94 - llvmPackages = pkgs.llvmPackages_7; 95 - }; 96 - ghc88 = compiler.ghc884; 97 ghc8107 = callPackage ../development/compilers/ghc/8.10.7.nix { 98 bootPkgs = 99 # the oldest ghc with aarch64-darwin support is 8.10.5 ··· 484 compilerConfig = callPackage ../development/haskell-modules/configuration-ghc-9.2.x.nix { }; 485 packageSetConfig = bootstrapPackageSet; 486 }; 487 - ghc884 = callPackage ../development/haskell-modules { 488 - buildHaskellPackages = bh.packages.ghc884; 489 - ghc = bh.compiler.ghc884; 490 - compilerConfig = callPackage ../development/haskell-modules/configuration-ghc-8.8.x.nix { }; 491 - }; 492 - ghc88 = packages.ghc884; 493 ghc8107 = callPackage ../development/haskell-modules { 494 buildHaskellPackages = bh.packages.ghc8107; 495 ghc = bh.compiler.ghc8107;
··· 80 llvmPackages = pkgs.llvmPackages_12; 81 }; 82 83 ghc8107 = callPackage ../development/compilers/ghc/8.10.7.nix { 84 bootPkgs = 85 # the oldest ghc with aarch64-darwin support is 8.10.5 ··· 470 compilerConfig = callPackage ../development/haskell-modules/configuration-ghc-9.2.x.nix { }; 471 packageSetConfig = bootstrapPackageSet; 472 }; 473 ghc8107 = callPackage ../development/haskell-modules { 474 buildHaskellPackages = bh.packages.ghc8107; 475 ghc = bh.compiler.ghc8107;
-12
pkgs/top-level/release-haskell.nix
··· 60 61 # list of all compilers to test specific packages on 62 released = with compilerNames; [ 63 - ghc884 64 ghc8107 65 ghc902 66 ghc924 ··· 390 391 ghcjs = {}; 392 ghcjs810 = {}; 393 - 394 - # Can't be built with musl, see meta.broken comment in the drv 395 - integer-simple.ghc884 = {}; 396 - integer-simple.ghc88 = {}; 397 }; 398 399 # Get some cache going for MUSL-enabled GHC. ··· 501 ] released; 502 funcmp = released; 503 haskell-language-server = lib.subtractLists [ 504 - # Support ceased as of 1.9.0.0 505 - compilerNames.ghc884 506 # Support ceased as of 2.3.0.0 507 compilerNames.ghc8107 508 # Not yet supported ··· 534 compilerNames.ghc981 535 ] released; 536 ghc-api-compat = [ 537 - compilerNames.ghc884 538 compilerNames.ghc8107 539 compilerNames.ghc902 540 ]; 541 ghc-bignum = [ 542 - compilerNames.ghc884 543 compilerNames.ghc8107 544 ]; 545 ghc-lib = lib.subtractLists [ ··· 554 ghc-source-gen = [ 555 # Feel free to remove these as they break, 556 # ghc-source-gen currently doesn't support GHC 9.4 557 - compilerNames.ghc884 558 compilerNames.ghc8107 559 compilerNames.ghc902 560 compilerNames.ghc928 561 ]; 562 ghc-tags = lib.subtractLists [ 563 - compilerNames.ghc884 564 compilerNames.ghc981 565 ] released; 566 hashable = lib.subtractLists [ ··· 653 constituents = accumulateDerivations [ 654 jobs.pkgsMusl.haskell.compiler.ghc8102Binary 655 jobs.pkgsMusl.haskell.compiler.ghc8107Binary 656 - jobs.pkgsMusl.haskell.compiler.ghc884 657 jobs.pkgsMusl.haskell.compiler.ghc8107 658 jobs.pkgsMusl.haskell.compiler.ghc902 659 jobs.pkgsMusl.haskell.compiler.ghc924
··· 60 61 # list of all compilers to test specific packages on 62 released = with compilerNames; [ 63 ghc8107 64 ghc902 65 ghc924 ··· 389 390 ghcjs = {}; 391 ghcjs810 = {}; 392 }; 393 394 # Get some cache going for MUSL-enabled GHC. ··· 496 ] released; 497 funcmp = released; 498 haskell-language-server = lib.subtractLists [ 499 # Support ceased as of 2.3.0.0 500 compilerNames.ghc8107 501 # Not yet supported ··· 527 compilerNames.ghc981 528 ] released; 529 ghc-api-compat = [ 530 compilerNames.ghc8107 531 compilerNames.ghc902 532 ]; 533 ghc-bignum = [ 534 compilerNames.ghc8107 535 ]; 536 ghc-lib = lib.subtractLists [ ··· 545 ghc-source-gen = [ 546 # Feel free to remove these as they break, 547 # ghc-source-gen currently doesn't support GHC 9.4 548 compilerNames.ghc8107 549 compilerNames.ghc902 550 compilerNames.ghc928 551 ]; 552 ghc-tags = lib.subtractLists [ 553 compilerNames.ghc981 554 ] released; 555 hashable = lib.subtractLists [ ··· 642 constituents = accumulateDerivations [ 643 jobs.pkgsMusl.haskell.compiler.ghc8102Binary 644 jobs.pkgsMusl.haskell.compiler.ghc8107Binary 645 jobs.pkgsMusl.haskell.compiler.ghc8107 646 jobs.pkgsMusl.haskell.compiler.ghc902 647 jobs.pkgsMusl.haskell.compiler.ghc924