haskell.compiler.ghc902: remove at 9.0.2 (#381265)

Changed files
+10 -57
doc
release-notes
pkgs
+5 -3
doc/release-notes/rl-2511.section.md
···
- 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.
- `base16-builder` node package has been removed due to lack of upstream maintenance.
···
- `cudaPackages.cudatoolkit-legacy-runfile` has been removed.
- `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.
···
- 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 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.
···
- `cudaPackages.cudatoolkit-legacy-runfile` has been removed.
- `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 `ghcInfo` and `controlPhases` functions have been removed from `haskell.lib.compose` and `haskell.lib`. They were unused and would return incorrect results.
-4
pkgs/development/compilers/ghc/9.0.2.nix
···
-
import ./common-make-native-bignum.nix {
-
version = "9.0.2";
-
sha256 = "140e42b96346322d1a39eb17602bcdc76e292028ad4a69286b230bab188a9197";
-
}
···
+4 -25
pkgs/development/compilers/ghc/common-make-native-bignum.nix
···
]
)
-
++ 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 {
···
stripLen = 1;
extraPrefix = "libraries/Cabal/";
sha256 = "sha256-yRQ6YmMiwBwiYseC5BsrEtDgFbWvst+maGgDtdD0vAY=";
-
})
-
]
-
-
++ 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=";
})
]
···
# 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
-
)
];
postPatch = "patchShebangs .";
···
echo -n "${buildMK}" > mk/build.mk
''
-
+ lib.optionalString (lib.versionOlder version "9.2" || lib.versionAtLeast version "9.4") ''
sed -i -e 's|-isysroot /Developer/SDKs/MacOSX10.5.sdk||' configure
''
+ lib.optionalString (stdenv.hostPlatform.isLinux && hostPlatform.libc == "glibc") ''
···
+ lib.optionalString stdenv.hostPlatform.isDarwin ''
export NIX_LDFLAGS+=" -no_dtrace_dof"
''
-
+ lib.optionalString (stdenv.hostPlatform.isDarwin && lib.versionAtLeast version "9.2") ''
# 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
···
]
++ 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.
···
]
)
+
++ [
# 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 {
···
stripLen = 1;
extraPrefix = "libraries/Cabal/";
sha256 = "sha256-yRQ6YmMiwBwiYseC5BsrEtDgFbWvst+maGgDtdD0vAY=";
})
]
···
# 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).
+
./Cabal-at-least-3.6-paths-fix-cycle-aarch64-darwin.patch
];
postPatch = "patchShebangs .";
···
echo -n "${buildMK}" > mk/build.mk
''
+
+ 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") ''
···
+ lib.optionalString stdenv.hostPlatform.isDarwin ''
export NIX_LDFLAGS+=" -no_dtrace_dof"
''
+
+ 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
···
]
++ lib.optionals enableDocs [
sphinx
];
# Everything the stage0 compiler needs to build stage1: CC, bintools, extra libs.
+1 -15
pkgs/top-level/haskell-packages.nix
···
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
···
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;
···
);
}
// 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
};
···
llvmPackages = pkgs.llvmPackages_12;
};
ghc810 = compiler.ghc8107;
ghc928 = callPackage ../development/compilers/ghc/9.2.8.nix {
bootPkgs =
# GHC >= 9.0 removed the armv7l bindist
···
compilerConfig = callPackage ../development/haskell-modules/configuration-ghc-8.10.x.nix { };
};
ghc810 = packages.ghc8107;
ghc928 = callPackage ../development/haskell-modules {
buildHaskellPackages = bh.packages.ghc928;
ghc = bh.compiler.ghc928;
···
);
}
// 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
};
-8
pkgs/top-level/release-haskell.nix
···
# list of all compilers to test specific packages on
released = with compilerNames; [
ghc8107
-
ghc902
ghc928
ghc948
ghc963
···
# 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;
···
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
···
titlecase = released;
ghc-api-compat = [
compilerNames.ghc8107
-
compilerNames.ghc902
];
ghc-bignum = [
compilerNames.ghc8107
···
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
];
···
# list of all compilers to test specific packages on
released = with compilerNames; [
ghc8107
ghc928
ghc948
ghc963
···
# of core packages, it is not always reasonable to get cabal-install to
# work with older compilers.
compilerNames.ghc8107
compilerNames.ghc928
compilerNames.ghc948
] released;
···
haskell-language-server = lib.subtractLists [
# Support ceased as of 2.3.0.0
compilerNames.ghc8107
# Support ceased as of 2.10.0.0
compilerNames.ghc928
] released;
hoogle = released;
hlint = lib.subtractLists [
compilerNames.ghc9101
compilerNames.ghc9102
compilerNames.ghc9122
···
titlecase = released;
ghc-api-compat = [
compilerNames.ghc8107
];
ghc-bignum = [
compilerNames.ghc8107
···
constituents = accumulateDerivations [
jobs.pkgsMusl.haskell.compiler.ghc8107Binary
jobs.pkgsMusl.haskell.compiler.ghc8107
jobs.pkgsMusl.haskell.compiler.ghc928
jobs.pkgsMusl.haskell.compiler.ghcHEAD
jobs.pkgsMusl.haskell.compiler.integer-simple.ghc8107
jobs.pkgsMusl.haskell.compiler.native-bignum.ghc928
jobs.pkgsMusl.haskell.compiler.native-bignum.ghcHEAD
];
-2
pkgs/top-level/release.nix
···
packages =
genAttrs
[
-
# TODO: share this list between release.nix and release-haskell.nix
-
"ghc90"
"ghc92"
"ghc94"
"ghc96"
···
packages =
genAttrs
[
"ghc92"
"ghc94"
"ghc96"