From eba6675b2c5fceb80f0750db0fe2ffb439d984ce Mon Sep 17 00:00:00 2001 From: Wolfgang Walther Date: Sun, 7 Sep 2025 11:14:17 +0200 Subject: [PATCH 1/3] doc/release-notes: Only mention GHC major version Since we're not mentioning drops of minor versions in the release notes anyway, we also don't need to include the minor version when we drop a whole major. --- doc/release-notes/rl-2511.section.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/doc/release-notes/rl-2511.section.md b/doc/release-notes/rl-2511.section.md index 12da7843bb40..31a80a572009 100644 --- a/doc/release-notes/rl-2511.section.md +++ b/doc/release-notes/rl-2511.section.md @@ -24,7 +24,7 @@ - GCC 9, 10, 11, and 12 have been removed, as they have reached end‐of‐life upstream and are no longer supported. -- GHC 8.6.5 and its package set have been removed. It was only used to bootstrap GHC for powerpc64le, but this was probably broken anyway. +- GHC 8.6 and its package set have been removed. It was only used to bootstrap GHC for powerpc64le, but this was probably broken anyway. - `base16-builder` node package has been removed due to lack of upstream maintenance. From f8560ade011b8f63a002b80152f81e624c743336 Mon Sep 17 00:00:00 2001 From: sternenseemann Date: Tue, 11 Feb 2025 21:15:25 +0100 Subject: [PATCH 2/3] haskell.compiler.ghc902: remove at 9.0.2 Let's drop everyone's least favorite GHC version. --- doc/release-notes/rl-2511.section.md | 2 ++ pkgs/development/compilers/ghc/9.0.2.nix | 4 --- .../ghc/common-make-native-bignum.nix | 29 +++---------------- pkgs/top-level/haskell-packages.nix | 16 +--------- pkgs/top-level/release-haskell.nix | 8 ----- pkgs/top-level/release.nix | 2 -- 6 files changed, 7 insertions(+), 54 deletions(-) delete mode 100644 pkgs/development/compilers/ghc/9.0.2.nix diff --git a/doc/release-notes/rl-2511.section.md b/doc/release-notes/rl-2511.section.md index 31a80a572009..20aea8779f6a 100644 --- a/doc/release-notes/rl-2511.section.md +++ b/doc/release-notes/rl-2511.section.md @@ -26,6 +26,8 @@ - GHC 8.6 and its package set have been removed. It was only used to bootstrap GHC for powerpc64le, but this was probably broken anyway. +- GHC 9.0 and its package set have been removed. + - `base16-builder` node package has been removed due to lack of upstream maintenance. - `python3Packages.bjoern` has been removed, as the upstream is unmaintained and it depends on a 14-year-old version of http-parser with numerous vulnerabilities. diff --git a/pkgs/development/compilers/ghc/9.0.2.nix b/pkgs/development/compilers/ghc/9.0.2.nix deleted file mode 100644 index 987821830504..000000000000 --- a/pkgs/development/compilers/ghc/9.0.2.nix +++ /dev/null @@ -1,4 +0,0 @@ -import ./common-make-native-bignum.nix { - version = "9.0.2"; - sha256 = "140e42b96346322d1a39eb17602bcdc76e292028ad4a69286b230bab188a9197"; -} diff --git a/pkgs/development/compilers/ghc/common-make-native-bignum.nix b/pkgs/development/compilers/ghc/common-make-native-bignum.nix index b9d0b58832d3..6aa5bf5463b3 100644 --- a/pkgs/development/compilers/ghc/common-make-native-bignum.nix +++ b/pkgs/development/compilers/ghc/common-make-native-bignum.nix @@ -355,7 +355,7 @@ stdenv.mkDerivation ( ] ) - ++ lib.optionals (lib.versionAtLeast version "9.2") [ + ++ [ # Don't generate code that doesn't compile when --enable-relocatable is passed to Setup.hs # Can be removed if the Cabal library included with ghc backports the linked fix (fetchpatch { @@ -366,17 +366,6 @@ stdenv.mkDerivation ( }) ] - ++ lib.optionals (lib.versionOlder version "9.2.2") [ - # Add flag that fixes C++ exception handling; opt-in. Merged in 9.4 and 9.2.2. - # https://gitlab.haskell.org/ghc/ghc/-/merge_requests/7423 - (fetchpatch { - name = "ghc-9.0.2-fcompact-unwind.patch"; - # Note that the test suite is not packaged. - url = "https://gitlab.haskell.org/ghc/ghc/-/commit/c6132c782d974a7701e7f6447bdcd2bf6db4299a.patch?merge_request_iid=7423"; - sha256 = "sha256-b4feGZIaKDj/UKjWTNY6/jH4s2iate0wAgMxG3rAbZI="; - }) - ] - # fix hyperlinked haddock sources: https://github.com/haskell/haddock/pull/1482 ++ lib.optionals (lib.versionOlder version "9.4") [ (fetchpatch { @@ -417,12 +406,7 @@ stdenv.mkDerivation ( # These cause problems as they're not eliminated by GHC's dead code # elimination on aarch64-darwin. (see # https://github.com/NixOS/nixpkgs/issues/140774 for details). - ( - if lib.versionAtLeast version "9.2" then - ./Cabal-at-least-3.6-paths-fix-cycle-aarch64-darwin.patch - else - ./Cabal-3.2-3.4-paths-fix-cycle-aarch64-darwin.patch - ) + ./Cabal-at-least-3.6-paths-fix-cycle-aarch64-darwin.patch ]; postPatch = "patchShebangs ."; @@ -483,7 +467,7 @@ stdenv.mkDerivation ( echo -n "${buildMK}" > mk/build.mk '' - + lib.optionalString (lib.versionOlder version "9.2" || lib.versionAtLeast version "9.4") '' + + lib.optionalString (lib.versionAtLeast version "9.4") '' sed -i -e 's|-isysroot /Developer/SDKs/MacOSX10.5.sdk||' configure '' + lib.optionalString (stdenv.hostPlatform.isLinux && hostPlatform.libc == "glibc") '' @@ -495,7 +479,7 @@ stdenv.mkDerivation ( + lib.optionalString stdenv.hostPlatform.isDarwin '' export NIX_LDFLAGS+=" -no_dtrace_dof" '' - + lib.optionalString (stdenv.hostPlatform.isDarwin && lib.versionAtLeast version "9.2") '' + + lib.optionalString (stdenv.hostPlatform.isDarwin) '' # GHC tries the host xattr /usr/bin/xattr by default which fails since it expects python to be 2.7 export XATTR=${lib.getBin xattr}/bin/xattr @@ -603,11 +587,6 @@ stdenv.mkDerivation ( ] ++ lib.optionals enableDocs [ sphinx - ] - ++ lib.optionals (stdenv.hostPlatform.isDarwin && lib.versions.majorMinor version == "9.0") [ - # TODO(@sternenseemann): backport addition of XATTR env var like - # https://gitlab.haskell.org/ghc/ghc/-/merge_requests/6447 - xattr ]; # Everything the stage0 compiler needs to build stage1: CC, bintools, extra libs. diff --git a/pkgs/top-level/haskell-packages.nix b/pkgs/top-level/haskell-packages.nix index 6e4d535f31d1..a737ae9b4c0f 100644 --- a/pkgs/top-level/haskell-packages.nix +++ b/pkgs/top-level/haskell-packages.nix @@ -110,15 +110,6 @@ in llvmPackages = pkgs.llvmPackages_12; }; ghc810 = compiler.ghc8107; - ghc902 = callPackage ../development/compilers/ghc/9.0.2.nix { - bootPkgs = bb.packages.ghc8107Binary; - inherit (buildPackages.python311Packages) sphinx; # a distutils issue with 3.12 - python3 = buildPackages.python311; # so that we don't have two of them - inherit (buildPackages.darwin) autoSignDarwinBinariesHook xattr; - buildTargetLlvmPackages = pkgsBuildTarget.llvmPackages_12; - llvmPackages = pkgs.llvmPackages_12; - }; - ghc90 = compiler.ghc902; ghc928 = callPackage ../development/compilers/ghc/9.2.8.nix { bootPkgs = # GHC >= 9.0 removed the armv7l bindist @@ -361,12 +352,6 @@ in compilerConfig = callPackage ../development/haskell-modules/configuration-ghc-8.10.x.nix { }; }; ghc810 = packages.ghc8107; - ghc902 = callPackage ../development/haskell-modules { - buildHaskellPackages = bh.packages.ghc902; - ghc = bh.compiler.ghc902; - compilerConfig = callPackage ../development/haskell-modules/configuration-ghc-9.0.x.nix { }; - }; - ghc90 = packages.ghc902; ghc928 = callPackage ../development/haskell-modules { buildHaskellPackages = bh.packages.ghc928; ghc = bh.compiler.ghc928; @@ -458,6 +443,7 @@ in ); } // pkgs.lib.optionalAttrs config.allowAliases { + ghc90 = throw "'haskell.packages.ghc90' has been removed."; # Added 2025-09-07 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-haskell.nix b/pkgs/top-level/release-haskell.nix index 482923ed7518..0567f939777b 100644 --- a/pkgs/top-level/release-haskell.nix +++ b/pkgs/top-level/release-haskell.nix @@ -64,7 +64,6 @@ let # list of all compilers to test specific packages on released = with compilerNames; [ ghc8107 - ghc902 ghc928 ghc948 ghc963 @@ -556,7 +555,6 @@ let # of core packages, it is not always reasonable to get cabal-install to # work with older compilers. compilerNames.ghc8107 - compilerNames.ghc902 compilerNames.ghc928 compilerNames.ghc948 ] released; @@ -578,14 +576,11 @@ let haskell-language-server = lib.subtractLists [ # Support ceased as of 2.3.0.0 compilerNames.ghc8107 - # Support ceased as of 2.5.0.0 - compilerNames.ghc902 # Support ceased as of 2.10.0.0 compilerNames.ghc928 ] released; hoogle = released; hlint = lib.subtractLists [ - compilerNames.ghc902 compilerNames.ghc9101 compilerNames.ghc9102 compilerNames.ghc9122 @@ -598,7 +593,6 @@ let titlecase = released; ghc-api-compat = [ compilerNames.ghc8107 - compilerNames.ghc902 ]; ghc-bignum = [ compilerNames.ghc8107 @@ -687,11 +681,9 @@ let constituents = accumulateDerivations [ jobs.pkgsMusl.haskell.compiler.ghc8107Binary jobs.pkgsMusl.haskell.compiler.ghc8107 - jobs.pkgsMusl.haskell.compiler.ghc902 jobs.pkgsMusl.haskell.compiler.ghc928 jobs.pkgsMusl.haskell.compiler.ghcHEAD jobs.pkgsMusl.haskell.compiler.integer-simple.ghc8107 - jobs.pkgsMusl.haskell.compiler.native-bignum.ghc902 jobs.pkgsMusl.haskell.compiler.native-bignum.ghc928 jobs.pkgsMusl.haskell.compiler.native-bignum.ghcHEAD ]; diff --git a/pkgs/top-level/release.nix b/pkgs/top-level/release.nix index 2e1d2fa99d55..180100dae0c8 100644 --- a/pkgs/top-level/release.nix +++ b/pkgs/top-level/release.nix @@ -363,8 +363,6 @@ let packages = genAttrs [ - # TODO: share this list between release.nix and release-haskell.nix - "ghc90" "ghc92" "ghc94" "ghc96" From 3273094fa8463257e9d60d5e04e6ed331834a14a Mon Sep 17 00:00:00 2001 From: Wolfgang Walther Date: Sun, 7 Sep 2025 11:32:56 +0200 Subject: [PATCH 3/3] doc/release-notes: move all GHC related release notes in one place Also remove the minor version for GHCJS, similar to the others. --- doc/release-notes/rl-2511.section.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/doc/release-notes/rl-2511.section.md b/doc/release-notes/rl-2511.section.md index 20aea8779f6a..bd31fd2bd64b 100644 --- a/doc/release-notes/rl-2511.section.md +++ b/doc/release-notes/rl-2511.section.md @@ -26,6 +26,8 @@ - GHC 8.6 and its package set have been removed. It was only used to bootstrap GHC for powerpc64le, but this was probably broken anyway. +- GHCJS 8.10, 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. + - GHC 9.0 and its package set have been removed. - `base16-builder` node package has been removed due to lack of upstream maintenance. @@ -50,8 +52,6 @@ - `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. Haskell packaging code, like `haskellPackages.mkDerivation`, `ghcWithPackages` and `hoogleWithPackages`, also no longer supports GHCJS. - - The `ghcInfo` and `controlPhases` functions have been removed from `haskell.lib.compose` and `haskell.lib`. They were unused and would return incorrect results. - Instead of using `controlPhases`, the `doCheck` attribute of derivations can be accessed which is more accurate. `doBenchmark` can't be introspected at the moment.