linux_6_1: 6.1.117 -> 6.1.118
[NixPkgs.git] / pkgs / development / haskell-modules / configuration-arm.nix
blob2f4e085855a44182131af0e8eefd6ce2ce07bb85
1 # ARM-SPECIFIC OVERRIDES FOR THE HASKELL PACKAGE SET IN NIXPKGS
3 # This extension is applied to all haskell package sets in nixpkgs if
4 # `stdenv.hostPlatform.isAarch` to apply arm specific workarounds or
5 # fixes.
7 # The file is split into three parts:
9 # * Overrides that are applied for all arm platforms
10 # * Overrides for aarch32 platforms
11 # * Overrides for aarch64 platforms
13 # This may be extended in the future to also include compiler-
14 # specific sections as compiler and linker related bugs may
15 # get fixed subsequently.
17 # When adding new overrides, try to research which section they
18 # belong into. Most likely we'll be favouring aarch64 overrides
19 # in practice since that is the only platform we can test on
20 # Hydra. Also take care to group overrides by the issue they
21 # solve, so refactors and updates to this file are less tedious.
22 { pkgs, haskellLib }:
24 let
25   inherit (pkgs) lib;
28 with haskellLib;
30 self: super: {
31   # COMMON ARM OVERRIDES
33   # moved here from configuration-common.nix, no reason given.
34   servant-docs = dontCheck super.servant-docs;
35   swagger2 = dontHaddock (dontCheck super.swagger2);
37   # Similar to https://ghc.haskell.org/trac/ghc/ticket/13062
38   happy = dontCheck super.happy;
39   happy_1_19_12 = doDistribute (dontCheck super.happy_1_19_12);
41   # add arm specific library
42   wiringPi = overrideCabal ({librarySystemDepends ? [], ...}: {
43     librarySystemDepends = librarySystemDepends ++ [pkgs.wiringpi];
44   }) super.wiringPi;
46 } // lib.optionalAttrs pkgs.stdenv.hostPlatform.isAarch64 {
47   # AARCH64-SPECIFIC OVERRIDES
49   # Corrupted store path https://github.com/NixOS/nixpkgs/pull/272097#issuecomment-1848414265
50   cachix = triggerRebuild 1 super.cachix;
52   # Doctests fail on aarch64 due to a GHCi linking bug
53   # https://gitlab.haskell.org/ghc/ghc/-/issues/15275#note_295437
54   # TODO: figure out if needed on aarch32 as well
55   BNFC = dontCheck super.BNFC;
56   C-structs = dontCheck super.C-structs;
57   Chart-tests = dontCheck super.Chart-tests;
58   Jikka = dontCheck super.Jikka;
59   accelerate = dontCheck super.accelerate;
60   ad = dontCheck super.ad;
61   autoapply = dontCheck super.autoapply;
62   construct = dontCheck super.construct;
63   exact-real = dontCheck super.exact-real;
64   flight-kml = dontCheck super.flight-kml;
65   focuslist = dontCheck super.focuslist;
66   grammatical-parsers = dontCheck super.grammatical-parsers;
67   greskell = dontCheck super.greskell;
68   groupBy = dontCheck super.groupBy;
69   haskell-time-range = dontCheck super.haskell-time-range;
70   headroom = dontCheck super.headroom;
71   hgeometry = dontCheck super.hgeometry;
72   hhp = dontCheck super.hhp;
73   hsakamai = dontCheck super.hsakamai;
74   hsemail-ns = dontCheck super.hsemail-ns;
75   html-validator-cli = dontCheck super.html-validator-cli;
76   hw-fingertree-strict = dontCheck super.hw-fingertree-strict;
77   hw-packed-vector = dontCheck super.hw-packed-vector;
78   hw-prim = dontCheck super.hw-prim;
79   hw-xml = dontCheck super.hw-xml;
80   language-nix = dontCheck super.language-nix;
81   lens-regex = dontCheck super.lens-regex;
82   meep = dontCheck super.meep;
83   openapi3 = dontCheck super.openapi3;
84   orbits = dontCheck super.orbits;
85   ranged-list = dontCheck super.ranged-list;
86   rank2classes = dontCheck super.rank2classes;
87   schedule = dontCheck super.schedule;
88   static = dontCheck super.static;
89   strict-writer = dontCheck super.strict-writer;
90   termonad = dontCheck super.termonad;
91   trifecta = dontCheck super.trifecta;
92   twiml = dontCheck super.twiml;
93   twitter-conduit = dontCheck super.twitter-conduit;
94   validationt = dontCheck super.validationt;
95   vgrep = dontCheck super.vgrep;
96   vinyl = dontCheck super.vinyl;
97   vulkan-utils = dontCheck super.vulkan-utils;
98   xml-html-qq = dontCheck super.xml-html-qq;
99   yaml-combinators = dontCheck super.yaml-combinators;
100   yesod-paginator = dontCheck super.yesod-paginator;
102   # https://github.com/ekmett/half/issues/35
103   half = dontCheck super.half;
105   # We disable profiling on aarch64, so tests naturally fail
106   ghc-prof = dontCheck super.ghc-prof;
108   # Similar RTS issue in test suite:
109   # rts/linker/elf_reloc_aarch64.c:98: encodeAddendAarch64: Assertion `isInt64(21+12, addend)' failed.
110   # These still fail sporadically on ghc 9.2
111 } // lib.optionalAttrs pkgs.stdenv.hostPlatform.isAarch32 {
112   # AARCH32-SPECIFIC OVERRIDES
114   # KAT/ECB/D2 test segfaults on armv7l
115   # https://github.com/haskell-crypto/cryptonite/issues/367
116   cryptonite = dontCheck super.cryptonite;