haskell.compiler.ghcjs: remove at 8.10.7 (#422342)

authored by

sternenseemann and committed by
GitHub
62a276d4 6cd29a47

+62 -1549
+10
doc/release-notes/rl-2511.section.md
··· 46 47 - `conduwuit` was removed due to upstream ceasing development and deleting their repository. For existing data, a migration to `matrix-conduit`, `matrix-continuwuity` or `matrix-tuwunel` may be possible. 48 49 - `gnome-keyring` no longer ships with an SSH agent anymore because it has been deprecated upstream. You should use `gcr_4` instead, which provides the same features. More information on why this was done can be found on [the relevant GCR upstream PR](https://gitlab.gnome.org/GNOME/gcr/-/merge_requests/67). 50 51 - `stdenv.mkDerivation` and other derivation builders that use it no longer allow the value of `env` to be anything but an attribute set, for the purpose of setting environment variables that are available to the [builder](https://nix.dev/manual/nix/latest/store/derivation/#builder) process. An environment variable called `env` can still be provided by means of `mkDerivation { env.env = ...; }`, though we recommend to use a more specific name than "env".
··· 46 47 - `conduwuit` was removed due to upstream ceasing development and deleting their repository. For existing data, a migration to `matrix-conduit`, `matrix-continuwuity` or `matrix-tuwunel` may be possible. 48 49 + - The GHCJS 8.10.7, exposed via `haskell.compiler.ghcjs` and `haskell.compiler.ghcjs810`, has been removed. Downstream users should migrate their projects to the new JavaScript backend of GHC proper which can be used via `pkgsCross.ghcjs` from Nixpkgs. Haskell packaging code, like `haskellPackages.mkDerivation`, `ghcWithPackages` and `hoogleWithPackages`, also no longer supports GHCJS. 50 + 51 + - The `ghcInfo` and `controlPhases` functions have been removed from `haskell.lib.compose` and `haskell.lib`. They were unused and would return incorrect results. 52 + 53 + - Instead of using `controlPhases`, the `doCheck` attribute of derivations can be accessed which is more accurate. `doBenchmark` can't be introspected at the moment. 54 + - To detect cross compilation, the relevant platforms exposed by `stdenv` should be compared instead of using `ghcInfo`. 55 + - Nixpkgs no longer packages any `ghcjs` compiler. 56 + - To find a suitable `nativeGhc`, `buildHaskellPackages` should be used. `ghcInfo` would use `ghc.bootPkgs.ghc` if cross compiling, 57 + and the given `ghc` otherwise. This approach is not recommended since it results in mismatched GHC versions. 58 + 59 - `gnome-keyring` no longer ships with an SSH agent anymore because it has been deprecated upstream. You should use `gcr_4` instead, which provides the same features. More information on why this was done can be found on [the relevant GCR upstream PR](https://gitlab.gnome.org/GNOME/gcr/-/merge_requests/67). 60 61 - `stdenv.mkDerivation` and other derivation builders that use it no longer allow the value of `env` to be anything but an attribute set, for the purpose of setting environment variables that are available to the [builder](https://nix.dev/manual/nix/latest/store/derivation/#builder) process. An environment variable called `env` can still be provided by means of `mkDerivation { env.env = ...; }`, though we recommend to use a more specific name than "env".
-42
pkgs/development/compilers/ghcjs/8.10/common-overrides.nix
··· 1 - { 2 - haskellLib, 3 - fetchpatch, 4 - buildPackages, 5 - }: 6 - 7 - let 8 - inherit (haskellLib) 9 - addBuildTools 10 - appendConfigureFlag 11 - dontHaddock 12 - doJailbreak 13 - markUnbroken 14 - overrideCabal 15 - ; 16 - in 17 - self: super: { 18 - ghcjs = 19 - overrideCabal 20 - (drv: { 21 - # Jailbreak and patch can be dropped after https://github.com/ghcjs/ghcjs/pull/833 22 - jailbreak = true; 23 - patches = drv.patches or [ ] ++ [ 24 - (fetchpatch { 25 - name = "ghcjs-aeson-2.0.patch"; 26 - url = "https://github.com/ghcjs/ghcjs/commit/9ef1f92d740e8503d15d91699f57db147f0474cc.patch"; 27 - sha256 = "0cgxcy6b5870bv4kj54n3bzcqinh4gl4w4r78dg43h2mblhkzbnj"; 28 - }) 29 - ]; 30 - }) 31 - ( 32 - super.ghcjs.overrideScope ( 33 - self: super: { 34 - # Allow transformers-compat >= 0.7 35 - optparse-applicative = doJailbreak self.optparse-applicative_0_15_1_0; 36 - ansi-wl-pprint = self.ansi-wl-pprint_0_6_9; 37 - ansi-terminal = self.ansi-terminal_1_0_2; 38 - ansi-terminal-types = self.ansi-terminal-types_0_11_5; 39 - } 40 - ) 41 - ); 42 - }
···
-70
pkgs/development/compilers/ghcjs/8.10/configured-ghcjs-src.nix
··· 1 - { 2 - perl, 3 - autoconf, 4 - automake, 5 - python3, 6 - gcc, 7 - cabal-install, 8 - runCommand, 9 - fetchpatch, 10 - 11 - ghc, 12 - happy, 13 - alex, 14 - 15 - ghcjsSrc, 16 - version, 17 - }: 18 - 19 - runCommand "configured-ghcjs-src" 20 - { 21 - nativeBuildInputs = [ 22 - perl 23 - autoconf 24 - automake 25 - python3 26 - ghc 27 - happy 28 - alex 29 - cabal-install 30 - gcc 31 - ]; 32 - 33 - inherit ghcjsSrc; 34 - 35 - ctimePatch = fetchpatch { 36 - name = "ghcjs-base-ctime-64-bit.patch"; 37 - url = "https://github.com/ghcjs/ghcjs/commit/b7711fbca7c3f43a61f1dba526e6f2a2656ef44c.patch"; 38 - hash = "sha256-zZ3l8/5gbIGtvu0s2Xl92fEDhkhJ2c2w+5Ql5qkvr3s="; 39 - }; 40 - } 41 - '' 42 - export HOME=$(pwd) 43 - mkdir $HOME/.cabal 44 - touch $HOME/.cabal/config 45 - cp -r "$ghcjsSrc" "$out" 46 - chmod -R +w "$out" 47 - cd "$out" 48 - 49 - patch -p1 -i "$ctimePatch" 50 - 51 - # TODO: Find a better way to avoid impure version numbers 52 - sed -i 's/RELEASE=NO/RELEASE=YES/' ghc/configure.ac 53 - 54 - # These files are needed by ghc-boot package, and these are generated by the 55 - # make/hadrian build system when compiling ghc. Since we dont have access to 56 - # the generated code of the ghc while it got built, here is a little hack to 57 - # generate these again. 58 - runhaskell ${./generate_host_version.hs} 59 - mkdir -p utils/pkg-cache/ghc/libraries/ghc-boot/dist-install/build/GHC/Platform 60 - mv Host.hs utils/pkg-cache/ghc/libraries/ghc-boot/dist-install/build/GHC/Platform/Host.hs 61 - mv Version.hs utils/pkg-cache/ghc/libraries/ghc-boot/dist-install/build/GHC/Version.hs 62 - 63 - # The ghcjs has the following hardcoded paths of lib dir in its code. Patching 64 - # these to match the path expected by the nixpkgs's generic-builder, etc. 65 - sed -i 's/libSubDir = "lib"/libSubDir = "lib\/ghcjs-${version}"/' src-bin/Boot.hs 66 - sed -i 's@let libDir = takeDirectory haddockPath </> ".." </> "lib"@let libDir = takeDirectory haddockPath </> ".." </> "lib/ghcjs-${version}"@' src-bin/HaddockDriver.hs 67 - 68 - patchShebangs . 69 - ./utils/makePackages.sh copy 70 - ''
···
-144
pkgs/development/compilers/ghcjs/8.10/default.nix
··· 1 - { 2 - stdenv, 3 - pkgsHostHost, 4 - callPackage, 5 - fetchgit, 6 - fetchpatch, 7 - ghcjsSrcJson ? null, 8 - ghcjsSrc ? fetchgit (lib.importJSON ghcjsSrcJson), 9 - bootPkgs, 10 - stage0, 11 - haskellLib, 12 - cabal-install, 13 - nodejs, 14 - makeWrapper, 15 - xorg, 16 - gmp, 17 - pkg-config, 18 - gcc, 19 - lib, 20 - ghcjsDepOverrides ? (_: _: { }), 21 - linkFarm, 22 - buildPackages, 23 - }: 24 - 25 - let 26 - passthru = { 27 - configuredSrc = callPackage ./configured-ghcjs-src.nix { 28 - inherit ghcjsSrc; 29 - inherit (bootPkgs) ghc alex; 30 - inherit (bootGhcjs) version; 31 - happy = bootPkgs.happy_1_19_12; 32 - }; 33 - bootPkgs = bootPkgs.extend ( 34 - lib.foldr lib.composeExtensions (_: _: { }) [ 35 - ( 36 - self: _: 37 - import stage0 { 38 - inherit (passthru) configuredSrc; 39 - inherit (self) callPackage; 40 - } 41 - ) 42 - 43 - (callPackage ./common-overrides.nix { 44 - inherit haskellLib fetchpatch buildPackages; 45 - }) 46 - ghcjsDepOverrides 47 - ] 48 - ); 49 - 50 - targetPrefix = ""; 51 - inherit bootGhcjs; 52 - inherit (bootGhcjs) version; 53 - isGhcjs = true; 54 - 55 - llvmPackages = null; 56 - enableShared = true; 57 - 58 - socket-io = pkgsHostHost.nodePackages."socket.io"; 59 - 60 - haskellCompilerName = "ghcjs-${bootGhcjs.version}"; 61 - }; 62 - 63 - bootGhcjs = haskellLib.justStaticExecutables passthru.bootPkgs.ghcjs; 64 - 65 - # This provides the stuff we need from the emsdk 66 - emsdk = linkFarm "emsdk" [ 67 - { 68 - name = "upstream/bin"; 69 - path = buildPackages.clang + "/bin"; 70 - } 71 - { 72 - name = "upstream/emscripten"; 73 - path = buildPackages.emscripten + "/bin"; 74 - } 75 - ]; 76 - 77 - in 78 - stdenv.mkDerivation { 79 - name = bootGhcjs.name; 80 - src = passthru.configuredSrc; 81 - nativeBuildInputs = [ 82 - bootGhcjs 83 - passthru.bootPkgs.ghc 84 - cabal-install 85 - nodejs 86 - makeWrapper 87 - xorg.lndir 88 - gmp 89 - pkg-config 90 - ] 91 - ++ lib.optionals stdenv.hostPlatform.isDarwin [ 92 - gcc # https://github.com/ghcjs/ghcjs/issues/663 93 - ]; 94 - dontConfigure = true; 95 - dontInstall = true; 96 - 97 - # Newer versions of `config.sub` reject the `js-ghcjs` host string, but the 98 - # older `config.sub` filed vendored within `ghc` still works 99 - dontUpdateAutotoolsGnuConfigScripts = true; 100 - 101 - buildPhase = '' 102 - export HOME=$TMP 103 - mkdir $HOME/.cabal 104 - touch $HOME/.cabal/config 105 - cd lib/boot 106 - 107 - export EM_CACHE="$HOME/.emscriptencache" 108 - mkdir -p "$EM_CACHE" 109 - 110 - mkdir -p $out/bin 111 - mkdir -p $out/lib/${bootGhcjs.name} 112 - lndir ${bootGhcjs}/bin $out/bin 113 - chmod -R +w $out/bin 114 - rm $out/bin/ghcjs-boot 115 - cp ${bootGhcjs}/bin/ghcjs-boot $out/bin 116 - rm $out/bin/haddock 117 - cp ${bootGhcjs}/bin/haddock $out/bin 118 - cp ${bootGhcjs}/bin/private-ghcjs-hsc2hs $out/bin/ghcjs-hsc2hs 119 - 120 - wrapProgram $out/bin/ghcjs-boot --set ghcjs_libexecdir $out/bin 121 - 122 - wrapProgram $out/bin/ghcjs --add-flags "-B$out/lib/${bootGhcjs.name}" 123 - wrapProgram $out/bin/haddock --add-flags "-B$out/lib/${bootGhcjs.name}" 124 - wrapProgram $out/bin/ghcjs-pkg --add-flags "--global-package-db=$out/lib/${bootGhcjs.name}/package.conf.d" 125 - wrapProgram $out/bin/ghcjs-hsc2hs --add-flags "-I$out/lib/${bootGhcjs.name}/include --template=$out/lib/${bootGhcjs.name}/include/template-hsc.h" 126 - 127 - env PATH=$out/bin:$PATH $out/bin/ghcjs-boot --with-emsdk=${emsdk} --no-haddock 128 - ''; 129 - 130 - enableParallelBuilding = true; 131 - 132 - inherit passthru; 133 - 134 - meta = { 135 - platforms = with lib.platforms; linux ++ darwin; 136 - 137 - # Hydra limits jobs to only outputting 1 gigabyte worth of files. 138 - # GHCJS outputs over 3 gigabytes. 139 - # https://github.com/NixOS/nixpkgs/pull/137066#issuecomment-922335563 140 - hydraPlatforms = lib.platforms.none; 141 - 142 - maintainers = with lib.maintainers; [ obsidian-systems-maintenance ]; 143 - }; 144 - }
···
-54
pkgs/development/compilers/ghcjs/8.10/generate_host_version.hs
··· 1 - -- Generate the Host.hs and Version.hs as done by hadrian/src/Rules/Generate.hs 2 - 3 - import GHC.Platform.Host 4 - import GHC.Version 5 - 6 - main = do 7 - writeFile "Version.hs" versionHs 8 - writeFile "Host.hs" platformHostHs 9 - 10 - -- | Generate @Version.hs@ files. 11 - versionHs :: String 12 - versionHs = unlines 13 - [ "module GHC.Version where" 14 - , "" 15 - , "import Prelude -- See Note [Why do we import Prelude here?]" 16 - , "" 17 - , "cProjectGitCommitId :: String" 18 - , "cProjectGitCommitId = " ++ show cProjectGitCommitId 19 - , "" 20 - , "cProjectVersion :: String" 21 - , "cProjectVersion = " ++ show cProjectVersion 22 - , "" 23 - , "cProjectVersionInt :: String" 24 - , "cProjectVersionInt = " ++ show cProjectVersionInt 25 - , "" 26 - , "cProjectPatchLevel :: String" 27 - , "cProjectPatchLevel = " ++ show cProjectPatchLevel 28 - , "" 29 - , "cProjectPatchLevel1 :: String" 30 - , "cProjectPatchLevel1 = " ++ show cProjectPatchLevel1 31 - , "" 32 - , "cProjectPatchLevel2 :: String" 33 - , "cProjectPatchLevel2 = " ++ show cProjectPatchLevel2 34 - ] 35 - 36 - -- | Generate @Platform/Host.hs@ files. 37 - platformHostHs :: String 38 - platformHostHs = unlines 39 - [ "module GHC.Platform.Host where" 40 - , "" 41 - , "import GHC.Platform" 42 - , "" 43 - , "cHostPlatformArch :: Arch" 44 - , "cHostPlatformArch = " ++ show cHostPlatformArch 45 - , "" 46 - , "cHostPlatformOS :: OS" 47 - , "cHostPlatformOS = " ++ show cHostPlatformOS 48 - , "" 49 - , "cHostPlatformMini :: PlatformMini" 50 - , "cHostPlatformMini = PlatformMini" 51 - , " { platformMini_arch = cHostPlatformArch" 52 - , " , platformMini_os = cHostPlatformOS" 53 - , " }" 54 - ]
···
-6
pkgs/development/compilers/ghcjs/8.10/git.json
··· 1 - { 2 - "url": "https://github.com/obsidiansystems/ghcjs", 3 - "rev": "9fc935f2c3ba6c33ec62eb83afc9f52a893eb68c", 4 - "sha256": "sha256:063dmir39c4i1z8ypnmq86g1x2vhqndmdpzc4hyzsy5jjqcbx6i3", 5 - "fetchSubmodules": true 6 - }
···
-245
pkgs/development/compilers/ghcjs/8.10/stage0.nix
··· 1 - { callPackage, configuredSrc }: 2 - 3 - { 4 - 5 - ghcjs = callPackage ( 6 - { 7 - mkDerivation, 8 - aeson, 9 - alex, 10 - array, 11 - attoparsec, 12 - base, 13 - base16-bytestring, 14 - base64-bytestring, 15 - binary, 16 - bytestring, 17 - Cabal, 18 - containers, 19 - cryptohash, 20 - data-default, 21 - deepseq, 22 - directory, 23 - executable-path, 24 - filepath, 25 - ghc-boot, 26 - ghc-boot-th, 27 - ghc-compact, 28 - ghc-heap, 29 - ghc-paths, 30 - ghci, 31 - happy, 32 - hashable, 33 - hpc, 34 - http-types, 35 - HUnit, 36 - lens, 37 - lib, 38 - lifted-base, 39 - mtl, 40 - network, 41 - optparse-applicative, 42 - parallel, 43 - parsec, 44 - process, 45 - random, 46 - safe, 47 - shelly, 48 - split, 49 - stringsearch, 50 - syb, 51 - tar, 52 - template-haskell, 53 - terminfo, 54 - test-framework, 55 - test-framework-hunit, 56 - text, 57 - time, 58 - transformers, 59 - unix, 60 - unix-compat, 61 - unordered-containers, 62 - vector, 63 - wai, 64 - wai-app-static, 65 - wai-extra, 66 - wai-websockets, 67 - warp, 68 - webdriver, 69 - websockets, 70 - wl-pprint-text, 71 - xhtml, 72 - yaml, 73 - }: 74 - mkDerivation { 75 - pname = "ghcjs"; 76 - version = "8.10.7"; 77 - src = configuredSrc + /.; 78 - isLibrary = true; 79 - isExecutable = true; 80 - libraryHaskellDepends = [ 81 - aeson 82 - array 83 - attoparsec 84 - base 85 - base16-bytestring 86 - base64-bytestring 87 - binary 88 - bytestring 89 - Cabal 90 - containers 91 - cryptohash 92 - data-default 93 - deepseq 94 - directory 95 - filepath 96 - ghc-boot 97 - ghc-boot-th 98 - ghc-compact 99 - ghc-heap 100 - ghc-paths 101 - ghci 102 - hashable 103 - hpc 104 - lens 105 - mtl 106 - optparse-applicative 107 - parallel 108 - parsec 109 - process 110 - safe 111 - split 112 - stringsearch 113 - syb 114 - template-haskell 115 - terminfo 116 - text 117 - time 118 - transformers 119 - unix 120 - unordered-containers 121 - vector 122 - wl-pprint-text 123 - yaml 124 - ]; 125 - libraryToolDepends = [ 126 - alex 127 - happy 128 - ]; 129 - executableHaskellDepends = [ 130 - aeson 131 - array 132 - base 133 - binary 134 - bytestring 135 - Cabal 136 - containers 137 - deepseq 138 - directory 139 - executable-path 140 - filepath 141 - ghc-boot 142 - lens 143 - mtl 144 - optparse-applicative 145 - parsec 146 - process 147 - tar 148 - terminfo 149 - text 150 - time 151 - transformers 152 - unix 153 - unix-compat 154 - unordered-containers 155 - vector 156 - xhtml 157 - yaml 158 - ]; 159 - testHaskellDepends = [ 160 - aeson 161 - base 162 - bytestring 163 - data-default 164 - deepseq 165 - directory 166 - filepath 167 - http-types 168 - HUnit 169 - lens 170 - lifted-base 171 - network 172 - optparse-applicative 173 - process 174 - random 175 - shelly 176 - test-framework 177 - test-framework-hunit 178 - text 179 - time 180 - transformers 181 - unordered-containers 182 - wai 183 - wai-app-static 184 - wai-extra 185 - wai-websockets 186 - warp 187 - webdriver 188 - websockets 189 - yaml 190 - ]; 191 - description = "Haskell to JavaScript compiler"; 192 - license = lib.licenses.mit; 193 - } 194 - ) { }; 195 - 196 - ghcjs-th = callPackage ( 197 - { 198 - mkDerivation, 199 - base, 200 - binary, 201 - bytestring, 202 - containers, 203 - ghc-prim, 204 - ghci, 205 - lib, 206 - template-haskell, 207 - }: 208 - mkDerivation { 209 - pname = "ghcjs-th"; 210 - version = "0.1.0.0"; 211 - src = configuredSrc + /lib/ghcjs-th; 212 - libraryHaskellDepends = [ 213 - base 214 - binary 215 - bytestring 216 - containers 217 - ghc-prim 218 - ghci 219 - template-haskell 220 - ]; 221 - homepage = "https://github.com/ghcjs"; 222 - license = lib.licenses.mit; 223 - } 224 - ) { }; 225 - 226 - ghcjs-prim = callPackage ( 227 - { 228 - mkDerivation, 229 - base, 230 - ghc-prim, 231 - lib, 232 - }: 233 - mkDerivation { 234 - pname = "ghcjs-prim"; 235 - version = "0.1.1.0"; 236 - src = ./.; 237 - libraryHaskellDepends = [ 238 - base 239 - ghc-prim 240 - ]; 241 - homepage = "https://github.com/ghcjs"; 242 - license = lib.licenses.mit; 243 - } 244 - ) { }; 245 - }
···
-87
pkgs/development/compilers/ghcjs/ghcjs-base.nix
··· 1 - { 2 - mkDerivation, 3 - aeson, 4 - array, 5 - attoparsec, 6 - base, 7 - binary, 8 - bytestring, 9 - containers, 10 - deepseq, 11 - directory, 12 - dlist, 13 - fetchFromGitHub, 14 - ghc-prim, 15 - ghcjs-prim, 16 - hashable, 17 - HUnit, 18 - integer-gmp, 19 - primitive, 20 - QuickCheck, 21 - quickcheck-unicode, 22 - random, 23 - scientific, 24 - test-framework, 25 - test-framework-hunit, 26 - test-framework-quickcheck2, 27 - text, 28 - time, 29 - transformers, 30 - unordered-containers, 31 - vector, 32 - lib, 33 - }: 34 - mkDerivation { 35 - pname = "ghcjs-base"; 36 - version = "0.2.1.0"; 37 - # This is the release 0.2.1.0, but the hackage release misses test source files, 38 - # so lets use github https://github.com/ghcjs/ghcjs-base/issues/132 39 - src = fetchFromGitHub { 40 - owner = "ghcjs"; 41 - repo = "ghcjs-base"; 42 - rev = "fbaae59b05b020e91783df122249095e168df53f"; 43 - sha256 = "sha256-x6eCAK1Hne0QkV3Loi9YpxbleNHU593E4AO8cbk2vUc="; 44 - }; 45 - libraryHaskellDepends = [ 46 - aeson 47 - attoparsec 48 - base 49 - binary 50 - bytestring 51 - containers 52 - deepseq 53 - dlist 54 - ghc-prim 55 - ghcjs-prim 56 - hashable 57 - integer-gmp 58 - primitive 59 - scientific 60 - text 61 - time 62 - transformers 63 - unordered-containers 64 - vector 65 - ]; 66 - testHaskellDepends = [ 67 - array 68 - base 69 - bytestring 70 - deepseq 71 - directory 72 - ghc-prim 73 - ghcjs-prim 74 - HUnit 75 - primitive 76 - QuickCheck 77 - quickcheck-unicode 78 - random 79 - test-framework 80 - test-framework-hunit 81 - test-framework-quickcheck2 82 - text 83 - ]; 84 - homepage = "https://github.com/ghcjs/ghcjs-base"; 85 - description = "base library for GHCJS"; 86 - license = lib.licenses.mit; 87 - }
···
-1
pkgs/development/haskell-modules/configuration-arm.nix
··· 37 38 # Similar to https://ghc.haskell.org/trac/ghc/ticket/13062 39 happy = dontCheck super.happy; 40 - happy_1_19_12 = doDistribute (dontCheck super.happy_1_19_12); 41 42 # add arm specific library 43 wiringPi = overrideCabal (
··· 37 38 # Similar to https://ghc.haskell.org/trac/ghc/ticket/13062 39 happy = dontCheck super.happy; 40 41 # add arm specific library 42 wiringPi = overrideCabal (
-10
pkgs/development/haskell-modules/configuration-common.nix
··· 1831 # https://github.com/biocad/servant-openapi3/issues/30 1832 servant-openapi3 = dontCheck super.servant-openapi3; 1833 1834 - # Point hspec 2.7.10 to correct dependencies 1835 - hspec_2_7_10 = super.hspec_2_7_10.override { 1836 - hspec-discover = self.hspec-discover_2_7_10; 1837 - hspec-core = self.hspec-core_2_7_10; 1838 - }; 1839 - hspec-discover_2_7_10 = super.hspec-discover_2_7_10.override { 1840 - hspec-meta = self.hspec-meta_2_7_8; 1841 - }; 1842 - hspec-core_2_7_10 = doJailbreak (dontCheck super.hspec-core_2_7_10); 1843 - 1844 # Disable test cases that were broken by insignificant changes in icu 76 1845 # https://github.com/haskell/text-icu/issues/108 1846 text-icu = overrideCabal (drv: {
··· 1831 # https://github.com/biocad/servant-openapi3/issues/30 1832 servant-openapi3 = dontCheck super.servant-openapi3; 1833 1834 # Disable test cases that were broken by insignificant changes in icu 76 1835 # https://github.com/haskell/text-icu/issues/108 1836 text-icu = overrideCabal (drv: {
+1 -4
pkgs/development/haskell-modules/configuration-ghc-8.10.x.nix
··· 8 in 9 10 self: super: { 11 - 12 - # ghcjs does not use `llvmPackages` and exposes `null` attribute. 13 - llvmPackages = 14 - if self.ghc.llvmPackages != null then pkgs.lib.dontRecurseIntoAttrs self.ghc.llvmPackages else null; 15 16 # Disable GHC 8.10.x core libraries. 17 array = null;
··· 8 in 9 10 self: super: { 11 + llvmPackages = pkgs.lib.dontRecurseIntoAttrs self.ghc.llvmPackages; 12 13 # Disable GHC 8.10.x core libraries. 14 array = null;
-154
pkgs/development/haskell-modules/configuration-ghcjs-8.x.nix
··· 1 - # GHCJS package fixes 2 - # 3 - # Please insert new packages *alphabetically* 4 - # in the OTHER PACKAGES section. 5 - { pkgs, haskellLib }: 6 - 7 - let 8 - removeLibraryHaskellDepends = 9 - pnames: depends: builtins.filter (e: !(builtins.elem (e.pname or "") pnames)) depends; 10 - in 11 - 12 - with haskellLib; 13 - 14 - self: super: 15 - 16 - ## GENERAL SETUP BASE PACKAGES 17 - { 18 - inherit (self.ghc.bootPkgs) 19 - jailbreak-cabal 20 - alex 21 - happy 22 - gtk2hs-buildtools 23 - rehoo 24 - hoogle 25 - ; 26 - 27 - # Test suite fails; https://github.com/ghcjs/ghcjs-base/issues/133 28 - ghcjs-base = dontCheck ( 29 - self.callPackage ../compilers/ghcjs/ghcjs-base.nix { 30 - fetchFromGitHub = pkgs.buildPackages.fetchFromGitHub; 31 - aeson = self.aeson_1_5_6_0; 32 - } 33 - ); 34 - 35 - # Included in ghcjs itself 36 - ghcjs-prim = null; 37 - 38 - ghcjs-websockets = markUnbroken super.ghcjs-websockets; 39 - 40 - # GHCJS does not ship with the same core packages as GHC. 41 - # https://github.com/ghcjs/ghcjs/issues/676 42 - stm = doJailbreak self.stm_2_5_3_1; 43 - exceptions = dontCheck self.exceptions_0_10_10; 44 - 45 - ## OTHER PACKAGES 46 - 47 - # Runtime exception in tests, missing C API h$realloc 48 - base-compat-batteries = dontCheck super.base-compat-batteries; 49 - 50 - # nodejs crashes during test 51 - ChasingBottoms = dontCheck super.ChasingBottoms; 52 - 53 - # runs forever 54 - text-short = dontCheck super.text-short; 55 - 56 - # doctest doesn't work on ghcjs, but sometimes dontCheck doesn't seem to get rid of the dependency 57 - doctest = pkgs.lib.warn "ignoring dependency on doctest" null; 58 - 59 - ghcjs-dom = overrideCabal (drv: { 60 - libraryHaskellDepends = with self; [ 61 - ghcjs-base 62 - ghcjs-dom-jsffi 63 - text 64 - transformers 65 - ]; 66 - configureFlags = [ 67 - "-fjsffi" 68 - "-f-webkit" 69 - ]; 70 - }) super.ghcjs-dom; 71 - 72 - ghcjs-dom-jsffi = overrideCabal (drv: { 73 - libraryHaskellDepends = (drv.libraryHaskellDepends or [ ]) ++ [ 74 - self.ghcjs-base 75 - self.text 76 - ]; 77 - broken = false; 78 - }) super.ghcjs-dom-jsffi; 79 - 80 - # https://github.com/Deewiant/glob/issues/39 81 - Glob = dontCheck super.Glob; 82 - 83 - # Test fails to compile during the hsc2hs stage 84 - hashable = dontCheck super.hashable; 85 - 86 - # uses doctest 87 - http-types = dontCheck super.http-types; 88 - 89 - jsaddle = overrideCabal (drv: { 90 - libraryHaskellDepends = (drv.libraryHaskellDepends or [ ]) ++ [ self.ghcjs-base ]; 91 - }) super.jsaddle; 92 - 93 - # Tests hang, possibly some issue with tasty and race(async) usage in the nonTerminating tests 94 - logict = dontCheck super.logict; 95 - 96 - patch = dontCheck super.patch; 97 - 98 - # TODO: tests hang 99 - pcre-light = dontCheck super.pcre-light; 100 - 101 - # Terminal test not supported on ghcjs 102 - QuickCheck = dontCheck super.QuickCheck; 103 - 104 - reflex = overrideCabal (drv: { 105 - libraryHaskellDepends = (drv.libraryHaskellDepends or [ ]) ++ [ self.ghcjs-base ]; 106 - }) super.reflex; 107 - 108 - reflex-dom = overrideCabal (drv: { 109 - libraryHaskellDepends = removeLibraryHaskellDepends [ "jsaddle-webkit2gtk" ] ( 110 - drv.libraryHaskellDepends or [ ] 111 - ); 112 - }) super.reflex-dom; 113 - 114 - # https://github.com/dreixel/syb/issues/21 115 - syb = dontCheck super.syb; 116 - 117 - # nodejs crashes during test 118 - scientific = dontCheck super.scientific; 119 - 120 - # Tests use TH which gives error 121 - tasty-quickcheck = dontCheck super.tasty-quickcheck; 122 - 123 - temporary = dontCheck super.temporary; 124 - 125 - # TODO: The tests have a TH error, which has been fixed in ghc 126 - # https://gitlab.haskell.org/ghc/ghc/-/issues/15481 but somehow the issue is 127 - # still present here https://github.com/glguy/th-abstraction/issues/53 128 - th-abstraction = dontCheck super.th-abstraction; 129 - 130 - # Need hedgehog for tests, which fails to compile due to dep on concurrent-output 131 - zenc = dontCheck super.zenc; 132 - 133 - hspec = self.hspec_2_7_10; 134 - hspec-core = self.hspec-core_2_7_10; 135 - hspec-meta = self.hspec-meta_2_7_8; 136 - hspec-discover = self.hspec-discover_2_7_10; 137 - 138 - # ReferenceError: h$primop_ShrinkSmallMutableArrayOp_Char is not defined 139 - unordered-containers = dontCheck super.unordered-containers; 140 - 141 - # Without this revert, test suites using tasty fail with: 142 - # ReferenceError: h$getMonotonicNSec is not defined 143 - # https://github.com/UnkindPartition/tasty/pull/345#issuecomment-1538216407 144 - tasty = appendPatch (pkgs.fetchpatch { 145 - name = "tasty-ghcjs.patch"; 146 - url = "https://github.com/UnkindPartition/tasty/commit/e692065642fd09b82acccea610ad8f49edd207df.patch"; 147 - revert = true; 148 - relative = "core"; 149 - hash = "sha256-ryABU2ywkVOEPC/jWv8humT3HaRpCwMYEk+Ux3hhi/M="; 150 - }) super.tasty; 151 - 152 - # Tests take unacceptably long. 153 - vector = dontCheck super.vector; 154 - }
···
+1 -11
pkgs/development/haskell-modules/configuration-hackage2nix/main.yaml
··· 45 46 # keep-sorted start skip_lines=1 case=no numeric=yes 47 extra-packages: 48 - - aeson < 2 # required by pantry-0.5.2 49 - algebraic-graphs < 0.7 # 2023-08-14: Needed for building weeder < 2.6.0 50 - - ansi-terminal < 1.1 # 2025-02-27: required for ghcjs 51 - - ansi-terminal-types == 0.11.5 # 2025-02-27: required for ghcjs 52 - - ansi-wl-pprint >= 0.6 && < 0.7 # 2024-03-23: required for ghcjs 53 - - apply-refact == 0.9.* # 2022-12-12: needed for GHC < 9.2 54 - attoparsec == 0.13.* # 2022-02-23: Needed to compile elm for now 55 - Cabal == 3.2.* # Used for packages needing newer Cabal on ghc 8.6 and 8.8 56 - Cabal == 3.10.* ··· 85 - ghc-tags == 1.5.* # 2023-02-18: preserve for ghc-lib == 9.2.* 86 - ghc-tags == 1.7.* # 2023-02-18: preserve for ghc-lib == 9.6.* 87 - ghc-tags == 1.8.* # 2023-02-18: preserve for ghc-lib == 9.8.* 88 - - happy == 1.19.12 # for ghcjs 89 - happy == 1.20.* # for ghc-lib-parser == 9.6.* 90 - hasql < 1.7 # 2025-01-19: Needed for building postgrest 91 - hasql-dynamic-statements < 0.3.1.6 # 2025-01-19: Needed for building postgrest ··· 96 - hlint == 3.4.1 # 2022-09-21: preserve for ghc 8.10 97 - hlint == 3.6.* # 2025-04-14: needed for hls with ghc-lib-parser 9.6 98 - hnix-store-core < 0.7 # 2023-12-11: required by hnix-store-remote 0.6 99 - - hspec < 2.8 # 2022-04-07: Needed for tasty-hspec 1.1.6 100 - - hspec-core < 2.8 # 2022-04-07: Needed for tasty-hspec 1.1.6 101 - - hspec-discover < 2.8 # 2022-04-07: Needed for tasty-hspec 1.1.6 102 - hspec-megaparsec == 2.2.0 # 2023-11-18: Latest version compatible with ghc 9.0 103 - - hspec-meta < 2.8 # 2022-12-07: Needed for elmPackages.elm / hspec-discover 104 - language-javascript == 0.7.0.0 # required by purescript 105 - lsp < 2.5 # 2024-07-08: need for koka 106 - lsp == 2.1.* # 2024-02-28: need for dhall-lsp-server 107 - lsp-types == 2.1.* # 2024-02-28: need for dhall-lsp-server and koka 108 - network-run == 0.4.0 # 2024-10-20: for GHC 9.10/network == 3.1.* 109 - - optparse-applicative < 0.16 # needed for niv-0.2.19 110 - ormolu == 0.5.2.0 # 2023-08-08: preserve for ghc 9.0 111 - ormolu == 0.7.2.0 # 2023-11-13: for ghc-lib-parser 9.6 compat 112 - ormolu == 0.7.7.0 # 2025-01-27: for ghc 9.10 compat
··· 45 46 # keep-sorted start skip_lines=1 case=no numeric=yes 47 extra-packages: 48 - algebraic-graphs < 0.7 # 2023-08-14: Needed for building weeder < 2.6.0 49 + - ansi-wl-pprint >= 0.6 && < 0.7 # 2025-07-07: used by gren <= 0.5.4 50 - attoparsec == 0.13.* # 2022-02-23: Needed to compile elm for now 51 - Cabal == 3.2.* # Used for packages needing newer Cabal on ghc 8.6 and 8.8 52 - Cabal == 3.10.* ··· 81 - ghc-tags == 1.5.* # 2023-02-18: preserve for ghc-lib == 9.2.* 82 - ghc-tags == 1.7.* # 2023-02-18: preserve for ghc-lib == 9.6.* 83 - ghc-tags == 1.8.* # 2023-02-18: preserve for ghc-lib == 9.8.* 84 - happy == 1.20.* # for ghc-lib-parser == 9.6.* 85 - hasql < 1.7 # 2025-01-19: Needed for building postgrest 86 - hasql-dynamic-statements < 0.3.1.6 # 2025-01-19: Needed for building postgrest ··· 91 - hlint == 3.4.1 # 2022-09-21: preserve for ghc 8.10 92 - hlint == 3.6.* # 2025-04-14: needed for hls with ghc-lib-parser 9.6 93 - hnix-store-core < 0.7 # 2023-12-11: required by hnix-store-remote 0.6 94 - hspec-megaparsec == 2.2.0 # 2023-11-18: Latest version compatible with ghc 9.0 95 - language-javascript == 0.7.0.0 # required by purescript 96 - lsp < 2.5 # 2024-07-08: need for koka 97 - lsp == 2.1.* # 2024-02-28: need for dhall-lsp-server 98 - lsp-types == 2.1.* # 2024-02-28: need for dhall-lsp-server and koka 99 - network-run == 0.4.0 # 2024-10-20: for GHC 9.10/network == 3.1.* 100 - ormolu == 0.5.2.0 # 2023-08-08: preserve for ghc 9.0 101 - ormolu == 0.7.2.0 # 2023-11-13: for ghc-lib-parser 9.6 compat 102 - ormolu == 0.7.7.0 # 2025-01-27: for ghc 9.10 compat
+3 -9
pkgs/development/haskell-modules/configuration-nix.nix
··· 635 tasty = overrideCabal (drv: { 636 libraryHaskellDepends = 637 (drv.libraryHaskellDepends or [ ]) 638 - ++ 639 - lib.optionals 640 - ( 641 - !(pkgs.stdenv.hostPlatform.isAarch64 || pkgs.stdenv.hostPlatform.isx86_64) 642 - || (self.ghc.isGhcjs or false) 643 - ) 644 - [ 645 - self.unbounded-delays 646 - ]; 647 }) super.tasty; 648 649 tasty-discover = overrideCabal (drv: {
··· 635 tasty = overrideCabal (drv: { 636 libraryHaskellDepends = 637 (drv.libraryHaskellDepends or [ ]) 638 + ++ lib.optionals (!(pkgs.stdenv.hostPlatform.isAarch64 || pkgs.stdenv.hostPlatform.isx86_64)) [ 639 + self.unbounded-delays 640 + ]; 641 }) super.tasty; 642 643 tasty-discover = overrideCabal (drv: {
+6 -27
pkgs/development/haskell-modules/generic-builder.nix
··· 16 let 17 isCross = stdenv.buildPlatform != stdenv.hostPlatform; 18 19 - # Note that ghc.isGhcjs != stdenv.hostPlatform.isGhcjs. 20 - # ghc.isGhcjs implies that we are using ghcjs, a project separate from GHC. 21 - # (mere) stdenv.hostPlatform.isGhcjs means that we are using GHC's JavaScript 22 - # backend. The latter is a normal cross compilation backend and needs little 23 - # special accommodation. 24 - outputsJS = ghc.isGhcjs or false || stdenv.hostPlatform.isGhcjs; 25 - 26 # Pass the "wrong" C compiler rather than none at all so packages that just 27 # use the C preproccessor still work, see 28 # https://github.com/haskell/cabal/issues/6466 for details. ··· 47 48 { 49 pname, 50 - dontStrip ? outputsJS, 51 version, 52 revision ? null, 53 sha256 ? null, ··· 80 doHaddockQuickjump ? doHoogle, 81 doInstallIntermediates ? false, 82 editedCabalFile ? null, 83 - enableLibraryProfiling ? !outputsJS, 84 enableExecutableProfiling ? false, 85 profilingDetail ? "exported-functions", 86 # TODO enable shared libs for cross-compiling ··· 90 && (ghc.enableShared or false) 91 && !stdenv.hostPlatform.useAndroidPrebuilt, # TODO: figure out why /build leaks into RPATH 92 enableDeadCodeElimination ? (!stdenv.hostPlatform.isDarwin), # TODO: use -dead_strip for darwin 93 - # Disabling this for ghcjs prevents this crash: https://gitlab.haskell.org/ghc/ghc/-/issues/23235 94 enableStaticLibraries ? 95 !(stdenv.hostPlatform.isWindows || stdenv.hostPlatform.isWasm || stdenv.hostPlatform.isGhcjs), 96 enableHsc2hsViaAsm ? stdenv.hostPlatform.isWindows, ··· 228 optionalAttrs 229 ; 230 231 - isGhcjs = ghc.isGhcjs or false; 232 isHaLVM = ghc.isHaLVM or false; 233 234 # GHC used for building Setup.hs 235 # 236 # Same as our GHC, unless we're cross, in which case it is native GHC with the 237 - # same version, or ghcjs, in which case its the ghc used to build ghcjs. 238 nativeGhc = buildHaskellPackages.ghc; 239 240 # the target dir for haddock documentation ··· 358 (enableFeature (!dontStrip) "library-stripping") 359 (enableFeature (!dontStrip) "executable-stripping") 360 ] 361 - ++ optionals isGhcjs [ 362 - "--ghcjs" 363 - ] 364 ++ optionals isCross ( 365 [ 366 "--configure-option=--host=${stdenv.hostPlatform.config}" ··· 490 491 setupCommand = "./Setup"; 492 493 - ghcCommand' = if isGhcjs then "ghcjs" else "ghc"; 494 ghcCommand = "${ghc.targetPrefix}${ghcCommand'}"; 495 496 ghcNameWithPrefix = "${ghc.targetPrefix}${ghc.haskellCompilerName}"; ··· 519 520 intermediatesDir = "share/haskell/${ghc.version}/${pname}-${version}/dist"; 521 522 - # On old ghcjs, the jsexe directories are the output but on the js backend they seem to be treated as intermediates 523 jsexe = rec { 524 - shouldUseNode = isGhcjs; 525 shouldAdd = stdenv.hostPlatform.isGhcjs && isExecutable; 526 shouldCopy = shouldAdd && !doInstallIntermediates; 527 shouldSymlink = shouldAdd && doInstallIntermediates; ··· 849 '' 850 } 851 852 - ${optionalString jsexe.shouldUseNode '' 853 - for exeDir in "${binDir}/"*.jsexe; do 854 - exe="''${exeDir%.jsexe}" 855 - printWords '#!${nodejs}/bin/node' > "$exe" 856 - echo >> "$exe" 857 - cat "$exeDir/all.js" >> "$exe" 858 - chmod +x "$exe" 859 - done 860 - ''} 861 ${optionalString doCoverage "mkdir -p $out/share && cp -r dist/hpc $out/share"} 862 863 ${optionalString jsexe.shouldCopy ''
··· 16 let 17 isCross = stdenv.buildPlatform != stdenv.hostPlatform; 18 19 # Pass the "wrong" C compiler rather than none at all so packages that just 20 # use the C preproccessor still work, see 21 # https://github.com/haskell/cabal/issues/6466 for details. ··· 40 41 { 42 pname, 43 + dontStrip ? stdenv.hostPlatform.isGhcjs, 44 version, 45 revision ? null, 46 sha256 ? null, ··· 73 doHaddockQuickjump ? doHoogle, 74 doInstallIntermediates ? false, 75 editedCabalFile ? null, 76 + enableLibraryProfiling ? !stdenv.hostPlatform.isGhcjs, 77 enableExecutableProfiling ? false, 78 profilingDetail ? "exported-functions", 79 # TODO enable shared libs for cross-compiling ··· 83 && (ghc.enableShared or false) 84 && !stdenv.hostPlatform.useAndroidPrebuilt, # TODO: figure out why /build leaks into RPATH 85 enableDeadCodeElimination ? (!stdenv.hostPlatform.isDarwin), # TODO: use -dead_strip for darwin 86 + # Disabling this for JS prevents this crash: https://gitlab.haskell.org/ghc/ghc/-/issues/23235 87 enableStaticLibraries ? 88 !(stdenv.hostPlatform.isWindows || stdenv.hostPlatform.isWasm || stdenv.hostPlatform.isGhcjs), 89 enableHsc2hsViaAsm ? stdenv.hostPlatform.isWindows, ··· 221 optionalAttrs 222 ; 223 224 isHaLVM = ghc.isHaLVM or false; 225 226 # GHC used for building Setup.hs 227 # 228 # Same as our GHC, unless we're cross, in which case it is native GHC with the 229 + # same version. 230 nativeGhc = buildHaskellPackages.ghc; 231 232 # the target dir for haddock documentation ··· 350 (enableFeature (!dontStrip) "library-stripping") 351 (enableFeature (!dontStrip) "executable-stripping") 352 ] 353 ++ optionals isCross ( 354 [ 355 "--configure-option=--host=${stdenv.hostPlatform.config}" ··· 479 480 setupCommand = "./Setup"; 481 482 + ghcCommand' = "ghc"; 483 ghcCommand = "${ghc.targetPrefix}${ghcCommand'}"; 484 485 ghcNameWithPrefix = "${ghc.targetPrefix}${ghc.haskellCompilerName}"; ··· 508 509 intermediatesDir = "share/haskell/${ghc.version}/${pname}-${version}/dist"; 510 511 jsexe = rec { 512 shouldAdd = stdenv.hostPlatform.isGhcjs && isExecutable; 513 shouldCopy = shouldAdd && !doInstallIntermediates; 514 shouldSymlink = shouldAdd && doInstallIntermediates; ··· 836 '' 837 } 838 839 + 840 ${optionalString doCoverage "mkdir -p $out/share && cp -r dist/hpc $out/share"} 841 842 ${optionalString jsexe.shouldCopy ''
-543
pkgs/development/haskell-modules/hackage-packages.nix
··· 53573 } 53574 ) { }; 53575 53576 - "aeson_1_5_6_0" = callPackage ( 53577 - { 53578 - mkDerivation, 53579 - attoparsec, 53580 - base, 53581 - base-compat, 53582 - base-compat-batteries, 53583 - base-orphans, 53584 - base16-bytestring, 53585 - bytestring, 53586 - containers, 53587 - data-fix, 53588 - deepseq, 53589 - Diff, 53590 - directory, 53591 - dlist, 53592 - filepath, 53593 - generic-deriving, 53594 - ghc-prim, 53595 - hashable, 53596 - hashable-time, 53597 - integer-logarithms, 53598 - primitive, 53599 - QuickCheck, 53600 - quickcheck-instances, 53601 - scientific, 53602 - strict, 53603 - tagged, 53604 - tasty, 53605 - tasty-golden, 53606 - tasty-hunit, 53607 - tasty-quickcheck, 53608 - template-haskell, 53609 - text, 53610 - th-abstraction, 53611 - these, 53612 - time, 53613 - time-compat, 53614 - unordered-containers, 53615 - uuid-types, 53616 - vector, 53617 - }: 53618 - mkDerivation { 53619 - pname = "aeson"; 53620 - version = "1.5.6.0"; 53621 - sha256 = "1s5z4bgb5150h6a4cjf5vh8dmyrn6ilh29gh05999v6jwd5w6q83"; 53622 - revision = "7"; 53623 - editedCabalFile = "1qbsyy605hlfh7wfj3q33yx0xmb4n81z6h0y99x7khyxmy0plqbf"; 53624 - libraryHaskellDepends = [ 53625 - attoparsec 53626 - base 53627 - base-compat-batteries 53628 - bytestring 53629 - containers 53630 - data-fix 53631 - deepseq 53632 - dlist 53633 - ghc-prim 53634 - hashable 53635 - primitive 53636 - scientific 53637 - strict 53638 - tagged 53639 - template-haskell 53640 - text 53641 - th-abstraction 53642 - these 53643 - time 53644 - time-compat 53645 - unordered-containers 53646 - uuid-types 53647 - vector 53648 - ]; 53649 - testHaskellDepends = [ 53650 - attoparsec 53651 - base 53652 - base-compat 53653 - base-orphans 53654 - base16-bytestring 53655 - bytestring 53656 - containers 53657 - data-fix 53658 - Diff 53659 - directory 53660 - dlist 53661 - filepath 53662 - generic-deriving 53663 - ghc-prim 53664 - hashable 53665 - hashable-time 53666 - integer-logarithms 53667 - QuickCheck 53668 - quickcheck-instances 53669 - scientific 53670 - strict 53671 - tagged 53672 - tasty 53673 - tasty-golden 53674 - tasty-hunit 53675 - tasty-quickcheck 53676 - template-haskell 53677 - text 53678 - these 53679 - time 53680 - time-compat 53681 - unordered-containers 53682 - uuid-types 53683 - vector 53684 - ]; 53685 - description = "Fast JSON parsing and encoding"; 53686 - license = lib.licenses.bsd3; 53687 - hydraPlatforms = lib.platforms.none; 53688 - } 53689 - ) { }; 53690 - 53691 "aeson" = callPackage ( 53692 { 53693 mkDerivation, ··· 76649 } 76650 ) { }; 76651 76652 - "ansi-terminal_1_0_2" = callPackage ( 76653 - { 76654 - mkDerivation, 76655 - ansi-terminal-types, 76656 - base, 76657 - colour, 76658 - }: 76659 - mkDerivation { 76660 - pname = "ansi-terminal"; 76661 - version = "1.0.2"; 76662 - sha256 = "0d6qm3ph6drim7g81yx46nmgspxsf4nnr2d91fa0fy3cyv5idra6"; 76663 - isLibrary = true; 76664 - isExecutable = true; 76665 - libraryHaskellDepends = [ 76666 - ansi-terminal-types 76667 - base 76668 - colour 76669 - ]; 76670 - description = "Simple ANSI terminal support"; 76671 - license = lib.licenses.bsd3; 76672 - hydraPlatforms = lib.platforms.none; 76673 - } 76674 - ) { }; 76675 - 76676 "ansi-terminal" = callPackage ( 76677 { 76678 mkDerivation, ··· 76775 testToolDepends = [ hspec-discover ]; 76776 description = "cross-platform library for terminal games"; 76777 license = lib.licenses.gpl3Only; 76778 - } 76779 - ) { }; 76780 - 76781 - "ansi-terminal-types_0_11_5" = callPackage ( 76782 - { 76783 - mkDerivation, 76784 - base, 76785 - colour, 76786 - }: 76787 - mkDerivation { 76788 - pname = "ansi-terminal-types"; 76789 - version = "0.11.5"; 76790 - sha256 = "1lgxnhnzgk4mwlnh8zdgx8w8pa4q4n140mvd1880acgli41j6yxz"; 76791 - revision = "1"; 76792 - editedCabalFile = "02mhl78kmjfa0h22khcjdaaxyvanv717rb2mi3l0jiawv7gl117p"; 76793 - libraryHaskellDepends = [ 76794 - base 76795 - colour 76796 - ]; 76797 - description = "Types and functions used to represent SGR aspects"; 76798 - license = lib.licenses.bsd3; 76799 - hydraPlatforms = lib.platforms.none; 76800 } 76801 ) { }; 76802 ··· 80797 ]; 80798 description = "Lift a binary, non-decreasing function onto ordered lists and order the output"; 80799 license = lib.licenses.bsd3; 80800 - } 80801 - ) { }; 80802 - 80803 - "apply-refact_0_9_3_0" = callPackage ( 80804 - { 80805 - mkDerivation, 80806 - base, 80807 - containers, 80808 - directory, 80809 - extra, 80810 - filemanip, 80811 - filepath, 80812 - ghc, 80813 - ghc-boot-th, 80814 - ghc-exactprint, 80815 - optparse-applicative, 80816 - process, 80817 - refact, 80818 - silently, 80819 - syb, 80820 - tasty, 80821 - tasty-expected-failure, 80822 - tasty-golden, 80823 - transformers, 80824 - uniplate, 80825 - unix-compat, 80826 - }: 80827 - mkDerivation { 80828 - pname = "apply-refact"; 80829 - version = "0.9.3.0"; 80830 - sha256 = "1sn5g71sx8xa4ggyk49m661iip6zrzl65vb87l16l31kf79bbm7w"; 80831 - revision = "1"; 80832 - editedCabalFile = "0hgdjm6ydfc29d922h1cpwrch61r5qchzrw21dz80kdry53qxl5q"; 80833 - isLibrary = true; 80834 - isExecutable = true; 80835 - libraryHaskellDepends = [ 80836 - base 80837 - containers 80838 - directory 80839 - extra 80840 - filemanip 80841 - ghc 80842 - ghc-boot-th 80843 - ghc-exactprint 80844 - process 80845 - refact 80846 - syb 80847 - transformers 80848 - uniplate 80849 - unix-compat 80850 - ]; 80851 - executableHaskellDepends = [ 80852 - base 80853 - containers 80854 - directory 80855 - extra 80856 - filemanip 80857 - filepath 80858 - ghc 80859 - ghc-boot-th 80860 - ghc-exactprint 80861 - optparse-applicative 80862 - process 80863 - refact 80864 - syb 80865 - transformers 80866 - uniplate 80867 - unix-compat 80868 - ]; 80869 - testHaskellDepends = [ 80870 - base 80871 - containers 80872 - directory 80873 - extra 80874 - filemanip 80875 - filepath 80876 - ghc 80877 - ghc-boot-th 80878 - ghc-exactprint 80879 - optparse-applicative 80880 - process 80881 - refact 80882 - silently 80883 - syb 80884 - tasty 80885 - tasty-expected-failure 80886 - tasty-golden 80887 - transformers 80888 - uniplate 80889 - unix-compat 80890 - ]; 80891 - description = "Perform refactorings specified by the refact library"; 80892 - license = lib.licenses.bsd3; 80893 - hydraPlatforms = lib.platforms.none; 80894 - mainProgram = "refactor"; 80895 } 80896 ) { }; 80897 ··· 297969 } 297970 ) { }; 297971 297972 - "happy_1_19_12" = callPackage ( 297973 - { 297974 - mkDerivation, 297975 - array, 297976 - base, 297977 - containers, 297978 - mtl, 297979 - process, 297980 - }: 297981 - mkDerivation { 297982 - pname = "happy"; 297983 - version = "1.19.12"; 297984 - sha256 = "03xlmq6qmdx4zvzw8bp33kd9g7yvcq5cz4wg50xilw812kj276pv"; 297985 - revision = "1"; 297986 - editedCabalFile = "13wydw1mmdry4l9r63vxjk4h55ci9hgwzn1a842qqk1m2rb4xiln"; 297987 - isLibrary = false; 297988 - isExecutable = true; 297989 - enableSeparateDataOutput = true; 297990 - executableHaskellDepends = [ 297991 - array 297992 - base 297993 - containers 297994 - mtl 297995 - ]; 297996 - testHaskellDepends = [ 297997 - base 297998 - process 297999 - ]; 298000 - description = "Happy is a parser generator for Haskell"; 298001 - license = lib.licenses.bsd2; 298002 - hydraPlatforms = lib.platforms.none; 298003 - mainProgram = "happy"; 298004 - } 298005 - ) { }; 298006 - 298007 "happy_1_20_1_1" = callPackage ( 298008 { 298009 mkDerivation, ··· 355226 } 355227 ) { }; 355228 355229 - "hspec_2_7_10" = callPackage ( 355230 - { 355231 - mkDerivation, 355232 - base, 355233 - hspec-core, 355234 - hspec-discover, 355235 - hspec-expectations, 355236 - QuickCheck, 355237 - }: 355238 - mkDerivation { 355239 - pname = "hspec"; 355240 - version = "2.7.10"; 355241 - sha256 = "0z0lwrmrqkglr78n6k2c36n4h68142bh785ys0x4jaibjshvs6rw"; 355242 - libraryHaskellDepends = [ 355243 - base 355244 - hspec-core 355245 - hspec-discover 355246 - hspec-expectations 355247 - QuickCheck 355248 - ]; 355249 - description = "A Testing Framework for Haskell"; 355250 - license = lib.licenses.mit; 355251 - hydraPlatforms = lib.platforms.none; 355252 - } 355253 - ) { }; 355254 - 355255 "hspec" = callPackage ( 355256 { 355257 mkDerivation, ··· 355448 } 355449 ) { }; 355450 355451 - "hspec-core_2_7_10" = callPackage ( 355452 - { 355453 - mkDerivation, 355454 - ansi-terminal, 355455 - array, 355456 - base, 355457 - call-stack, 355458 - clock, 355459 - deepseq, 355460 - directory, 355461 - filepath, 355462 - hspec-expectations, 355463 - hspec-meta, 355464 - HUnit, 355465 - process, 355466 - QuickCheck, 355467 - quickcheck-io, 355468 - random, 355469 - setenv, 355470 - silently, 355471 - stm, 355472 - temporary, 355473 - tf-random, 355474 - transformers, 355475 - }: 355476 - mkDerivation { 355477 - pname = "hspec-core"; 355478 - version = "2.7.10"; 355479 - sha256 = "12k9yp5gznrda449ir60d5wv3xl7nnyffkb5mhfc0svw9f8lxlv1"; 355480 - revision = "2"; 355481 - editedCabalFile = "0l16mgxgapnihrvbwvhbz9i60v5fx68mhpv6zww9b68bdj6cpbsk"; 355482 - libraryHaskellDepends = [ 355483 - ansi-terminal 355484 - array 355485 - base 355486 - call-stack 355487 - clock 355488 - deepseq 355489 - directory 355490 - filepath 355491 - hspec-expectations 355492 - HUnit 355493 - QuickCheck 355494 - quickcheck-io 355495 - random 355496 - setenv 355497 - stm 355498 - tf-random 355499 - transformers 355500 - ]; 355501 - testHaskellDepends = [ 355502 - ansi-terminal 355503 - array 355504 - base 355505 - call-stack 355506 - clock 355507 - deepseq 355508 - directory 355509 - filepath 355510 - hspec-expectations 355511 - hspec-meta 355512 - HUnit 355513 - process 355514 - QuickCheck 355515 - quickcheck-io 355516 - random 355517 - setenv 355518 - silently 355519 - stm 355520 - temporary 355521 - tf-random 355522 - transformers 355523 - ]; 355524 - testToolDepends = [ hspec-meta ]; 355525 - testFlags = [ 355526 - "--skip" 355527 - "'Test.Hspec.Core.Runner.hspecResult runs specs in parallel'" 355528 - ]; 355529 - description = "A Testing Framework for Haskell"; 355530 - license = lib.licenses.mit; 355531 - hydraPlatforms = lib.platforms.none; 355532 - } 355533 - ) { }; 355534 - 355535 "hspec-core" = callPackage ( 355536 { 355537 mkDerivation, ··· 355659 description = "Helper functions to simplify adding integration tests"; 355660 license = lib.licenses.bsd3; 355661 hydraPlatforms = lib.platforms.none; 355662 - } 355663 - ) { }; 355664 - 355665 - "hspec-discover_2_7_10" = callPackage ( 355666 - { 355667 - mkDerivation, 355668 - base, 355669 - directory, 355670 - filepath, 355671 - hspec-meta, 355672 - QuickCheck, 355673 - }: 355674 - mkDerivation { 355675 - pname = "hspec-discover"; 355676 - version = "2.7.10"; 355677 - sha256 = "13yzvd3b679skvs1insk4s0wc4zvmz6hs38kc8q0j6vzqq06smqa"; 355678 - isLibrary = true; 355679 - isExecutable = true; 355680 - libraryHaskellDepends = [ 355681 - base 355682 - directory 355683 - filepath 355684 - ]; 355685 - executableHaskellDepends = [ 355686 - base 355687 - directory 355688 - filepath 355689 - ]; 355690 - testHaskellDepends = [ 355691 - base 355692 - directory 355693 - filepath 355694 - hspec-meta 355695 - QuickCheck 355696 - ]; 355697 - testToolDepends = [ hspec-meta ]; 355698 - description = "Automatically discover and run Hspec tests"; 355699 - license = lib.licenses.mit; 355700 - hydraPlatforms = lib.platforms.none; 355701 - mainProgram = "hspec-discover"; 355702 - maintainers = [ lib.maintainers.maralorn ]; 355703 } 355704 ) { }; 355705 ··· 356397 ]; 356398 description = "Utility functions for testing Megaparsec parsers with Hspec"; 356399 license = lib.licenses.bsd3; 356400 - } 356401 - ) { }; 356402 - 356403 - "hspec-meta_2_7_8" = callPackage ( 356404 - { 356405 - mkDerivation, 356406 - ansi-terminal, 356407 - array, 356408 - base, 356409 - call-stack, 356410 - clock, 356411 - deepseq, 356412 - directory, 356413 - filepath, 356414 - QuickCheck, 356415 - quickcheck-io, 356416 - random, 356417 - setenv, 356418 - stm, 356419 - time, 356420 - transformers, 356421 - }: 356422 - mkDerivation { 356423 - pname = "hspec-meta"; 356424 - version = "2.7.8"; 356425 - sha256 = "0sfj0n2hy1r8ifysgbcmfdygcd7vyzr13ldkcp0l2ml337f8j0si"; 356426 - isLibrary = true; 356427 - isExecutable = true; 356428 - libraryHaskellDepends = [ 356429 - ansi-terminal 356430 - array 356431 - base 356432 - call-stack 356433 - clock 356434 - deepseq 356435 - directory 356436 - filepath 356437 - QuickCheck 356438 - quickcheck-io 356439 - random 356440 - setenv 356441 - stm 356442 - time 356443 - transformers 356444 - ]; 356445 - executableHaskellDepends = [ 356446 - ansi-terminal 356447 - array 356448 - base 356449 - call-stack 356450 - clock 356451 - deepseq 356452 - directory 356453 - filepath 356454 - QuickCheck 356455 - quickcheck-io 356456 - random 356457 - setenv 356458 - stm 356459 - time 356460 - transformers 356461 - ]; 356462 - description = "A version of Hspec which is used to test Hspec itself"; 356463 - license = lib.licenses.mit; 356464 - hydraPlatforms = lib.platforms.none; 356465 - mainProgram = "hspec-meta-discover"; 356466 } 356467 ) { }; 356468 ··· 495260 license = lib.licenses.mit; 495261 hydraPlatforms = lib.platforms.none; 495262 broken = true; 495263 - } 495264 - ) { }; 495265 - 495266 - "optparse-applicative_0_15_1_0" = callPackage ( 495267 - { 495268 - mkDerivation, 495269 - ansi-wl-pprint, 495270 - base, 495271 - bytestring, 495272 - process, 495273 - QuickCheck, 495274 - transformers, 495275 - transformers-compat, 495276 - }: 495277 - mkDerivation { 495278 - pname = "optparse-applicative"; 495279 - version = "0.15.1.0"; 495280 - sha256 = "1ws6y3b3f6hsgv0ff0yp6lw4hba1rps4dnvry3yllng0s5gngcsd"; 495281 - revision = "1"; 495282 - editedCabalFile = "0zmhqkd96v2z1ilhqdkd9z4jgsnsxb8yi2479ind8m5zm9363zr9"; 495283 - libraryHaskellDepends = [ 495284 - ansi-wl-pprint 495285 - base 495286 - process 495287 - transformers 495288 - transformers-compat 495289 - ]; 495290 - testHaskellDepends = [ 495291 - base 495292 - bytestring 495293 - QuickCheck 495294 - ]; 495295 - description = "Utilities and combinators for parsing command line options"; 495296 - license = lib.licenses.bsd3; 495297 - hydraPlatforms = lib.platforms.none; 495298 } 495299 ) { }; 495300
··· 53573 } 53574 ) { }; 53575 53576 "aeson" = callPackage ( 53577 { 53578 mkDerivation, ··· 76534 } 76535 ) { }; 76536 76537 "ansi-terminal" = callPackage ( 76538 { 76539 mkDerivation, ··· 76636 testToolDepends = [ hspec-discover ]; 76637 description = "cross-platform library for terminal games"; 76638 license = lib.licenses.gpl3Only; 76639 } 76640 ) { }; 76641 ··· 80636 ]; 80637 description = "Lift a binary, non-decreasing function onto ordered lists and order the output"; 80638 license = lib.licenses.bsd3; 80639 } 80640 ) { }; 80641 ··· 297713 } 297714 ) { }; 297715 297716 "happy_1_20_1_1" = callPackage ( 297717 { 297718 mkDerivation, ··· 354935 } 354936 ) { }; 354937 354938 "hspec" = callPackage ( 354939 { 354940 mkDerivation, ··· 355131 } 355132 ) { }; 355133 355134 "hspec-core" = callPackage ( 355135 { 355136 mkDerivation, ··· 355258 description = "Helper functions to simplify adding integration tests"; 355259 license = lib.licenses.bsd3; 355260 hydraPlatforms = lib.platforms.none; 355261 } 355262 ) { }; 355263 ··· 355955 ]; 355956 description = "Utility functions for testing Megaparsec parsers with Hspec"; 355957 license = lib.licenses.bsd3; 355958 } 355959 ) { }; 355960 ··· 494752 license = lib.licenses.mit; 494753 hydraPlatforms = lib.platforms.none; 494754 broken = true; 494755 } 494756 ) { }; 494757
+3 -13
pkgs/development/haskell-modules/hoogle.nix
··· 23 packages = selectPackages haskellPackages; 24 25 wrapper = ./hoogle-local-wrapper.sh; 26 - isGhcjs = ghc.isGhcjs or false; 27 - opts = lib.optionalString; 28 - haddockExe = if !isGhcjs then "haddock" else "haddock-ghcjs"; 29 - ghcDocLibDir = if !isGhcjs then ghc.doc + "/share/doc/ghc*/html/libraries" else ghc + "/doc/lib"; 30 - # On GHCJS, use a stripped down version of GHC's prologue.txt 31 - prologue = 32 - if !isGhcjs then 33 - "${ghcDocLibDir}/prologue.txt" 34 - else 35 - writeText "ghcjs-prologue.txt" '' 36 - This index includes documentation for many Haskell modules. 37 - ''; 38 39 docPackages = 40 lib.closePropagation ··· 84 echo importing builtin packages 85 for docdir in ${ghcDocLibDir}"/"*; do 86 name="$(basename $docdir)" 87 - ${opts isGhcjs ''docdir="$docdir/html"''} 88 if [[ -d $docdir ]]; then 89 ln -sfn $docdir $out/share/doc/hoogle/$name 90 fi
··· 23 packages = selectPackages haskellPackages; 24 25 wrapper = ./hoogle-local-wrapper.sh; 26 + haddockExe = "haddock"; 27 + ghcDocLibDir = ghc.doc + "/share/doc/ghc*/html/libraries"; 28 + prologue = "${ghcDocLibDir}/prologue.txt"; 29 30 docPackages = 31 lib.closePropagation ··· 75 echo importing builtin packages 76 for docdir in ${ghcDocLibDir}"/"*; do 77 name="$(basename $docdir)" 78 if [[ -d $docdir ]]; then 79 ln -sfn $docdir $out/share/doc/hoogle/$name 80 fi
-30
pkgs/development/haskell-modules/lib/compose.nix
··· 572 # nix-shell evaluation, return a nix-shell optimized environment. 573 shellAware = p: if lib.inNixShell then p.env else p; 574 575 - ghcInfo = ghc: rec { 576 - isCross = (ghc.cross or null) != null; 577 - isGhcjs = ghc.isGhcjs or false; 578 - nativeGhc = if isCross || isGhcjs then ghc.bootPkgs.ghc else ghc; 579 - }; 580 - 581 - ### mkDerivation helpers 582 - # These allow external users of a haskell package to extract 583 - # information about how it is built in the same way that the 584 - # generic haskell builder does, by reusing the same functions. 585 - # Each function here has the same interface as mkDerivation and thus 586 - # can be called for a given package simply by overriding the 587 - # mkDerivation argument it used. See getHaskellBuildInputs above for 588 - # an example of this. 589 - 590 - # Some information about which phases should be run. 591 - controlPhases = 592 - ghc: 593 - let 594 - inherit (ghcInfo ghc) isCross; 595 - in 596 - { 597 - doCheck ? !isCross, 598 - doBenchmark ? false, 599 - ... 600 - }: 601 - { 602 - inherit doCheck doBenchmark; 603 - }; 604 - 605 # Utility to convert a directory full of `cabal2nix`-generated files into a 606 # package override set 607 #
··· 572 # nix-shell evaluation, return a nix-shell optimized environment. 573 shellAware = p: if lib.inNixShell then p.env else p; 574 575 # Utility to convert a directory full of `cabal2nix`-generated files into a 576 # package override set 577 #
-14
pkgs/development/haskell-modules/lib/default.nix
··· 333 # nix-shell evaluation, return a nix-shell optimized environment. 334 shellAware = compose.shellAware; 335 336 - ghcInfo = compose.ghcInfo; 337 - 338 - ### mkDerivation helpers 339 - # These allow external users of a haskell package to extract 340 - # information about how it is built in the same way that the 341 - # generic haskell builder does, by reusing the same functions. 342 - # Each function here has the same interface as mkDerivation and thus 343 - # can be called for a given package simply by overriding the 344 - # mkDerivation argument it used. See getHaskellBuildInputs above for 345 - # an example of this. 346 - 347 - # Some information about which phases should be run. 348 - controlPhases = compose.controlPhases; 349 - 350 # Utility to convert a directory full of `cabal2nix`-generated files into a 351 # package override set 352 #
··· 333 # nix-shell evaluation, return a nix-shell optimized environment. 334 shellAware = compose.shellAware; 335 336 # Utility to convert a directory full of `cabal2nix`-generated files into a 337 # package override set 338 #
+28 -45
pkgs/development/haskell-modules/with-packages-wrapper.nix
··· 13 installDocumentation ? true, 14 hoogleWithPackages, 15 postBuild ? "", 16 - ghcLibdir ? null, # only used by ghcjs, when resolving plugins 17 }: 18 19 # This argument is a function which selects a list of Haskell packages from any ··· 51 52 packages = selectPackages haskellPackages ++ [ hoogleWithPackages' ]; 53 54 - isGhcjs = ghc.isGhcjs or false; 55 isHaLVM = ghc.isHaLVM or false; 56 - ghcCommand' = if isGhcjs then "ghcjs" else "ghc"; 57 ghcCommand = "${ghc.targetPrefix}${ghcCommand'}"; 58 ghcCommandCaps = lib.toUpper ghcCommand'; 59 libDir = ··· 77 ); 78 in 79 80 - assert ghcLibdir != null -> (ghc.isGhcjs or false); 81 - 82 if paths == [ ] && !useLLVM then 83 ghc 84 else ··· 101 --set "NIX_${ghcCommandCaps}PKG" "$out/bin/${ghcCommand}-pkg" \ 102 --set "NIX_${ghcCommandCaps}_DOCDIR" "${docDir}" \ 103 --set "NIX_${ghcCommandCaps}_LIBDIR" "${libDir}" \ 104 - ${ 105 - lib.optionalString (ghc.isGhcjs or false) ''--set NODE_PATH "${ghc.socket-io}/lib/node_modules"'' 106 - } \ 107 ${lib.optionalString useLLVM ''--prefix "PATH" ":" "${llvm}"''} 108 fi 109 done ··· 136 fi 137 138 '' 139 - + (lib.optionalString (stdenv.targetPlatform.isDarwin && !isGhcjs && !stdenv.targetPlatform.isiOS) 140 - '' 141 - # Work around a linker limit in macOS Sierra (see generic-builder.nix): 142 - local packageConfDir="${packageCfgDir}"; 143 - local dynamicLinksDir="$out/lib/links"; 144 - mkdir -p $dynamicLinksDir 145 - # Clean up the old links that may have been (transitively) included by 146 - # symlinkJoin: 147 - rm -f $dynamicLinksDir/* 148 149 - dynamicLibraryDirs=() 150 151 - for pkg in $($out/bin/ghc-pkg list --simple-output); do 152 - dynamicLibraryDirs+=($($out/bin/ghc-pkg --simple-output field "$pkg" dynamic-library-dirs)) 153 - done 154 155 - for dynamicLibraryDir in $(echo "''${dynamicLibraryDirs[@]}" | tr ' ' '\n' | sort -u); do 156 - echo "Linking $dynamicLibraryDir/*.dylib from $dynamicLinksDir" 157 - find "$dynamicLibraryDir" -name '*.dylib' -exec ln -s {} "$dynamicLinksDir" \; 158 - done 159 160 - for f in $packageConfDir/*.conf; do 161 - # Initially, $f is a symlink to a read-only file in one of the inputs 162 - # (as a result of this symlinkJoin derivation). 163 - # Replace it with a copy whose dynamic-library-dirs points to 164 - # $dynamicLinksDir 165 - cp $f $f-tmp 166 - rm $f 167 - sed "N;s,dynamic-library-dirs:\s*.*\n,dynamic-library-dirs: $dynamicLinksDir\n," $f-tmp > $f 168 - rm $f-tmp 169 - done 170 - '' 171 - ) 172 + '' 173 ${lib.optionalString hasLibraries '' 174 # GHC 8.10 changes. ··· 182 183 $out/bin/${ghcCommand}-pkg recache 184 ''} 185 - ${ 186 - # ghcjs will read the ghc_libdir file when resolving plugins. 187 - lib.optionalString (isGhcjs && ghcLibdir != null) '' 188 - mkdir -p "${libDir}" 189 - rm -f "${libDir}/ghc_libdir" 190 - printf '%s' '${ghcLibdir}' > "${libDir}/ghc_libdir" 191 - '' 192 - } 193 $out/bin/${ghcCommand}-pkg check 194 '' 195 + postBuild;
··· 13 installDocumentation ? true, 14 hoogleWithPackages, 15 postBuild ? "", 16 }: 17 18 # This argument is a function which selects a list of Haskell packages from any ··· 50 51 packages = selectPackages haskellPackages ++ [ hoogleWithPackages' ]; 52 53 isHaLVM = ghc.isHaLVM or false; 54 + ghcCommand' = "ghc"; 55 ghcCommand = "${ghc.targetPrefix}${ghcCommand'}"; 56 ghcCommandCaps = lib.toUpper ghcCommand'; 57 libDir = ··· 75 ); 76 in 77 78 if paths == [ ] && !useLLVM then 79 ghc 80 else ··· 97 --set "NIX_${ghcCommandCaps}PKG" "$out/bin/${ghcCommand}-pkg" \ 98 --set "NIX_${ghcCommandCaps}_DOCDIR" "${docDir}" \ 99 --set "NIX_${ghcCommandCaps}_LIBDIR" "${libDir}" \ 100 ${lib.optionalString useLLVM ''--prefix "PATH" ":" "${llvm}"''} 101 fi 102 done ··· 129 fi 130 131 '' 132 + + (lib.optionalString (stdenv.targetPlatform.isDarwin && !stdenv.targetPlatform.isiOS) '' 133 + # Work around a linker limit in macOS Sierra (see generic-builder.nix): 134 + local packageConfDir="${packageCfgDir}"; 135 + local dynamicLinksDir="$out/lib/links"; 136 + mkdir -p $dynamicLinksDir 137 + # Clean up the old links that may have been (transitively) included by 138 + # symlinkJoin: 139 + rm -f $dynamicLinksDir/* 140 141 + dynamicLibraryDirs=() 142 143 + for pkg in $($out/bin/ghc-pkg list --simple-output); do 144 + dynamicLibraryDirs+=($($out/bin/ghc-pkg --simple-output field "$pkg" dynamic-library-dirs)) 145 + done 146 147 + for dynamicLibraryDir in $(echo "''${dynamicLibraryDirs[@]}" | tr ' ' '\n' | sort -u); do 148 + echo "Linking $dynamicLibraryDir/*.dylib from $dynamicLinksDir" 149 + find "$dynamicLibraryDir" -name '*.dylib' -exec ln -s {} "$dynamicLinksDir" \; 150 + done 151 152 + for f in $packageConfDir/*.conf; do 153 + # Initially, $f is a symlink to a read-only file in one of the inputs 154 + # (as a result of this symlinkJoin derivation). 155 + # Replace it with a copy whose dynamic-library-dirs points to 156 + # $dynamicLinksDir 157 + cp $f $f-tmp 158 + rm $f 159 + sed "N;s,dynamic-library-dirs:\s*.*\n,dynamic-library-dirs: $dynamicLinksDir\n," $f-tmp > $f 160 + rm $f-tmp 161 + done 162 + '') 163 + '' 164 ${lib.optionalString hasLibraries '' 165 # GHC 8.10 changes. ··· 173 174 $out/bin/${ghcCommand}-pkg recache 175 ''} 176 $out/bin/${ghcCommand}-pkg check 177 '' 178 + postBuild;
+9 -18
pkgs/top-level/haskell-packages.nix
··· 5 pkgs, 6 newScope, 7 stdenv, 8 }: 9 10 let ··· 25 "ghc924Binary" 26 "ghc963Binary" 27 "ghc984Binary" 28 - # ghcjs 29 - "ghcjs" 30 - "ghcjs810" 31 ]; 32 33 haskellLibUncomposable = import ../development/haskell-modules/lib { ··· 333 llvmPackages = pkgs.llvmPackages_18; 334 }; 335 336 - ghcjs = compiler.ghcjs810; 337 - ghcjs810 = callPackage ../development/compilers/ghcjs/8.10 { 338 - bootPkgs = bb.packages.ghc810; 339 - ghcjsSrcJson = ../development/compilers/ghcjs/8.10/git.json; 340 - stage0 = ../development/compilers/ghcjs/8.10/stage0.nix; 341 - }; 342 - 343 # The integer-simple attribute set contains all the GHC compilers 344 # build with integer-simple instead of integer-gmp. 345 integer-simple = ··· 367 name: compiler.${name}.override { enableNativeBignum = true; } 368 ) 369 ); 370 } 371 ); 372 ··· 485 compilerConfig = callPackage ../development/haskell-modules/configuration-ghc-9.14.x.nix { }; 486 }; 487 488 - ghcjs = packages.ghcjs810; 489 - ghcjs810 = callPackage ../development/haskell-modules rec { 490 - buildHaskellPackages = ghc.bootPkgs; 491 - ghc = bh.compiler.ghcjs810; 492 - compilerConfig = callPackage ../development/haskell-modules/configuration-ghc-8.10.x.nix { }; 493 - packageSetConfig = callPackage ../development/haskell-modules/configuration-ghcjs-8.x.nix { }; 494 - }; 495 - 496 # The integer-simple attribute set contains package sets for all the GHC compilers 497 # using integer-simple instead of integer-gmp. 498 integer-simple = ··· 525 buildHaskellPackages = bh.packages.native-bignum.${name}; 526 } 527 ); 528 }; 529 }
··· 5 pkgs, 6 newScope, 7 stdenv, 8 + config, 9 }: 10 11 let ··· 26 "ghc924Binary" 27 "ghc963Binary" 28 "ghc984Binary" 29 ]; 30 31 haskellLibUncomposable = import ../development/haskell-modules/lib { ··· 331 llvmPackages = pkgs.llvmPackages_18; 332 }; 333 334 # The integer-simple attribute set contains all the GHC compilers 335 # build with integer-simple instead of integer-gmp. 336 integer-simple = ··· 358 name: compiler.${name}.override { enableNativeBignum = true; } 359 ) 360 ); 361 + } 362 + // pkgs.lib.optionalAttrs config.allowAliases { 363 + ghcjs = throw "'haskell.compiler.ghcjs' has been removed. Please use 'pkgsCross.ghcjs' instead."; # Added 2025-09-06 364 + ghcjs810 = throw "'haskell.compiler.ghcjs810' has been removed. Please use 'pkgsCross.ghcjs' instead."; # Added 2025-09-06 365 } 366 ); 367 ··· 480 compilerConfig = callPackage ../development/haskell-modules/configuration-ghc-9.14.x.nix { }; 481 }; 482 483 # The integer-simple attribute set contains package sets for all the GHC compilers 484 # using integer-simple instead of integer-gmp. 485 integer-simple = ··· 512 buildHaskellPackages = bh.packages.native-bignum.${name}; 513 } 514 ); 515 + } 516 + // pkgs.lib.optionalAttrs config.allowAliases { 517 + ghcjs = throw "'haskell.packages.ghcjs' has been removed. Please use 'pkgsCross.ghcjs' instead."; # Added 2025-09-06 518 + ghcjs810 = throw "'haskell.packages.ghcjs810' has been removed. Please use 'pkgsCross.ghcjs' instead."; # Added 2025-09-06 519 }; 520 }
-1
pkgs/top-level/release-cross.nix
··· 212 213 # Javascript 214 ghcjs = mapTestOnCross systems.examples.ghcjs { 215 - haskell.packages.ghcjs.hello = nativePlatforms; 216 haskell.packages.native-bignum.ghcHEAD.hello = nativePlatforms; 217 haskellPackages.hello = nativePlatforms; 218 };
··· 212 213 # Javascript 214 ghcjs = mapTestOnCross systems.examples.ghcjs { 215 haskell.packages.native-bignum.ghcHEAD.hello = nativePlatforms; 216 haskellPackages.hello = nativePlatforms; 217 };
+1 -21
pkgs/top-level/release-haskell.nix
··· 231 jobs = recursiveUpdateMany [ 232 (mapTestOn { 233 haskellPackages = packagePlatforms pkgs.haskellPackages; 234 - haskell.compiler = 235 - packagePlatforms pkgs.haskell.compiler 236 - // (lib.genAttrs 237 - [ 238 - "ghcjs" 239 - "ghcjs810" 240 - ] 241 - (ghcjsName: { 242 - # We can't build ghcjs itself, since it exceeds 3GB (Hydra's output limit) due 243 - # to the size of its bundled libs. We can however save users a bit of compile 244 - # time by building the bootstrap ghcjs on Hydra. For this reason, we overwrite 245 - # the ghcjs attributes in haskell.compiler with a reference to the bootstrap 246 - # ghcjs attribute in their bootstrap package set (exposed via passthru) which 247 - # would otherwise be ignored by Hydra. 248 - bootGhcjs = (packagePlatforms pkgs.haskell.compiler.${ghcjsName}.passthru).bootGhcjs; 249 - }) 250 - ); 251 - 252 tests.haskell = packagePlatforms pkgs.tests.haskell; 253 254 nixosTests = { ··· 406 # remove musl ghc865Binary since it is known to be broken and 407 # causes an evaluation error on darwin. 408 ghc865Binary = { }; 409 - 410 - ghcjs = { }; 411 - ghcjs810 = { }; 412 }; 413 414 # Get some cache going for MUSL-enabled GHC.
··· 231 jobs = recursiveUpdateMany [ 232 (mapTestOn { 233 haskellPackages = packagePlatforms pkgs.haskellPackages; 234 + haskell.compiler = packagePlatforms pkgs.haskell.compiler; 235 tests.haskell = packagePlatforms pkgs.tests.haskell; 236 237 nixosTests = { ··· 389 # remove musl ghc865Binary since it is known to be broken and 390 # causes an evaluation error on darwin. 391 ghc865Binary = { }; 392 }; 393 394 # Get some cache going for MUSL-enabled GHC.