nixpkgs/pkgs/development/haskell-modules/configuration-ghc-9.6.x.nix
Silvan Mosberger 4f0dadbf38 treewide: format all inactive Nix files
After final improvements to the official formatter implementation,
this commit now performs the first treewide reformat of Nix files using it.
This is part of the implementation of RFC 166.

Only "inactive" files are reformatted, meaning only files that
aren't being touched by any PR with activity in the past 2 months.
This is to avoid conflicts for PRs that might soon be merged.
Later we can do a full treewide reformat to get the rest,
which should not cause as many conflicts.

A CI check has already been running for some time to ensure that new and
already-formatted files are formatted, so the files being reformatted here
should also stay formatted.

This commit was automatically created and can be verified using

    nix-build a08b3a4d19.tar.gz \
      --argstr baseRev b32a094368
    result/bin/apply-formatting $NIXPKGS_PATH
2024-12-10 20:26:33 +01:00

204 lines
6.3 KiB
Nix

{ pkgs, haskellLib }:
with haskellLib;
let
inherit (pkgs) lib;
jailbreakWhileRevision =
rev:
overrideCabal (old: {
jailbreak =
assert old.revision or "0" == toString rev;
true;
});
checkAgainAfter =
pkg: ver: msg: act:
if builtins.compareVersions pkg.version ver <= 0 then
act
else
builtins.throw "Check if '${msg}' was resolved in ${pkg.pname} ${pkg.version} and update or remove this";
jailbreakForCurrentVersion = p: v: checkAgainAfter p v "bad bounds" (doJailbreak p);
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;
filepath = null;
ghc-bignum = null;
ghc-boot = null;
ghc-boot-th = null;
ghc-compact = null;
ghc-heap = null;
ghc-prim = null;
ghci = null;
haskeline = null;
hpc = null;
integer-gmp = null;
libiserv = null;
mtl = null;
parsec = null;
pretty = null;
process = null;
rts = null;
stm = null;
system-cxx-std-lib = null;
template-haskell = null;
# terminfo is not built if GHC is a cross compiler
terminfo =
if pkgs.stdenv.hostPlatform == pkgs.stdenv.buildPlatform then
null
else
doDistribute self.terminfo_0_4_1_6;
text = null;
time = null;
transformers = null;
unix = null;
xhtml = null;
#
# Version deviations from Stackage LTS
#
# Too strict upper bound on template-haskell
# https://github.com/mokus0/th-extras/pull/21
th-extras = doJailbreak super.th-extras;
# not in Stackage, needs to match ghc-lib
ghc-tags = doDistribute self.ghc-tags_1_7;
#
# Too strict bounds without upstream fix
#
# Forbids transformers >= 0.6
quickcheck-classes-base = doJailbreak super.quickcheck-classes-base;
# https://github.com/Gabriella439/Haskell-Break-Library/pull/3
break = doJailbreak super.break;
# Forbids mtl >= 2.3
ChasingBottoms = doJailbreak super.ChasingBottoms;
# Forbids base >= 4.18
cabal-install-solver = doJailbreak super.cabal-install-solver;
cabal-install = doJailbreak super.cabal-install;
# Forbids base >= 4.18, fix proposed: https://github.com/sjakobi/newtype-generics/pull/25
newtype-generics = jailbreakForCurrentVersion super.newtype-generics "0.6.2";
# Jailbreaks for servant <0.20
servant-lucid = doJailbreak super.servant-lucid;
lifted-base = dontCheck super.lifted-base;
hw-prim = dontCheck (doJailbreak super.hw-prim);
stm-containers = dontCheck super.stm-containers;
regex-tdfa = dontCheck super.regex-tdfa;
hiedb = dontCheck super.hiedb;
retrie = dontCheck super.retrie;
# https://github.com/kowainik/relude/issues/436
relude = dontCheck (doJailbreak super.relude);
inherit (pkgs.lib.mapAttrs (_: doJailbreak) super)
ghc-trace-events
gi-cairo-connector # mtl <2.3
ghc-prof # base <4.18
env-guard # doctest <0.21
package-version # doctest <0.21, tasty-hedgehog <1.4
;
# Pending text-2.0 support https://github.com/gtk2hs/gtk2hs/issues/327
gtk = doJailbreak super.gtk;
# 2023-12-23: It needs this to build under ghc-9.6.3.
# A factor of 100 is insufficent, 200 seems seems to work.
hip = appendConfigureFlag "--ghc-options=-fsimpl-tick-factor=200" super.hip;
# Doctest comments have bogus imports.
bsb-http-chunked = dontCheck super.bsb-http-chunked;
# This can be removed once https://github.com/typeclasses/ascii-predicates/pull/1
# is merged and in a release that's being tracked.
ascii-predicates = appendPatch (pkgs.fetchpatch {
url = "https://github.com/typeclasses/ascii-predicates/commit/2e6d9ed45987a8566f3a77eedf7836055c076d1a.patch";
name = "ascii-predicates-pull-1.patch";
relative = "ascii-predicates";
sha256 = "sha256-4JguQFZNRQpjZThLrAo13jNeypvLfqFp6o7c1bnkmZo=";
}) super.ascii-predicates;
# This can be removed once https://github.com/typeclasses/ascii-numbers/pull/1
# is merged and in a release that's being tracked.
ascii-numbers = appendPatch (pkgs.fetchpatch {
url = "https://github.com/typeclasses/ascii-numbers/commit/e9474ad91bc997891f1a46afd5d0bdf9b9f7d768.patch";
name = "ascii-numbers-pull-1.patch";
relative = "ascii-numbers";
sha256 = "sha256-buw1UeW57CFefEfqdDUraSyQ+H/NvCZOv6WF2ORiYQg=";
}) super.ascii-numbers;
# Apply patch from PR with mtl-2.3 fix.
ConfigFile = overrideCabal (drv: {
editedCabalFile = null;
buildDepends = drv.buildDepends or [ ] ++ [ self.HUnit ];
patches = [
(pkgs.fetchpatch {
# https://github.com/jgoerzen/configfile/pull/12
name = "ConfigFile-pr-12.patch";
url = "https://github.com/jgoerzen/configfile/compare/d0a2e654be0b73eadbf2a50661d00574ad7b6f87...83ee30b43f74d2b6781269072cf5ed0f0e00012f.patch";
sha256 = "sha256-b7u9GiIAd2xpOrM0MfILHNb6Nt7070lNRIadn2l3DfQ=";
})
];
}) super.ConfigFile;
# Compatibility with core libs of GHC 9.6
# Jailbreak to lift bound on time
kqueue = doJailbreak (
appendPatches [
(pkgs.fetchpatch {
name = "kqueue-ghc-9.6.patch";
url = "https://github.com/hesselink/kqueue/pull/10/commits/a2735e807d761410e776482ec04515d9cf76a7f5.patch";
sha256 = "18rilz4nrwcmlvll3acjx2lp7s129pviggb8fy3hdb0z34ls5j84";
excludes = [ ".gitignore" ];
})
] super.kqueue
);
# This runs into the following GHC bug currently affecting 9.6.* and 9.8.* as
# well as 9.10.1: https://gitlab.haskell.org/ghc/ghc/-/issues/24432
inherit
(lib.mapAttrs (
_:
overrideCabal (drv: {
badPlatforms = drv.badPlatforms or [ ] ++ [ "aarch64-linux" ];
})
) super)
mueval
lambdabot
lambdabot-haskell-plugins
;
singletons-base = dontCheck super.singletons-base;
}
# super.ghc is required to break infinite recursion as Nix is strict in the attrNames
//
lib.optionalAttrs (pkgs.stdenv.hostPlatform.isAarch64 && lib.versionOlder super.ghc.version "9.6.4")
{
# The NCG backend for aarch64 generates invalid jumps in some situations,
# the workaround on 9.6 is to revert to the LLVM backend (which is used
# for these sorts of situations even on 9.2 and 9.4).
# https://gitlab.haskell.org/ghc/ghc/-/issues/23746#note_525318
inherit (lib.mapAttrs (_: self.forceLlvmCodegenBackend) super)
tls
mmark
;
}