diff --git a/doc/release-notes/rl-2511.section.md b/doc/release-notes/rl-2511.section.md index a1af41f0d054..25335f2f4232 100644 --- a/doc/release-notes/rl-2511.section.md +++ b/doc/release-notes/rl-2511.section.md @@ -46,6 +46,8 @@ - `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. +- 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. + - `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). - `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". diff --git a/pkgs/development/compilers/ghcjs/8.10/common-overrides.nix b/pkgs/development/compilers/ghcjs/8.10/common-overrides.nix deleted file mode 100644 index 38caf51088e8..000000000000 --- a/pkgs/development/compilers/ghcjs/8.10/common-overrides.nix +++ /dev/null @@ -1,42 +0,0 @@ -{ - haskellLib, - fetchpatch, - buildPackages, -}: - -let - inherit (haskellLib) - addBuildTools - appendConfigureFlag - dontHaddock - doJailbreak - markUnbroken - overrideCabal - ; -in -self: super: { - ghcjs = - overrideCabal - (drv: { - # Jailbreak and patch can be dropped after https://github.com/ghcjs/ghcjs/pull/833 - jailbreak = true; - patches = drv.patches or [ ] ++ [ - (fetchpatch { - name = "ghcjs-aeson-2.0.patch"; - url = "https://github.com/ghcjs/ghcjs/commit/9ef1f92d740e8503d15d91699f57db147f0474cc.patch"; - sha256 = "0cgxcy6b5870bv4kj54n3bzcqinh4gl4w4r78dg43h2mblhkzbnj"; - }) - ]; - }) - ( - super.ghcjs.overrideScope ( - self: super: { - # Allow transformers-compat >= 0.7 - optparse-applicative = doJailbreak self.optparse-applicative_0_15_1_0; - ansi-wl-pprint = self.ansi-wl-pprint_0_6_9; - ansi-terminal = self.ansi-terminal_1_0_2; - ansi-terminal-types = self.ansi-terminal-types_0_11_5; - } - ) - ); -} diff --git a/pkgs/development/compilers/ghcjs/8.10/configured-ghcjs-src.nix b/pkgs/development/compilers/ghcjs/8.10/configured-ghcjs-src.nix deleted file mode 100644 index 3df3a42bf5c3..000000000000 --- a/pkgs/development/compilers/ghcjs/8.10/configured-ghcjs-src.nix +++ /dev/null @@ -1,70 +0,0 @@ -{ - perl, - autoconf, - automake, - python3, - gcc, - cabal-install, - runCommand, - fetchpatch, - - ghc, - happy, - alex, - - ghcjsSrc, - version, -}: - -runCommand "configured-ghcjs-src" - { - nativeBuildInputs = [ - perl - autoconf - automake - python3 - ghc - happy - alex - cabal-install - gcc - ]; - - inherit ghcjsSrc; - - ctimePatch = fetchpatch { - name = "ghcjs-base-ctime-64-bit.patch"; - url = "https://github.com/ghcjs/ghcjs/commit/b7711fbca7c3f43a61f1dba526e6f2a2656ef44c.patch"; - hash = "sha256-zZ3l8/5gbIGtvu0s2Xl92fEDhkhJ2c2w+5Ql5qkvr3s="; - }; - } - '' - export HOME=$(pwd) - mkdir $HOME/.cabal - touch $HOME/.cabal/config - cp -r "$ghcjsSrc" "$out" - chmod -R +w "$out" - cd "$out" - - patch -p1 -i "$ctimePatch" - - # TODO: Find a better way to avoid impure version numbers - sed -i 's/RELEASE=NO/RELEASE=YES/' ghc/configure.ac - - # These files are needed by ghc-boot package, and these are generated by the - # make/hadrian build system when compiling ghc. Since we dont have access to - # the generated code of the ghc while it got built, here is a little hack to - # generate these again. - runhaskell ${./generate_host_version.hs} - mkdir -p utils/pkg-cache/ghc/libraries/ghc-boot/dist-install/build/GHC/Platform - mv Host.hs utils/pkg-cache/ghc/libraries/ghc-boot/dist-install/build/GHC/Platform/Host.hs - mv Version.hs utils/pkg-cache/ghc/libraries/ghc-boot/dist-install/build/GHC/Version.hs - - # The ghcjs has the following hardcoded paths of lib dir in its code. Patching - # these to match the path expected by the nixpkgs's generic-builder, etc. - sed -i 's/libSubDir = "lib"/libSubDir = "lib\/ghcjs-${version}"/' src-bin/Boot.hs - sed -i 's@let libDir = takeDirectory haddockPath ".." "lib"@let libDir = takeDirectory haddockPath ".." "lib/ghcjs-${version}"@' src-bin/HaddockDriver.hs - - patchShebangs . - ./utils/makePackages.sh copy - '' diff --git a/pkgs/development/compilers/ghcjs/8.10/default.nix b/pkgs/development/compilers/ghcjs/8.10/default.nix deleted file mode 100644 index a060e8e9d5c6..000000000000 --- a/pkgs/development/compilers/ghcjs/8.10/default.nix +++ /dev/null @@ -1,144 +0,0 @@ -{ - stdenv, - pkgsHostHost, - callPackage, - fetchgit, - fetchpatch, - ghcjsSrcJson ? null, - ghcjsSrc ? fetchgit (lib.importJSON ghcjsSrcJson), - bootPkgs, - stage0, - haskellLib, - cabal-install, - nodejs, - makeWrapper, - xorg, - gmp, - pkg-config, - gcc, - lib, - ghcjsDepOverrides ? (_: _: { }), - linkFarm, - buildPackages, -}: - -let - passthru = { - configuredSrc = callPackage ./configured-ghcjs-src.nix { - inherit ghcjsSrc; - inherit (bootPkgs) ghc alex; - inherit (bootGhcjs) version; - happy = bootPkgs.happy_1_19_12; - }; - bootPkgs = bootPkgs.extend ( - lib.foldr lib.composeExtensions (_: _: { }) [ - ( - self: _: - import stage0 { - inherit (passthru) configuredSrc; - inherit (self) callPackage; - } - ) - - (callPackage ./common-overrides.nix { - inherit haskellLib fetchpatch buildPackages; - }) - ghcjsDepOverrides - ] - ); - - targetPrefix = ""; - inherit bootGhcjs; - inherit (bootGhcjs) version; - isGhcjs = true; - - llvmPackages = null; - enableShared = true; - - socket-io = pkgsHostHost.nodePackages."socket.io"; - - haskellCompilerName = "ghcjs-${bootGhcjs.version}"; - }; - - bootGhcjs = haskellLib.justStaticExecutables passthru.bootPkgs.ghcjs; - - # This provides the stuff we need from the emsdk - emsdk = linkFarm "emsdk" [ - { - name = "upstream/bin"; - path = buildPackages.clang + "/bin"; - } - { - name = "upstream/emscripten"; - path = buildPackages.emscripten + "/bin"; - } - ]; - -in -stdenv.mkDerivation { - name = bootGhcjs.name; - src = passthru.configuredSrc; - nativeBuildInputs = [ - bootGhcjs - passthru.bootPkgs.ghc - cabal-install - nodejs - makeWrapper - xorg.lndir - gmp - pkg-config - ] - ++ lib.optionals stdenv.hostPlatform.isDarwin [ - gcc # https://github.com/ghcjs/ghcjs/issues/663 - ]; - dontConfigure = true; - dontInstall = true; - - # Newer versions of `config.sub` reject the `js-ghcjs` host string, but the - # older `config.sub` filed vendored within `ghc` still works - dontUpdateAutotoolsGnuConfigScripts = true; - - buildPhase = '' - export HOME=$TMP - mkdir $HOME/.cabal - touch $HOME/.cabal/config - cd lib/boot - - export EM_CACHE="$HOME/.emscriptencache" - mkdir -p "$EM_CACHE" - - mkdir -p $out/bin - mkdir -p $out/lib/${bootGhcjs.name} - lndir ${bootGhcjs}/bin $out/bin - chmod -R +w $out/bin - rm $out/bin/ghcjs-boot - cp ${bootGhcjs}/bin/ghcjs-boot $out/bin - rm $out/bin/haddock - cp ${bootGhcjs}/bin/haddock $out/bin - cp ${bootGhcjs}/bin/private-ghcjs-hsc2hs $out/bin/ghcjs-hsc2hs - - wrapProgram $out/bin/ghcjs-boot --set ghcjs_libexecdir $out/bin - - wrapProgram $out/bin/ghcjs --add-flags "-B$out/lib/${bootGhcjs.name}" - wrapProgram $out/bin/haddock --add-flags "-B$out/lib/${bootGhcjs.name}" - wrapProgram $out/bin/ghcjs-pkg --add-flags "--global-package-db=$out/lib/${bootGhcjs.name}/package.conf.d" - wrapProgram $out/bin/ghcjs-hsc2hs --add-flags "-I$out/lib/${bootGhcjs.name}/include --template=$out/lib/${bootGhcjs.name}/include/template-hsc.h" - - env PATH=$out/bin:$PATH $out/bin/ghcjs-boot --with-emsdk=${emsdk} --no-haddock - ''; - - enableParallelBuilding = true; - - inherit passthru; - - meta = { - platforms = with lib.platforms; linux ++ darwin; - - # Hydra limits jobs to only outputting 1 gigabyte worth of files. - # GHCJS outputs over 3 gigabytes. - # https://github.com/NixOS/nixpkgs/pull/137066#issuecomment-922335563 - hydraPlatforms = lib.platforms.none; - - maintainers = with lib.maintainers; [ obsidian-systems-maintenance ]; - }; -} diff --git a/pkgs/development/compilers/ghcjs/8.10/generate_host_version.hs b/pkgs/development/compilers/ghcjs/8.10/generate_host_version.hs deleted file mode 100644 index 8bf2583d238c..000000000000 --- a/pkgs/development/compilers/ghcjs/8.10/generate_host_version.hs +++ /dev/null @@ -1,54 +0,0 @@ --- Generate the Host.hs and Version.hs as done by hadrian/src/Rules/Generate.hs - -import GHC.Platform.Host -import GHC.Version - -main = do - writeFile "Version.hs" versionHs - writeFile "Host.hs" platformHostHs - --- | Generate @Version.hs@ files. -versionHs :: String -versionHs = unlines - [ "module GHC.Version where" - , "" - , "import Prelude -- See Note [Why do we import Prelude here?]" - , "" - , "cProjectGitCommitId :: String" - , "cProjectGitCommitId = " ++ show cProjectGitCommitId - , "" - , "cProjectVersion :: String" - , "cProjectVersion = " ++ show cProjectVersion - , "" - , "cProjectVersionInt :: String" - , "cProjectVersionInt = " ++ show cProjectVersionInt - , "" - , "cProjectPatchLevel :: String" - , "cProjectPatchLevel = " ++ show cProjectPatchLevel - , "" - , "cProjectPatchLevel1 :: String" - , "cProjectPatchLevel1 = " ++ show cProjectPatchLevel1 - , "" - , "cProjectPatchLevel2 :: String" - , "cProjectPatchLevel2 = " ++ show cProjectPatchLevel2 - ] - --- | Generate @Platform/Host.hs@ files. -platformHostHs :: String -platformHostHs = unlines - [ "module GHC.Platform.Host where" - , "" - , "import GHC.Platform" - , "" - , "cHostPlatformArch :: Arch" - , "cHostPlatformArch = " ++ show cHostPlatformArch - , "" - , "cHostPlatformOS :: OS" - , "cHostPlatformOS = " ++ show cHostPlatformOS - , "" - , "cHostPlatformMini :: PlatformMini" - , "cHostPlatformMini = PlatformMini" - , " { platformMini_arch = cHostPlatformArch" - , " , platformMini_os = cHostPlatformOS" - , " }" - ] diff --git a/pkgs/development/compilers/ghcjs/8.10/git.json b/pkgs/development/compilers/ghcjs/8.10/git.json deleted file mode 100644 index 18804d84acb1..000000000000 --- a/pkgs/development/compilers/ghcjs/8.10/git.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "url": "https://github.com/obsidiansystems/ghcjs", - "rev": "9fc935f2c3ba6c33ec62eb83afc9f52a893eb68c", - "sha256": "sha256:063dmir39c4i1z8ypnmq86g1x2vhqndmdpzc4hyzsy5jjqcbx6i3", - "fetchSubmodules": true -} diff --git a/pkgs/development/compilers/ghcjs/8.10/stage0.nix b/pkgs/development/compilers/ghcjs/8.10/stage0.nix deleted file mode 100644 index 30c89a1b2e19..000000000000 --- a/pkgs/development/compilers/ghcjs/8.10/stage0.nix +++ /dev/null @@ -1,245 +0,0 @@ -{ callPackage, configuredSrc }: - -{ - - ghcjs = callPackage ( - { - mkDerivation, - aeson, - alex, - array, - attoparsec, - base, - base16-bytestring, - base64-bytestring, - binary, - bytestring, - Cabal, - containers, - cryptohash, - data-default, - deepseq, - directory, - executable-path, - filepath, - ghc-boot, - ghc-boot-th, - ghc-compact, - ghc-heap, - ghc-paths, - ghci, - happy, - hashable, - hpc, - http-types, - HUnit, - lens, - lib, - lifted-base, - mtl, - network, - optparse-applicative, - parallel, - parsec, - process, - random, - safe, - shelly, - split, - stringsearch, - syb, - tar, - template-haskell, - terminfo, - test-framework, - test-framework-hunit, - text, - time, - transformers, - unix, - unix-compat, - unordered-containers, - vector, - wai, - wai-app-static, - wai-extra, - wai-websockets, - warp, - webdriver, - websockets, - wl-pprint-text, - xhtml, - yaml, - }: - mkDerivation { - pname = "ghcjs"; - version = "8.10.7"; - src = configuredSrc + /.; - isLibrary = true; - isExecutable = true; - libraryHaskellDepends = [ - aeson - array - attoparsec - base - base16-bytestring - base64-bytestring - binary - bytestring - Cabal - containers - cryptohash - data-default - deepseq - directory - filepath - ghc-boot - ghc-boot-th - ghc-compact - ghc-heap - ghc-paths - ghci - hashable - hpc - lens - mtl - optparse-applicative - parallel - parsec - process - safe - split - stringsearch - syb - template-haskell - terminfo - text - time - transformers - unix - unordered-containers - vector - wl-pprint-text - yaml - ]; - libraryToolDepends = [ - alex - happy - ]; - executableHaskellDepends = [ - aeson - array - base - binary - bytestring - Cabal - containers - deepseq - directory - executable-path - filepath - ghc-boot - lens - mtl - optparse-applicative - parsec - process - tar - terminfo - text - time - transformers - unix - unix-compat - unordered-containers - vector - xhtml - yaml - ]; - testHaskellDepends = [ - aeson - base - bytestring - data-default - deepseq - directory - filepath - http-types - HUnit - lens - lifted-base - network - optparse-applicative - process - random - shelly - test-framework - test-framework-hunit - text - time - transformers - unordered-containers - wai - wai-app-static - wai-extra - wai-websockets - warp - webdriver - websockets - yaml - ]; - description = "Haskell to JavaScript compiler"; - license = lib.licenses.mit; - } - ) { }; - - ghcjs-th = callPackage ( - { - mkDerivation, - base, - binary, - bytestring, - containers, - ghc-prim, - ghci, - lib, - template-haskell, - }: - mkDerivation { - pname = "ghcjs-th"; - version = "0.1.0.0"; - src = configuredSrc + /lib/ghcjs-th; - libraryHaskellDepends = [ - base - binary - bytestring - containers - ghc-prim - ghci - template-haskell - ]; - homepage = "https://github.com/ghcjs"; - license = lib.licenses.mit; - } - ) { }; - - ghcjs-prim = callPackage ( - { - mkDerivation, - base, - ghc-prim, - lib, - }: - mkDerivation { - pname = "ghcjs-prim"; - version = "0.1.1.0"; - src = ./.; - libraryHaskellDepends = [ - base - ghc-prim - ]; - homepage = "https://github.com/ghcjs"; - license = lib.licenses.mit; - } - ) { }; -} diff --git a/pkgs/development/compilers/ghcjs/ghcjs-base.nix b/pkgs/development/compilers/ghcjs/ghcjs-base.nix deleted file mode 100644 index bb57c0beefca..000000000000 --- a/pkgs/development/compilers/ghcjs/ghcjs-base.nix +++ /dev/null @@ -1,87 +0,0 @@ -{ - mkDerivation, - aeson, - array, - attoparsec, - base, - binary, - bytestring, - containers, - deepseq, - directory, - dlist, - fetchFromGitHub, - ghc-prim, - ghcjs-prim, - hashable, - HUnit, - integer-gmp, - primitive, - QuickCheck, - quickcheck-unicode, - random, - scientific, - test-framework, - test-framework-hunit, - test-framework-quickcheck2, - text, - time, - transformers, - unordered-containers, - vector, - lib, -}: -mkDerivation { - pname = "ghcjs-base"; - version = "0.2.1.0"; - # This is the release 0.2.1.0, but the hackage release misses test source files, - # so lets use github https://github.com/ghcjs/ghcjs-base/issues/132 - src = fetchFromGitHub { - owner = "ghcjs"; - repo = "ghcjs-base"; - rev = "fbaae59b05b020e91783df122249095e168df53f"; - sha256 = "sha256-x6eCAK1Hne0QkV3Loi9YpxbleNHU593E4AO8cbk2vUc="; - }; - libraryHaskellDepends = [ - aeson - attoparsec - base - binary - bytestring - containers - deepseq - dlist - ghc-prim - ghcjs-prim - hashable - integer-gmp - primitive - scientific - text - time - transformers - unordered-containers - vector - ]; - testHaskellDepends = [ - array - base - bytestring - deepseq - directory - ghc-prim - ghcjs-prim - HUnit - primitive - QuickCheck - quickcheck-unicode - random - test-framework - test-framework-hunit - test-framework-quickcheck2 - text - ]; - homepage = "https://github.com/ghcjs/ghcjs-base"; - description = "base library for GHCJS"; - license = lib.licenses.mit; -} diff --git a/pkgs/development/haskell-modules/configuration-arm.nix b/pkgs/development/haskell-modules/configuration-arm.nix index 9b12e09880b8..6e3fb04d8ec1 100644 --- a/pkgs/development/haskell-modules/configuration-arm.nix +++ b/pkgs/development/haskell-modules/configuration-arm.nix @@ -37,7 +37,6 @@ self: super: # Similar to https://ghc.haskell.org/trac/ghc/ticket/13062 happy = dontCheck super.happy; - happy_1_19_12 = doDistribute (dontCheck super.happy_1_19_12); # add arm specific library wiringPi = overrideCabal ( diff --git a/pkgs/development/haskell-modules/configuration-common.nix b/pkgs/development/haskell-modules/configuration-common.nix index 35172aa12edd..87e0ba9d7008 100644 --- a/pkgs/development/haskell-modules/configuration-common.nix +++ b/pkgs/development/haskell-modules/configuration-common.nix @@ -1831,16 +1831,6 @@ with haskellLib; # https://github.com/biocad/servant-openapi3/issues/30 servant-openapi3 = dontCheck super.servant-openapi3; - # Point hspec 2.7.10 to correct dependencies - hspec_2_7_10 = super.hspec_2_7_10.override { - hspec-discover = self.hspec-discover_2_7_10; - hspec-core = self.hspec-core_2_7_10; - }; - hspec-discover_2_7_10 = super.hspec-discover_2_7_10.override { - hspec-meta = self.hspec-meta_2_7_8; - }; - hspec-core_2_7_10 = doJailbreak (dontCheck super.hspec-core_2_7_10); - # Disable test cases that were broken by insignificant changes in icu 76 # https://github.com/haskell/text-icu/issues/108 text-icu = overrideCabal (drv: { diff --git a/pkgs/development/haskell-modules/configuration-ghc-8.10.x.nix b/pkgs/development/haskell-modules/configuration-ghc-8.10.x.nix index 38f53d3e04c9..f39c3ce90488 100644 --- a/pkgs/development/haskell-modules/configuration-ghc-8.10.x.nix +++ b/pkgs/development/haskell-modules/configuration-ghc-8.10.x.nix @@ -8,10 +8,7 @@ let in self: super: { - - # ghcjs does not use `llvmPackages` and exposes `null` attribute. - llvmPackages = - if self.ghc.llvmPackages != null then pkgs.lib.dontRecurseIntoAttrs self.ghc.llvmPackages else null; + llvmPackages = pkgs.lib.dontRecurseIntoAttrs self.ghc.llvmPackages; # Disable GHC 8.10.x core libraries. array = null; diff --git a/pkgs/development/haskell-modules/configuration-ghcjs-8.x.nix b/pkgs/development/haskell-modules/configuration-ghcjs-8.x.nix deleted file mode 100644 index 56776f094cb9..000000000000 --- a/pkgs/development/haskell-modules/configuration-ghcjs-8.x.nix +++ /dev/null @@ -1,154 +0,0 @@ -# GHCJS package fixes -# -# Please insert new packages *alphabetically* -# in the OTHER PACKAGES section. -{ pkgs, haskellLib }: - -let - removeLibraryHaskellDepends = - pnames: depends: builtins.filter (e: !(builtins.elem (e.pname or "") pnames)) depends; -in - -with haskellLib; - -self: super: - -## GENERAL SETUP BASE PACKAGES -{ - inherit (self.ghc.bootPkgs) - jailbreak-cabal - alex - happy - gtk2hs-buildtools - rehoo - hoogle - ; - - # Test suite fails; https://github.com/ghcjs/ghcjs-base/issues/133 - ghcjs-base = dontCheck ( - self.callPackage ../compilers/ghcjs/ghcjs-base.nix { - fetchFromGitHub = pkgs.buildPackages.fetchFromGitHub; - aeson = self.aeson_1_5_6_0; - } - ); - - # Included in ghcjs itself - ghcjs-prim = null; - - ghcjs-websockets = markUnbroken super.ghcjs-websockets; - - # GHCJS does not ship with the same core packages as GHC. - # https://github.com/ghcjs/ghcjs/issues/676 - stm = doJailbreak self.stm_2_5_3_1; - exceptions = dontCheck self.exceptions_0_10_10; - - ## OTHER PACKAGES - - # Runtime exception in tests, missing C API h$realloc - base-compat-batteries = dontCheck super.base-compat-batteries; - - # nodejs crashes during test - ChasingBottoms = dontCheck super.ChasingBottoms; - - # runs forever - text-short = dontCheck super.text-short; - - # doctest doesn't work on ghcjs, but sometimes dontCheck doesn't seem to get rid of the dependency - doctest = pkgs.lib.warn "ignoring dependency on doctest" null; - - ghcjs-dom = overrideCabal (drv: { - libraryHaskellDepends = with self; [ - ghcjs-base - ghcjs-dom-jsffi - text - transformers - ]; - configureFlags = [ - "-fjsffi" - "-f-webkit" - ]; - }) super.ghcjs-dom; - - ghcjs-dom-jsffi = overrideCabal (drv: { - libraryHaskellDepends = (drv.libraryHaskellDepends or [ ]) ++ [ - self.ghcjs-base - self.text - ]; - broken = false; - }) super.ghcjs-dom-jsffi; - - # https://github.com/Deewiant/glob/issues/39 - Glob = dontCheck super.Glob; - - # Test fails to compile during the hsc2hs stage - hashable = dontCheck super.hashable; - - # uses doctest - http-types = dontCheck super.http-types; - - jsaddle = overrideCabal (drv: { - libraryHaskellDepends = (drv.libraryHaskellDepends or [ ]) ++ [ self.ghcjs-base ]; - }) super.jsaddle; - - # Tests hang, possibly some issue with tasty and race(async) usage in the nonTerminating tests - logict = dontCheck super.logict; - - patch = dontCheck super.patch; - - # TODO: tests hang - pcre-light = dontCheck super.pcre-light; - - # Terminal test not supported on ghcjs - QuickCheck = dontCheck super.QuickCheck; - - reflex = overrideCabal (drv: { - libraryHaskellDepends = (drv.libraryHaskellDepends or [ ]) ++ [ self.ghcjs-base ]; - }) super.reflex; - - reflex-dom = overrideCabal (drv: { - libraryHaskellDepends = removeLibraryHaskellDepends [ "jsaddle-webkit2gtk" ] ( - drv.libraryHaskellDepends or [ ] - ); - }) super.reflex-dom; - - # https://github.com/dreixel/syb/issues/21 - syb = dontCheck super.syb; - - # nodejs crashes during test - scientific = dontCheck super.scientific; - - # Tests use TH which gives error - tasty-quickcheck = dontCheck super.tasty-quickcheck; - - temporary = dontCheck super.temporary; - - # TODO: The tests have a TH error, which has been fixed in ghc - # https://gitlab.haskell.org/ghc/ghc/-/issues/15481 but somehow the issue is - # still present here https://github.com/glguy/th-abstraction/issues/53 - th-abstraction = dontCheck super.th-abstraction; - - # Need hedgehog for tests, which fails to compile due to dep on concurrent-output - zenc = dontCheck super.zenc; - - hspec = self.hspec_2_7_10; - hspec-core = self.hspec-core_2_7_10; - hspec-meta = self.hspec-meta_2_7_8; - hspec-discover = self.hspec-discover_2_7_10; - - # ReferenceError: h$primop_ShrinkSmallMutableArrayOp_Char is not defined - unordered-containers = dontCheck super.unordered-containers; - - # Without this revert, test suites using tasty fail with: - # ReferenceError: h$getMonotonicNSec is not defined - # https://github.com/UnkindPartition/tasty/pull/345#issuecomment-1538216407 - tasty = appendPatch (pkgs.fetchpatch { - name = "tasty-ghcjs.patch"; - url = "https://github.com/UnkindPartition/tasty/commit/e692065642fd09b82acccea610ad8f49edd207df.patch"; - revert = true; - relative = "core"; - hash = "sha256-ryABU2ywkVOEPC/jWv8humT3HaRpCwMYEk+Ux3hhi/M="; - }) super.tasty; - - # Tests take unacceptably long. - vector = dontCheck super.vector; -} diff --git a/pkgs/development/haskell-modules/configuration-hackage2nix/main.yaml b/pkgs/development/haskell-modules/configuration-hackage2nix/main.yaml index f65507959f90..460a905c9bec 100644 --- a/pkgs/development/haskell-modules/configuration-hackage2nix/main.yaml +++ b/pkgs/development/haskell-modules/configuration-hackage2nix/main.yaml @@ -45,12 +45,8 @@ default-package-overrides: # keep-sorted start skip_lines=1 case=no numeric=yes extra-packages: - - aeson < 2 # required by pantry-0.5.2 - algebraic-graphs < 0.7 # 2023-08-14: Needed for building weeder < 2.6.0 - - ansi-terminal < 1.1 # 2025-02-27: required for ghcjs - - ansi-terminal-types == 0.11.5 # 2025-02-27: required for ghcjs - - ansi-wl-pprint >= 0.6 && < 0.7 # 2024-03-23: required for ghcjs - - apply-refact == 0.9.* # 2022-12-12: needed for GHC < 9.2 + - ansi-wl-pprint >= 0.6 && < 0.7 # 2025-07-07: used by gren <= 0.5.4 - attoparsec == 0.13.* # 2022-02-23: Needed to compile elm for now - Cabal == 3.2.* # Used for packages needing newer Cabal on ghc 8.6 and 8.8 - Cabal == 3.10.* @@ -85,7 +81,6 @@ extra-packages: - ghc-tags == 1.5.* # 2023-02-18: preserve for ghc-lib == 9.2.* - ghc-tags == 1.7.* # 2023-02-18: preserve for ghc-lib == 9.6.* - ghc-tags == 1.8.* # 2023-02-18: preserve for ghc-lib == 9.8.* - - happy == 1.19.12 # for ghcjs - happy == 1.20.* # for ghc-lib-parser == 9.6.* - hasql < 1.7 # 2025-01-19: Needed for building postgrest - hasql-dynamic-statements < 0.3.1.6 # 2025-01-19: Needed for building postgrest @@ -96,17 +91,12 @@ extra-packages: - hlint == 3.4.1 # 2022-09-21: preserve for ghc 8.10 - hlint == 3.6.* # 2025-04-14: needed for hls with ghc-lib-parser 9.6 - hnix-store-core < 0.7 # 2023-12-11: required by hnix-store-remote 0.6 - - hspec < 2.8 # 2022-04-07: Needed for tasty-hspec 1.1.6 - - hspec-core < 2.8 # 2022-04-07: Needed for tasty-hspec 1.1.6 - - hspec-discover < 2.8 # 2022-04-07: Needed for tasty-hspec 1.1.6 - hspec-megaparsec == 2.2.0 # 2023-11-18: Latest version compatible with ghc 9.0 - - hspec-meta < 2.8 # 2022-12-07: Needed for elmPackages.elm / hspec-discover - language-javascript == 0.7.0.0 # required by purescript - lsp < 2.5 # 2024-07-08: need for koka - lsp == 2.1.* # 2024-02-28: need for dhall-lsp-server - lsp-types == 2.1.* # 2024-02-28: need for dhall-lsp-server and koka - network-run == 0.4.0 # 2024-10-20: for GHC 9.10/network == 3.1.* - - optparse-applicative < 0.16 # needed for niv-0.2.19 - ormolu == 0.5.2.0 # 2023-08-08: preserve for ghc 9.0 - ormolu == 0.7.2.0 # 2023-11-13: for ghc-lib-parser 9.6 compat - ormolu == 0.7.7.0 # 2025-01-27: for ghc 9.10 compat diff --git a/pkgs/development/haskell-modules/configuration-nix.nix b/pkgs/development/haskell-modules/configuration-nix.nix index 263457fb312b..73ed3fb95351 100644 --- a/pkgs/development/haskell-modules/configuration-nix.nix +++ b/pkgs/development/haskell-modules/configuration-nix.nix @@ -635,15 +635,9 @@ builtins.intersectAttrs super { tasty = overrideCabal (drv: { libraryHaskellDepends = (drv.libraryHaskellDepends or [ ]) - ++ - lib.optionals - ( - !(pkgs.stdenv.hostPlatform.isAarch64 || pkgs.stdenv.hostPlatform.isx86_64) - || (self.ghc.isGhcjs or false) - ) - [ - self.unbounded-delays - ]; + ++ lib.optionals (!(pkgs.stdenv.hostPlatform.isAarch64 || pkgs.stdenv.hostPlatform.isx86_64)) [ + self.unbounded-delays + ]; }) super.tasty; tasty-discover = overrideCabal (drv: { diff --git a/pkgs/development/haskell-modules/hackage-packages.nix b/pkgs/development/haskell-modules/hackage-packages.nix index 0257dfb1bcb3..cf1425692db5 100644 --- a/pkgs/development/haskell-modules/hackage-packages.nix +++ b/pkgs/development/haskell-modules/hackage-packages.nix @@ -53573,121 +53573,6 @@ self: { } ) { }; - "aeson_1_5_6_0" = callPackage ( - { - mkDerivation, - attoparsec, - base, - base-compat, - base-compat-batteries, - base-orphans, - base16-bytestring, - bytestring, - containers, - data-fix, - deepseq, - Diff, - directory, - dlist, - filepath, - generic-deriving, - ghc-prim, - hashable, - hashable-time, - integer-logarithms, - primitive, - QuickCheck, - quickcheck-instances, - scientific, - strict, - tagged, - tasty, - tasty-golden, - tasty-hunit, - tasty-quickcheck, - template-haskell, - text, - th-abstraction, - these, - time, - time-compat, - unordered-containers, - uuid-types, - vector, - }: - mkDerivation { - pname = "aeson"; - version = "1.5.6.0"; - sha256 = "1s5z4bgb5150h6a4cjf5vh8dmyrn6ilh29gh05999v6jwd5w6q83"; - revision = "7"; - editedCabalFile = "1qbsyy605hlfh7wfj3q33yx0xmb4n81z6h0y99x7khyxmy0plqbf"; - libraryHaskellDepends = [ - attoparsec - base - base-compat-batteries - bytestring - containers - data-fix - deepseq - dlist - ghc-prim - hashable - primitive - scientific - strict - tagged - template-haskell - text - th-abstraction - these - time - time-compat - unordered-containers - uuid-types - vector - ]; - testHaskellDepends = [ - attoparsec - base - base-compat - base-orphans - base16-bytestring - bytestring - containers - data-fix - Diff - directory - dlist - filepath - generic-deriving - ghc-prim - hashable - hashable-time - integer-logarithms - QuickCheck - quickcheck-instances - scientific - strict - tagged - tasty - tasty-golden - tasty-hunit - tasty-quickcheck - template-haskell - text - these - time - time-compat - unordered-containers - uuid-types - vector - ]; - description = "Fast JSON parsing and encoding"; - license = lib.licenses.bsd3; - hydraPlatforms = lib.platforms.none; - } - ) { }; - "aeson" = callPackage ( { mkDerivation, @@ -76649,30 +76534,6 @@ self: { } ) { }; - "ansi-terminal_1_0_2" = callPackage ( - { - mkDerivation, - ansi-terminal-types, - base, - colour, - }: - mkDerivation { - pname = "ansi-terminal"; - version = "1.0.2"; - sha256 = "0d6qm3ph6drim7g81yx46nmgspxsf4nnr2d91fa0fy3cyv5idra6"; - isLibrary = true; - isExecutable = true; - libraryHaskellDepends = [ - ansi-terminal-types - base - colour - ]; - description = "Simple ANSI terminal support"; - license = lib.licenses.bsd3; - hydraPlatforms = lib.platforms.none; - } - ) { }; - "ansi-terminal" = callPackage ( { mkDerivation, @@ -76778,28 +76639,6 @@ self: { } ) { }; - "ansi-terminal-types_0_11_5" = callPackage ( - { - mkDerivation, - base, - colour, - }: - mkDerivation { - pname = "ansi-terminal-types"; - version = "0.11.5"; - sha256 = "1lgxnhnzgk4mwlnh8zdgx8w8pa4q4n140mvd1880acgli41j6yxz"; - revision = "1"; - editedCabalFile = "02mhl78kmjfa0h22khcjdaaxyvanv717rb2mi3l0jiawv7gl117p"; - libraryHaskellDepends = [ - base - colour - ]; - description = "Types and functions used to represent SGR aspects"; - license = lib.licenses.bsd3; - hydraPlatforms = lib.platforms.none; - } - ) { }; - "ansi-terminal-types" = callPackage ( { mkDerivation, @@ -80800,101 +80639,6 @@ self: { } ) { }; - "apply-refact_0_9_3_0" = callPackage ( - { - mkDerivation, - base, - containers, - directory, - extra, - filemanip, - filepath, - ghc, - ghc-boot-th, - ghc-exactprint, - optparse-applicative, - process, - refact, - silently, - syb, - tasty, - tasty-expected-failure, - tasty-golden, - transformers, - uniplate, - unix-compat, - }: - mkDerivation { - pname = "apply-refact"; - version = "0.9.3.0"; - sha256 = "1sn5g71sx8xa4ggyk49m661iip6zrzl65vb87l16l31kf79bbm7w"; - revision = "1"; - editedCabalFile = "0hgdjm6ydfc29d922h1cpwrch61r5qchzrw21dz80kdry53qxl5q"; - isLibrary = true; - isExecutable = true; - libraryHaskellDepends = [ - base - containers - directory - extra - filemanip - ghc - ghc-boot-th - ghc-exactprint - process - refact - syb - transformers - uniplate - unix-compat - ]; - executableHaskellDepends = [ - base - containers - directory - extra - filemanip - filepath - ghc - ghc-boot-th - ghc-exactprint - optparse-applicative - process - refact - syb - transformers - uniplate - unix-compat - ]; - testHaskellDepends = [ - base - containers - directory - extra - filemanip - filepath - ghc - ghc-boot-th - ghc-exactprint - optparse-applicative - process - refact - silently - syb - tasty - tasty-expected-failure - tasty-golden - transformers - uniplate - unix-compat - ]; - description = "Perform refactorings specified by the refact library"; - license = lib.licenses.bsd3; - hydraPlatforms = lib.platforms.none; - mainProgram = "refactor"; - } - ) { }; - "apply-refact" = callPackage ( { mkDerivation, @@ -297969,41 +297713,6 @@ self: { } ) { }; - "happy_1_19_12" = callPackage ( - { - mkDerivation, - array, - base, - containers, - mtl, - process, - }: - mkDerivation { - pname = "happy"; - version = "1.19.12"; - sha256 = "03xlmq6qmdx4zvzw8bp33kd9g7yvcq5cz4wg50xilw812kj276pv"; - revision = "1"; - editedCabalFile = "13wydw1mmdry4l9r63vxjk4h55ci9hgwzn1a842qqk1m2rb4xiln"; - isLibrary = false; - isExecutable = true; - enableSeparateDataOutput = true; - executableHaskellDepends = [ - array - base - containers - mtl - ]; - testHaskellDepends = [ - base - process - ]; - description = "Happy is a parser generator for Haskell"; - license = lib.licenses.bsd2; - hydraPlatforms = lib.platforms.none; - mainProgram = "happy"; - } - ) { }; - "happy_1_20_1_1" = callPackage ( { mkDerivation, @@ -355226,32 +354935,6 @@ self: { } ) { }; - "hspec_2_7_10" = callPackage ( - { - mkDerivation, - base, - hspec-core, - hspec-discover, - hspec-expectations, - QuickCheck, - }: - mkDerivation { - pname = "hspec"; - version = "2.7.10"; - sha256 = "0z0lwrmrqkglr78n6k2c36n4h68142bh785ys0x4jaibjshvs6rw"; - libraryHaskellDepends = [ - base - hspec-core - hspec-discover - hspec-expectations - QuickCheck - ]; - description = "A Testing Framework for Haskell"; - license = lib.licenses.mit; - hydraPlatforms = lib.platforms.none; - } - ) { }; - "hspec" = callPackage ( { mkDerivation, @@ -355448,90 +355131,6 @@ self: { } ) { }; - "hspec-core_2_7_10" = callPackage ( - { - mkDerivation, - ansi-terminal, - array, - base, - call-stack, - clock, - deepseq, - directory, - filepath, - hspec-expectations, - hspec-meta, - HUnit, - process, - QuickCheck, - quickcheck-io, - random, - setenv, - silently, - stm, - temporary, - tf-random, - transformers, - }: - mkDerivation { - pname = "hspec-core"; - version = "2.7.10"; - sha256 = "12k9yp5gznrda449ir60d5wv3xl7nnyffkb5mhfc0svw9f8lxlv1"; - revision = "2"; - editedCabalFile = "0l16mgxgapnihrvbwvhbz9i60v5fx68mhpv6zww9b68bdj6cpbsk"; - libraryHaskellDepends = [ - ansi-terminal - array - base - call-stack - clock - deepseq - directory - filepath - hspec-expectations - HUnit - QuickCheck - quickcheck-io - random - setenv - stm - tf-random - transformers - ]; - testHaskellDepends = [ - ansi-terminal - array - base - call-stack - clock - deepseq - directory - filepath - hspec-expectations - hspec-meta - HUnit - process - QuickCheck - quickcheck-io - random - setenv - silently - stm - temporary - tf-random - transformers - ]; - testToolDepends = [ hspec-meta ]; - testFlags = [ - "--skip" - "'Test.Hspec.Core.Runner.hspecResult runs specs in parallel'" - ]; - description = "A Testing Framework for Haskell"; - license = lib.licenses.mit; - hydraPlatforms = lib.platforms.none; - } - ) { }; - "hspec-core" = callPackage ( { mkDerivation, @@ -355662,47 +355261,6 @@ self: { } ) { }; - "hspec-discover_2_7_10" = callPackage ( - { - mkDerivation, - base, - directory, - filepath, - hspec-meta, - QuickCheck, - }: - mkDerivation { - pname = "hspec-discover"; - version = "2.7.10"; - sha256 = "13yzvd3b679skvs1insk4s0wc4zvmz6hs38kc8q0j6vzqq06smqa"; - isLibrary = true; - isExecutable = true; - libraryHaskellDepends = [ - base - directory - filepath - ]; - executableHaskellDepends = [ - base - directory - filepath - ]; - testHaskellDepends = [ - base - directory - filepath - hspec-meta - QuickCheck - ]; - testToolDepends = [ hspec-meta ]; - description = "Automatically discover and run Hspec tests"; - license = lib.licenses.mit; - hydraPlatforms = lib.platforms.none; - mainProgram = "hspec-discover"; - maintainers = [ lib.maintainers.maralorn ]; - } - ) { }; - "hspec-discover" = callPackage ( { mkDerivation, @@ -356400,72 +355958,6 @@ self: { } ) { }; - "hspec-meta_2_7_8" = callPackage ( - { - mkDerivation, - ansi-terminal, - array, - base, - call-stack, - clock, - deepseq, - directory, - filepath, - QuickCheck, - quickcheck-io, - random, - setenv, - stm, - time, - transformers, - }: - mkDerivation { - pname = "hspec-meta"; - version = "2.7.8"; - sha256 = "0sfj0n2hy1r8ifysgbcmfdygcd7vyzr13ldkcp0l2ml337f8j0si"; - isLibrary = true; - isExecutable = true; - libraryHaskellDepends = [ - ansi-terminal - array - base - call-stack - clock - deepseq - directory - filepath - QuickCheck - quickcheck-io - random - setenv - stm - time - transformers - ]; - executableHaskellDepends = [ - ansi-terminal - array - base - call-stack - clock - deepseq - directory - filepath - QuickCheck - quickcheck-io - random - setenv - stm - time - transformers - ]; - description = "A version of Hspec which is used to test Hspec itself"; - license = lib.licenses.mit; - hydraPlatforms = lib.platforms.none; - mainProgram = "hspec-meta-discover"; - } - ) { }; - "hspec-meta" = callPackage ( { mkDerivation, @@ -495263,41 +494755,6 @@ self: { } ) { }; - "optparse-applicative_0_15_1_0" = callPackage ( - { - mkDerivation, - ansi-wl-pprint, - base, - bytestring, - process, - QuickCheck, - transformers, - transformers-compat, - }: - mkDerivation { - pname = "optparse-applicative"; - version = "0.15.1.0"; - sha256 = "1ws6y3b3f6hsgv0ff0yp6lw4hba1rps4dnvry3yllng0s5gngcsd"; - revision = "1"; - editedCabalFile = "0zmhqkd96v2z1ilhqdkd9z4jgsnsxb8yi2479ind8m5zm9363zr9"; - libraryHaskellDepends = [ - ansi-wl-pprint - base - process - transformers - transformers-compat - ]; - testHaskellDepends = [ - base - bytestring - QuickCheck - ]; - description = "Utilities and combinators for parsing command line options"; - license = lib.licenses.bsd3; - hydraPlatforms = lib.platforms.none; - } - ) { }; - "optparse-applicative" = callPackage ( { mkDerivation, diff --git a/pkgs/top-level/haskell-packages.nix b/pkgs/top-level/haskell-packages.nix index 38a85aa064f1..b4f399174aa2 100644 --- a/pkgs/top-level/haskell-packages.nix +++ b/pkgs/top-level/haskell-packages.nix @@ -5,6 +5,7 @@ pkgs, newScope, stdenv, + config, }: let @@ -25,9 +26,6 @@ let "ghc924Binary" "ghc963Binary" "ghc984Binary" - # ghcjs - "ghcjs" - "ghcjs810" ]; haskellLibUncomposable = import ../development/haskell-modules/lib { @@ -460,13 +458,6 @@ in llvmPackages = pkgs.llvmPackages_18; }; - ghcjs = compiler.ghcjs810; - ghcjs810 = callPackage ../development/compilers/ghcjs/8.10 { - bootPkgs = bb.packages.ghc810; - ghcjsSrcJson = ../development/compilers/ghcjs/8.10/git.json; - stage0 = ../development/compilers/ghcjs/8.10/stage0.nix; - }; - # The integer-simple attribute set contains all the GHC compilers # build with integer-simple instead of integer-gmp. integer-simple = @@ -495,6 +486,10 @@ in ) ); } + // pkgs.lib.optionalAttrs config.allowAliases { + ghcjs = throw "'haskell.compiler.ghcjs' has been removed. Please use 'pkgsCross.ghcjs' instead."; # Added 2025-09-06 + ghcjs810 = throw "'haskell.compiler.ghcjs810' has been removed. Please use 'pkgsCross.ghcjs' instead."; # Added 2025-09-06 + } ); # Default overrides that are applied to all package sets. @@ -647,14 +642,6 @@ in compilerConfig = callPackage ../development/haskell-modules/configuration-ghc-9.14.x.nix { }; }; - ghcjs = packages.ghcjs810; - ghcjs810 = callPackage ../development/haskell-modules rec { - buildHaskellPackages = ghc.bootPkgs; - ghc = bh.compiler.ghcjs810; - compilerConfig = callPackage ../development/haskell-modules/configuration-ghc-8.10.x.nix { }; - packageSetConfig = callPackage ../development/haskell-modules/configuration-ghcjs-8.x.nix { }; - }; - # The integer-simple attribute set contains package sets for all the GHC compilers # using integer-simple instead of integer-gmp. integer-simple = @@ -687,5 +674,9 @@ in buildHaskellPackages = bh.packages.native-bignum.${name}; } ); + } + // pkgs.lib.optionalAttrs config.allowAliases { + ghcjs = throw "'haskell.packages.ghcjs' has been removed. Please use 'pkgsCross.ghcjs' instead."; # Added 2025-09-06 + ghcjs810 = throw "'haskell.packages.ghcjs810' has been removed. Please use 'pkgsCross.ghcjs' instead."; # Added 2025-09-06 }; } diff --git a/pkgs/top-level/release-cross.nix b/pkgs/top-level/release-cross.nix index de853ce49675..ec753700a532 100644 --- a/pkgs/top-level/release-cross.nix +++ b/pkgs/top-level/release-cross.nix @@ -212,7 +212,6 @@ in # Javascript ghcjs = mapTestOnCross systems.examples.ghcjs { - haskell.packages.ghcjs.hello = nativePlatforms; haskell.packages.native-bignum.ghcHEAD.hello = nativePlatforms; haskellPackages.hello = nativePlatforms; }; diff --git a/pkgs/top-level/release-haskell.nix b/pkgs/top-level/release-haskell.nix index 13d5f02fbae6..c5dd07c0099e 100644 --- a/pkgs/top-level/release-haskell.nix +++ b/pkgs/top-level/release-haskell.nix @@ -238,24 +238,7 @@ let jobs = recursiveUpdateMany [ (mapTestOn { haskellPackages = packagePlatforms pkgs.haskellPackages; - haskell.compiler = - packagePlatforms pkgs.haskell.compiler - // (lib.genAttrs - [ - "ghcjs" - "ghcjs810" - ] - (ghcjsName: { - # We can't build ghcjs itself, since it exceeds 3GB (Hydra's output limit) due - # to the size of its bundled libs. We can however save users a bit of compile - # time by building the bootstrap ghcjs on Hydra. For this reason, we overwrite - # the ghcjs attributes in haskell.compiler with a reference to the bootstrap - # ghcjs attribute in their bootstrap package set (exposed via passthru) which - # would otherwise be ignored by Hydra. - bootGhcjs = (packagePlatforms pkgs.haskell.compiler.${ghcjsName}.passthru).bootGhcjs; - }) - ); - + haskell.compiler = packagePlatforms pkgs.haskell.compiler; tests.haskell = packagePlatforms pkgs.tests.haskell; nixosTests = { @@ -413,9 +396,6 @@ let # remove musl ghc865Binary since it is known to be broken and # causes an evaluation error on darwin. ghc865Binary = { }; - - ghcjs = { }; - ghcjs810 = { }; }; # Get some cache going for MUSL-enabled GHC.