ghc: 9.8.4 -> 9.10.3; Stackage LTS: 23.27 -> 24.9 (#429810)

This commit is contained in:
sternenseemann
2025-09-20 23:09:13 +02:00
committed by GitHub
46 changed files with 13267 additions and 14346 deletions
+3
View File
@@ -264,6 +264,9 @@ a4f7e161b380b35b2f7bc432659a95fd71254ad8
# haskellPackages.hercules-ci-agent (cabal2nix -> nixfmt-rfc-style)
9314da7ee8d2aedfb15193b8c489da51efe52bb5
# haskell-updates: nixfmt-rfc-style
9e296dcf846294e0aa94af7d3235e82eee7fe055
# nix-builder-vm: nixfmt-rfc-style
a034fb50f79816c6738fb48b48503b09ea3b0132
+1 -1
View File
@@ -58,7 +58,7 @@ Each of those compiler versions has a corresponding attribute set `packages` bui
it. However, the non-standard package sets are not tested regularly and, as a
result, contain fewer working packages. The corresponding package set for GHC
9.4.8 is `haskell.packages.ghc948`. In fact, `haskellPackages` (at the time of writing) is just an alias
for `haskell.packages.ghc984`:
for `haskell.packages.ghc9103`.
Every package set also re-exposes the GHC used to build its packages as `haskell.packages.*.ghc`.
+2
View File
@@ -9,6 +9,8 @@
and newer series. However, embedded chips without LSX (Loongson SIMD eXtension), such as 2K0300 SoC, are not
supported. `pkgsCross.loongarch64-linux-embedded` can be used to build software and systems for these platforms.
- The official Nix formatter `nixfmt` is now stable and available as `pkgs.nixfmt`, deprecating the temporary `pkgs.nixfmt-rfc-style` attribute. The classic `nixfmt` will stay available for some more time as `pkgs.nixfmt-classic`.
- The default GHC version has been updated from 9.8 to 9.10.
`haskellPackages` correspondingly uses Stackage LTS 24 (instead of LTS 23) as a baseline.
- Darwin has switched to using the system libc++. This was done for improved compatibility and to avoid ODR violations.
If a newer C++ library feature is not available on the default deployment target, you will need to increase the deployment target.
+65 -64
View File
@@ -1,6 +1,7 @@
#! /usr/bin/env nix-shell
#! nix-shell -I nixpkgs=.
#! nix-shell -p "haskellPackages.ghcWithPackages (p: [p.aeson p.req])"
#! nix-shell -p hydra
#! nix-shell -p nix-eval-jobs
#! nix-shell -i runhaskell
{-
@@ -33,19 +34,23 @@ Because step 1) is quite expensive and takes roughly ~5 minutes the result is ca
import Control.Monad (forM_, forM, (<=<))
import Control.Monad.Trans (MonadIO (liftIO))
import Data.Aeson (
FromJSON,
FromJSON (..),
withObject,
(.:),
FromJSONKey,
ToJSON,
decodeFileStrict',
eitherDecodeStrict',
encodeFile,
)
import Data.Foldable (Foldable (toList), foldl')
import Data.Aeson.Decoding (eitherDecodeStrictText)
import Data.Foldable (Foldable (toList))
import Data.Either (rights)
import Data.Functor ((<&>))
import Data.List.NonEmpty (NonEmpty, nonEmpty)
import qualified Data.List.NonEmpty as NonEmpty
import Data.Map.Strict (Map)
import qualified Data.Map.Strict as Map
import Data.Maybe (fromMaybe, mapMaybe, isNothing)
import Data.Maybe (fromMaybe, mapMaybe, isNothing, catMaybes)
import Data.Monoid (Sum (Sum, getSum))
import Data.Sequence (Seq)
import qualified Data.Sequence as Seq
@@ -53,7 +58,6 @@ import Data.Set (Set)
import qualified Data.Set as Set
import Data.Text (Text)
import qualified Data.Text as Text
import Data.Text.Encoding (encodeUtf8)
import qualified Data.Text.IO as Text
import Data.Time (defaultTimeLocale, formatTime, getCurrentTime)
import Data.Time.Clock (UTCTime)
@@ -206,7 +210,7 @@ hydraQuery responseType option query = do
let customHeaderOpt =
header
"User-Agent"
"hydra-report.hs/v1 (nixpkgs;maintainers/scripts/haskell) pls fix https://github.com/NixOS/nixos-org-configurations/issues/270"
"hydra-report.hs/v1 (nixpkgs;maintainers/scripts/haskell)"
customTimeoutOpt = responseTimeout 900_000_000 -- 15 minutes
opts = customHeaderOpt <> customTimeoutOpt <> option
url = foldl' (/:) (https "hydra.nixos.org") query
@@ -218,11 +222,22 @@ hydraJSONQuery = hydraQuery jsonResponse
hydraPlainQuery :: [Text] -> Req ByteString
hydraPlainQuery = hydraQuery bsResponse mempty
hydraEvalCommand :: FilePath
hydraEvalCommand = "hydra-eval-jobs"
nixEvalJobsCommand :: FilePath
nixEvalJobsCommand = "nix-eval-jobs"
hydraEvalParams :: [String]
hydraEvalParams = ["-I", ".", "pkgs/top-level/release-haskell.nix"]
nixEvalJobsParams :: [String]
nixEvalJobsParams =
[
-- options necessary to make nix-eval-jobs behave like hydra-eval-jobs used to
-- https://github.com/NixOS/hydra/commit/d84ff32ce600204c6473889a3ff16cd6053533c9
"--meta",
"--force-recurse",
"--no-instantiate",
"--workers", "3",
"-I", ".",
"pkgs/top-level/release-haskell.nix"
]
nixExprCommand :: FilePath
nixExprCommand = "nix-instantiate"
@@ -230,47 +245,27 @@ nixExprCommand = "nix-instantiate"
nixExprParams :: [String]
nixExprParams = ["--eval", "--strict", "--json"]
-- | This newtype is used to parse a Hydra job output from @hydra-eval-jobs@.
-- The only field we are interested in is @maintainers@, which is why this
-- is just a newtype.
-- | Holds a list of the GitHub handles of the maintainers of a given 'JobName'.
--
-- Note that there are occasionally jobs that don't have a maintainers
-- field, which is why this has to be @Maybe Text@.
newtype Maintainers = Maintainers { maintainers :: Maybe Text }
-- @
-- JobMaintainers (JobName "haskellPackages.cabal-install.x86_64-linux") ["sternenseemann"]
-- @
data JobMaintainers = JobMaintainers JobName [Text]
deriving stock (Generic, Show)
deriving anyclass (FromJSON, ToJSON)
-- | This is a 'Map' from Hydra job name to maintainer email addresses.
--
-- It has values similar to the following:
--
-- @@
-- fromList
-- [ ("arion.aarch64-linux", Maintainers (Just "robert@example.com"))
-- , ("bench.x86_64-linux", Maintainers (Just ""))
-- , ("conduit.x86_64-linux", Maintainers (Just "snoy@man.com, web@ber.com"))
-- , ("lens.x86_64-darwin", Maintainers (Just "ek@category.com"))
-- ]
-- @@
--
-- Note that Hydra jobs without maintainers will have an empty string for the
-- maintainer list.
type HydraJobs = Map JobName Maintainers
-- | Parse the entries produced by @nix-eval-jobs@, discarding all information
-- except the name of the job (@attr@) and the @github@ attributes of the
-- maintainer objects in @meta.maintainers@.
instance FromJSON JobMaintainers where
parseJSON = withObject "HydraJob" $ \h -> do
jobName <- h .: "attr"
maintainers <- (h .: "meta")
>>= (withObject "Meta" $ \meta ->
meta .: "maintainers"
>>= mapM (withObject "Maintainer" $ \mt -> mt .: "github"))
pure $ JobMaintainers jobName maintainers
-- | Map of email addresses to GitHub handles.
-- This is built from the file @../../maintainer-list.nix@.
--
-- It has values similar to the following:
--
-- @@
-- fromList
-- [ ("robert@example.com", "rob22")
-- , ("ek@category.com", "edkm")
-- ]
-- @@
type EmailToGitHubHandles = Map Text Text
-- | Map of Hydra jobs to maintainer GitHub handles.
-- | Map of maintained Hydra jobs to maintainer GitHub handles.
--
-- It has values similar to the following:
--
@@ -331,22 +326,16 @@ calculateReverseDependencies depMap =
go pkg = IntSet.unions (oneStep:((resultList IntMap.!) <$> IntSet.toList oneStep))
where oneStep = IntMap.findWithDefault mempty pkg oneStepMap
-- | Generate a mapping of Hydra job names to maintainer GitHub handles. Calls
-- hydra-eval-jobs and the nix script ./maintainer-handles.nix.
-- | Generate a mapping of Hydra job names to maintainer GitHub handles.
getMaintainerMap :: IO MaintainerMap
getMaintainerMap = do
hydraJobs :: HydraJobs <-
readJSONProcess hydraEvalCommand hydraEvalParams "Failed to decode hydra-eval-jobs output: "
handlesMap :: EmailToGitHubHandles <-
readJSONProcess nixExprCommand ("maintainers/scripts/haskell/maintainer-handles.nix":nixExprParams) "Failed to decode nix output for lookup of github handles: "
pure $ Map.mapMaybe (splitMaintainersToGitHubHandles handlesMap) hydraJobs
where
-- Split a comma-spearated string of Maintainers into a NonEmpty list of
-- GitHub handles.
splitMaintainersToGitHubHandles
:: EmailToGitHubHandles -> Maintainers -> Maybe (NonEmpty Text)
splitMaintainersToGitHubHandles handlesMap (Maintainers maint) =
nonEmpty . mapMaybe (`Map.lookup` handlesMap) . Text.splitOn ", " $ fromMaybe "" maint
getMaintainerMap =
readJSONLinesProcess nixEvalJobsCommand nixEvalJobsParams
-- we ignore unparseable lines since fromJSON will fail on { "attr": …, "error": … }
-- entries since they don't have a @meta@ attribute.
<&> rights
<&> map (\(JobMaintainers name maintainers) -> (,) name <$> nonEmpty maintainers)
<&> catMaybes
<&> Map.fromList
-- | Get the a map of all dependencies of every package by calling the nix
-- script ./dependencies.nix.
@@ -369,11 +358,23 @@ readJSONProcess
-> IO a
readJSONProcess exe args err = do
output <- readProcess exe args ""
let eitherDecodedOutput = eitherDecodeStrict' . encodeUtf8 . Text.pack $ output
let eitherDecodedOutput = eitherDecodeStrictText . Text.pack $ output
case eitherDecodedOutput of
Left decodeErr -> error $ err <> decodeErr <> "\nRaw: '" <> take 1000 output <> "'"
Right decodedOutput -> pure decodedOutput
-- | Run a process that produces many JSON values, one per line.
-- Error and success is reported per line via a list of 'Either's.
readJSONLinesProcess
:: FromJSON a
=> FilePath -- ^ Filename of executable.
-> [String] -- ^ Arguments
-> IO [Either String a]
readJSONLinesProcess exe args = do
output <- readProcess exe args ""
-- TODO: slow, doesn't stream at all
pure . map (eitherDecodeStrictText . Text.pack) . lines $ output
-- BuildStates are sorted by subjective importance/concerningness
data BuildState
= Failed
@@ -1,23 +0,0 @@
# Nix script to lookup maintainer github handles from their email address. Used by ./hydra-report.hs.
#
# This script produces an attr set mapping of email addresses to GitHub handles:
#
# ```nix
# > import ./maintainer-handles.nix
# { "cdep.illabout@gmail.com" = "cdepillabout"; "john@smith.com" = "johnsmith"; ... }
# ```
#
# This mapping contains all maintainers in ../../mainatainer-list.nix, but it
# ignores maintainers who don't have a GitHub account or an email address.
let
pkgs = import ../../.. { };
maintainers = import ../../maintainer-list.nix;
inherit (pkgs) lib;
mkMailGithubPair =
_: maintainer:
if (maintainer ? email) && (maintainer ? github) then
{ "${maintainer.email}" = maintainer.github; }
else
{ };
in
lib.zipAttrsWith (_: builtins.head) (lib.mapAttrsToList mkMailGithubPair maintainers)
@@ -1,5 +1,5 @@
#! /usr/bin/env nix-shell
#! nix-shell -i bash -p coreutils haskellPackages.cabal2nix-unstable git -I nixpkgs=.
#! nix-shell -i bash -p coreutils haskellPackages.cabal2nix-unstable.bin git -I nixpkgs=.
set -euo pipefail
@@ -1,5 +1,5 @@
#! /usr/bin/env nix-shell
#! nix-shell -i bash -p coreutils curl jq gnused haskellPackages.cabal2nix-unstable -I nixpkgs=.
#! nix-shell -i bash -p coreutils curl jq gnused haskellPackages.cabal2nix-unstable.bin nix-prefetch-scripts -I nixpkgs=.
# Updates cabal2nix-unstable to the latest master of the nixos/cabal2nix repository.
# See regenerate-hackage-packages.sh for details on the purpose of this script.
@@ -98,6 +98,7 @@ sed -r \
-e '/ ShellCheck /d' \
-e '/ Agda /d' \
-e '/ stack /d' \
-e '/ git-annex /d' \
< "${tmpfile_new}" >> $stackage_config
# Explanations:
# cabal2nix, distribution-nixpkgs, jailbreak-cabal, language-nix: These are our packages and we know what we are doing.
+12 -2
View File
@@ -3,6 +3,7 @@
stdenv,
makeWrapper,
haskellPackages,
fetchpatch,
fetchFromGitHub,
# dependencies
slither-analyzer,
@@ -10,17 +11,26 @@
haskellPackages.mkDerivation rec {
pname = "echidna";
version = "2.2.6";
version = "2.2.7";
src = fetchFromGitHub {
owner = "crytic";
repo = "echidna";
tag = "v${version}";
sha256 = "sha256-5nzis7MXOqs0bhx2jrEexjZYZI2qY6D0D7AWO+SPs+A=";
sha256 = "sha256-rDtxyUpWfdMvS5BY1y8nydkQk/eCdmtjCqGJ+I4vy0I=";
};
isExecutable = true;
patches = [
# Fix build with GHC 9.10
# https://github.com/crytic/echidna/pull/1446
(fetchpatch {
url = "https://github.com/crytic/echidna/commit/1b498bdb8c86d8297aa34de8f48b6dce2f4dd84d.patch";
hash = "sha256-JeKPv2Q2gIt1XpI81XPFu80/x8QcOI4k1QN/mTf+bqk=";
})
];
buildTools = with haskellPackages; [
hpack
];
@@ -13,7 +13,7 @@ stdenvNoCC.mkDerivation rec {
src = fetchurl {
name = "hledger-check-fancyassertion-${version}.hs";
url = "https://raw.githubusercontent.com/simonmichael/hledger/hledger-lib-${version}/bin/hledger-check-fancyassertions.hs";
sha256 = "0lyyz8dqkknd9d073l613kdkaqd9r6ymdw94d7mwp17pxvfr17wf";
hash = "sha256-p1JvPHSB5hkfZsTq1sSL0mxCRkhZu1zkpXTELVNFE64=";
};
dontUnpack = true;
+4 -4
View File
@@ -1,6 +1,6 @@
{
"commit": "e184dedb360769d6e8e041e711559185f39ab55c",
"url": "https://github.com/commercialhaskell/all-cabal-hashes/archive/e184dedb360769d6e8e041e711559185f39ab55c.tar.gz",
"sha256": "16qlwrw96lf52yvmmhfl948wpimbnqm9z87j27agcdmigf5icg1s",
"msg": "Update from Hackage at 2025-07-07T21:33:55Z"
"commit": "c074fec58a2c83bfb17c273302005fe2625207f1",
"url": "https://github.com/commercialhaskell/all-cabal-hashes/archive/c074fec58a2c83bfb17c273302005fe2625207f1.tar.gz",
"sha256": "1my6xrg3m694fr3k5386yx5wqd2j0wdxfx6g3scnh5af0sx2hx0w",
"msg": "Update from Hackage at 2025-09-14T21:34:10Z"
}
@@ -66,16 +66,16 @@
enableShared ? with stdenv.targetPlatform; !isWindows && !useiOSPrebuilt && !isStatic && !isGhcjs,
# Whether to build terminfo.
# FIXME(@sternenseemann): This actually doesn't influence what hadrian does,
# just what buildInputs etc. looks like. It would be best if we could actually
# tell it what to do like it was possible with make.
enableTerminfo ?
!(
stdenv.targetPlatform.isWindows
|| stdenv.targetPlatform.isGhcjs
# terminfo can't be built for cross
|| (stdenv.buildPlatform != stdenv.hostPlatform)
|| (stdenv.hostPlatform != stdenv.targetPlatform)
# Before <https://gitlab.haskell.org/ghc/ghc/-/merge_requests/13932>,
# we couldn't force hadrian to build terminfo for cross.
|| (
lib.versionOlder version "9.15.20250808"
&& (stdenv.buildPlatform != stdenv.hostPlatform || stdenv.hostPlatform != stdenv.targetPlatform)
)
),
# Libdw.c only supports x86_64, i686 and s390x as of 2022-08-04
@@ -131,10 +131,12 @@
-- no way to set this via the command line
finalStage :: Stage
finalStage = ${
# Always build the stage 2 compiler if possible.
# TODO(@sternensemann): unify condition with make-built GHCs
if stdenv.hostPlatform.canExecute stdenv.targetPlatform then
"Stage2" # native compiler or “native” cross e.g. pkgsStatic
# N. B. hadrian ignores this setting if it doesn't agree it's possible,
# i.e. when its cross-compiling setting is true. So while we could, in theory,
# build Stage2 if hostPlatform.canExecute targetPlatform, hadrian won't play
# ball (with make, Stage2 was built if hostPlatform.system == targetPlatform.system).
if stdenv.hostPlatform == stdenv.targetPlatform then
"Stage2" # native compiler
else
"Stage1" # cross compiler
}
+3 -3
View File
@@ -1,5 +1,5 @@
import ./common-hadrian.nix {
version = "9.13.20250428";
rev = "22d11fa818fae2c95c494fc0fac1f8cb4c6e7cb6";
sha256 = "0f3xc4k662yrlx8abqqrbgvwzr0ffnpiw8z4a47nnai4xk5k0wjl";
version = "9.15.20250811";
rev = "c8d76a2994b8620c54adc2069f4728135d6b5059";
sha256 = "001rf9z5a1v2xpm9qjzz2p966m5bxmqcnykq0xgb3qf40vi9rnh4";
}
@@ -53,9 +53,6 @@ self: super:
// lib.optionalAttrs pkgs.stdenv.hostPlatform.isAarch64 {
# AARCH64-SPECIFIC OVERRIDES
# Corrupted store path https://github.com/NixOS/nixpkgs/pull/272097#issuecomment-1848414265
cachix = triggerRebuild 1 super.cachix;
# Doctests fail on aarch64 due to a GHCi linking bug
# https://gitlab.haskell.org/ghc/ghc/-/issues/15275#note_295437
# TODO: figure out if needed on aarch32 as well
File diff suppressed because it is too large Load Diff
@@ -65,6 +65,15 @@ self: super: {
# Becomes a core package in GHC >= 9.8
semaphore-compat = doDistribute self.semaphore-compat_1_0_0;
# Becomes a core package in GHC >= 9.10
os-string = doDistribute self.os-string_1_0_0;
# Becomes a core package in GHC >= 9.10, no release compatible with GHC < 9.10 is available
ghc-internal = null;
# Become core packages in GHC >= 9.10, but aren't uploaded to Hackage
ghc-toolchain = null;
ghc-platform = null;
# Only required for ghc >= 9.2
nothunks = super.nothunks.override {
wherefrom-compat = null;
@@ -82,18 +91,17 @@ self: super: {
# For GHC < 9.4, some packages need data-array-byte as an extra dependency
primitive = addBuildDepends [ self.data-array-byte ] super.primitive;
# For GHC < 9.2, os-string is not required.
hashable =
# hashable >= 1.5 only supports GHC >= 9.6 / base >= 4.18
hashable = self.hashable_1_4_7_0;
hashable_1_4_7_0 =
# extra deps for GHC < 9.4
addBuildDepends
[
self.data-array-byte
self.base-orphans
]
(
super.hashable.override {
os-string = null;
}
);
# For GHC < 9.2, os-string is not required
(super.hashable_1_4_7_0.override { os-string = null; });
# Too strict lower bounds on base
primitive-addr = doJailbreak super.primitive-addr;
@@ -116,7 +124,7 @@ self: super: {
(markBroken super.haskell-language-server);
# test suite depends on vcr since hpack >= 0.38.1 which requires GHC2021
hpack_0_38_1 = dontCheck super.hpack_0_38_1;
hpack = dontCheck super.hpack;
# Needs to use ghc-lib due to incompatible GHC
ghc-tags = doDistribute self.ghc-tags_1_5;
@@ -64,51 +64,26 @@ in
unix = null;
xhtml = null;
# “Unfortunately we are unable to support GHC 9.10.”
apply-refact = dontDistribute (markBroken super.apply-refact);
#
# Version upgrades
#
# Upgrade to accommodate new core library versions, where the authors have
# already made the relevant changes.
# 2025-04-09: jailbreak to allow hedgehog >= 1.5, hspec-hedgehog >=0.2
extensions = doJailbreak (doDistribute self.extensions_0_1_0_2);
fourmolu = doDistribute self.fourmolu_0_16_0_0;
# https://github.com/digital-asset/ghc-lib/issues/600
ghc-lib = doDistribute self.ghc-lib_9_10_2_20250515;
ghc-lib-parser = doDistribute self.ghc-lib-parser_9_10_2_20250515;
ghc-lib-parser-ex = doDistribute self.ghc-lib-parser-ex_9_10_0_0;
htree = doDistribute self.htree_0_2_0_0;
ormolu = doDistribute self.ormolu_0_7_7_0;
stylish-haskell = doDistribute self.stylish-haskell_0_15_0_1;
# A given major version of ghc-exactprint only supports one version of GHC.
ghc-exactprint = doDistribute self.ghc-exactprint_1_9_0_0;
ghc-exactprint_1_9_0_0 = addBuildDepends [
self.Diff
self.extra
self.ghc-paths
self.silently
self.syb
self.HUnit
] super.ghc-exactprint_1_9_0_0;
#
# Jailbreaks
#
# 2025-04-09: base <4.20, containers <0.7, filepath <1.5, Cabal-syntax <3.11
cabal-install-parsers =
assert super.cabal-install-parsers.version == "0.6.1.1";
doJailbreak super.cabal-install-parsers;
floskell = doJailbreak super.floskell; # base <4.20
# 2025-04-09: filepath <1.5
haddock-library =
assert super.haddock-library.version == "1.11.0";
doJailbreak super.haddock-library;
large-generics = doJailbreak super.large-generics; # base <4.20
tree-sitter = doJailbreak super.tree-sitter; # containers <0.7, filepath <1.5
hashable_1_5_0_0 = doJailbreak super.hashable_1_5_0_0; # relax bounds for QuickCheck, tasty, and tasty-quickcheck
#
# Test suite issues
#
@@ -116,12 +91,4 @@ in
fsnotify = dontCheck super.fsnotify; # https://github.com/haskell-fswatch/hfsnotify/issues/115
hinotify = pkgs.haskell.lib.dontCheck super.hinotify; # https://github.com/kolmodin/hinotify/issues/38
monad-dijkstra = dontCheck super.monad-dijkstra; # needs hlint 3.10
haskell-language-server = super.haskell-language-server.override {
floskell = null;
retrie = null;
hlint = null;
apply-refact = null;
};
}
@@ -71,37 +71,20 @@ with haskellLib;
# Hand pick versions that are compatible with ghc 9.12 and base 4.21
#
extra = doDistribute self.extra_1_8;
htree = doDistribute self.htree_0_2_0_0;
tagged = doDistribute self.tagged_0_8_9;
time-compat = doDistribute self.time-compat_1_9_8;
extensions = doDistribute self.extensions_0_1_0_3;
doctest = doDistribute self.doctest_0_24_2; # see :/doctest_0_24_2 =/ below
ghc-syntax-highlighter = doDistribute self.ghc-syntax-highlighter_0_0_13_0;
ghc-lib = doDistribute self.ghc-lib_9_12_2_20250421;
ghc-exactprint = doDistribute self.ghc-exactprint_1_12_0_0;
ghc-lib-parser = doDistribute self.ghc-lib-parser_9_12_2_20250421;
ghc-lib-parser-ex = doDistribute self.ghc-lib-parser-ex_9_12_0_0;
hlint = doDistribute self.hlint_3_10;
# fourmolu checks require Diff > 1.0, which is not yet supported by various other deps of hls.
fourmolu = doDistribute (dontCheck self.fourmolu_0_18_0_0);
ormolu = doDistribute self.ormolu_0_8_0_0;
stylish-haskell = doDistribute self.stylish-haskell_0_15_1_0;
apply-refact = doDistribute self.apply-refact_0_15_0_0;
#
# Jailbreaks
#
large-generics = doJailbreak super.large-generics; # base <4.20
time-compat_1_9_8 = doJailbreak super.time-compat_1_9_8; # too strict lower bound on QuickCheck
cpphs = overrideCabal (drv: {
# jail break manually the conditional dependencies
postPatch = ''
sed -i 's/time >=1.5 \&\& <1.13/time >=1.5 \&\& <=1.14/g' cpphs.cabal
'';
}) super.cpphs;
vector = doJailbreak super.vector; # doctest >=0.15 && <0.24
cabal-install-parsers = doJailbreak super.cabal-install-parsers; # base, Cabal-syntax, etc.
ghc-exactprint_1_12_0_0 = addBuildDepends [
# somehow buildDepends was missing
@@ -126,15 +109,6 @@ with haskellLib;
relude = dontCheck super.relude;
doctest_0_24_2 = overrideCabal (drv: {
testFlags = drv.testFlags or [ ] ++ [
# These tests require cabal-install (would cause infinite recursion)
"--skip=/Cabal.Options"
"--skip=/Cabal.Paths/paths"
"--skip=/Cabal.ReplOptions" # >= 0.23
];
}) super.doctest_0_24_2;
# https://gitlab.haskell.org/ghc/ghc/-/issues/25930
generic-lens = dontCheck super.generic-lens;
@@ -154,27 +128,4 @@ with haskellLib;
interpolate =
assert super.ghc.version == "9.12.2";
dontCheck super.interpolate;
#
# Multiple issues
#
doctest-parallel = overrideCabal (drv: {
patches = drv.patches or [ ] ++ [
(pkgs.fetchpatch {
name = "doctest-0.23.0-ghc-9.12.patch";
url = "https://github.com/martijnbastiaan/doctest-parallel/commit/d3df7aa5d223f3daeb676c8a7efe093ee743d54f.patch";
sha256 = "sha256-92CtqBCulfOTjLAeC205cIrqL/2CBP1YFLijTVcTD2M=";
includes = [ "src/Test/DocTest/Helpers.hs" ];
})
];
}) (dontCheck (doJailbreak super.doctest-parallel)); # Cabal >=2.4 && <3.13
haskell-language-server = super.haskell-language-server.override {
floskell = null;
retrie = null;
};
# Allow Cabal 3.14
hpack = doDistribute self.hpack_0_38_1;
}
@@ -45,12 +45,7 @@ self: super: {
stm = null;
system-cxx-std-lib = null;
template-haskell = null;
# GHC only builds terminfo if it is a native compiler
terminfo =
if pkgs.stdenv.hostPlatform == pkgs.stdenv.buildPlatform then
null
else
haskellLib.doDistribute self.terminfo_0_4_1_7;
terminfo = null;
text = null;
time = null;
transformers = null;
@@ -62,9 +62,18 @@ self: super: {
# their existence to callPackages, but their is no shim for lower GHC versions.
system-cxx-std-lib = null;
# Becomes a core package in GHC >= 9.10, no release compatible with GHC < 9.10 is available
ghc-internal = null;
# Become core packages in GHC >= 9.10, but aren't uploaded to Hackage
ghc-toolchain = null;
ghc-platform = null;
# Becomes a core package in GHC >= 9.8
semaphore-compat = doDistribute self.semaphore-compat_1_0_0;
# Becomes a core package in GHC >= 9.10
os-string = doDistribute self.os-string_2_0_8;
# weeder >= 2.5 requires GHC 9.4
weeder = doDistribute self.weeder_2_4_1;
# Allow dhall 1.42.*
@@ -81,8 +90,10 @@ self: super: {
"haskell-language-server has dropped support for ghc 9.2 in version 2.10.0.0, please use a newer ghc version or an older nixpkgs version"
(markBroken super.haskell-language-server);
# hashable >= 1.5 doesn't support base < 4.18
hashable = self.hashable_1_4_7_0;
# For GHC < 9.4, some packages need data-array-byte as an extra dependency
hashable = addBuildDepends [ self.data-array-byte ] super.hashable;
hashable_1_4_7_0 = addBuildDepends [ self.data-array-byte ] super.hashable_1_4_7_0;
primitive = addBuildDepends [ self.data-array-byte ] super.primitive;
primitive-unlifted = super.primitive-unlifted_0_1_3_1;
# Too strict lower bound on base
@@ -54,11 +54,22 @@ self: super: {
# Becomes a core package in GHC >= 9.8
semaphore-compat = doDistribute self.semaphore-compat_1_0_0;
# Becomes a core package in GHC >= 9.10
os-string = doDistribute self.os-string_2_0_8;
# Becomes a core package in GHC >= 9.10, no release compatible with GHC < 9.10 is available
ghc-internal = null;
# Become core packages in GHC >= 9.10, but aren't uploaded to Hackage
ghc-toolchain = null;
ghc-platform = null;
# only broken for >= 9.6
calligraphy = doDistribute (unmarkBroken super.calligraphy);
# Jailbreaks & Version Updates
# hashable >= 1.5 needs base >= 4.18
hashable = self.hashable_1_4_7_0;
hashable-time = doJailbreak super.hashable-time;
libmpd = doJailbreak super.libmpd;
@@ -105,6 +116,10 @@ self: super: {
}
);
# Last version to not depend on file-io and directory-ospath-streaming,
# which both need unix >= 2.8.
tar = self.tar_0_6_3_0;
# A given major version of ghc-exactprint only supports one version of GHC.
ghc-exactprint = super.ghc-exactprint_1_6_1_3;
@@ -62,6 +62,15 @@ in
# Becomes a core package in GHC >= 9.8
semaphore-compat = doDistribute self.semaphore-compat_1_0_0;
# Becomes a core package in GHC >= 9.10
os-string = doDistribute self.os-string_2_0_8;
# Becomes a core package in GHC >= 9.10, no release compatible with GHC < 9.10 is available
ghc-internal = null;
# Become core packages in GHC >= 9.10, but aren't uploaded to Hackage
ghc-toolchain = null;
ghc-platform = null;
# Needs base-orphans for GHC < 9.8 / base < 4.19
some = addBuildDepend self.base-orphans super.some;
@@ -188,4 +197,7 @@ in
# A given major version of ghc-exactprint only supports one version of GHC.
ghc-exactprint = addBuildDepend self.extra super.ghc-exactprint_1_7_1_0;
ghc-lib-parser = doDistribute self.ghc-lib-parser_9_10_3_20250912;
ghc-lib-parser-ex = doDistribute self.ghc-lib-parser-ex_9_10_0_0;
}
@@ -12,7 +12,7 @@ let
ver: pkg:
lib.warnIf (lib.versionOlder ver
super.${pkg.pname}.version
) "override for haskell.packages.ghc912.${pkg.pname} may no longer be needed" pkg;
) "override for haskell.packages.ghc98.${pkg.pname} may no longer be needed" pkg;
in
@@ -62,10 +62,18 @@ in
unix = null;
xhtml = null;
# Becomes a core package in GHC >= 9.10
os-string = doDistribute self.os-string_2_0_8;
# Becomes a core package in GHC >= 9.10, no release compatible with GHC < 9.10 is available
ghc-internal = null;
# Become core packages in GHC >= 9.10, but aren't uploaded to Hackage
ghc-toolchain = null;
ghc-platform = null;
#
# Version upgrades
#
megaparsec = doDistribute self.megaparsec_9_7_0;
ghc-tags = self.ghc-tags_1_8;
#
@@ -93,14 +101,9 @@ in
# A factor of 100 is insufficient, 200 seems seems to work.
hip = appendConfigureFlag "--ghc-options=-fsimpl-tick-factor=200" super.hip;
# 2025-04-21: "flavor" for GHC 9.8.5 is missing a fix introduced for 9.8.4. See:
# https://github.com/digital-asset/ghc-lib/pull/571#discussion_r2052684630
ghc-lib-parser = warnAfterVersion "9.8.5.20250214" (
overrideCabal {
postPatch = ''
substituteInPlace compiler/cbits/genSym.c \
--replace-fail "HsWord64 u = atomic_inc64" "HsWord64 u = atomic_inc"
'';
} super.ghc-lib-parser
);
# A given major version of ghc-exactprint only supports one version of GHC.
ghc-exactprint = doDistribute super.ghc-exactprint_1_8_0_0;
ghc-lib-parser = doDistribute self.ghc-lib-parser_9_10_3_20250912;
ghc-lib-parser-ex = doDistribute self.ghc-lib-parser-ex_9_10_0_0;
}
File diff suppressed because it is too large Load Diff
@@ -25,20 +25,21 @@
# not work.
# keep-sorted start skip_lines=1 case=no numeric=yes
default-package-overrides:
- chs-cabal < 0.1.1.2 # Incompatible with Cabal < 3.12
# 2024-12-23: last version to be compatible with Stackage LTS 22/23 (due to data-default)
- diagrams-input < 0.1.4
- extensions < 0.1.0.2 # Incompatible with Cabal < 3.12, the newest extensions version is only needed on ghc 9.10
- chs-cabal == 0.1.1.2 # matches Cabal 3.12 (GHC 9.10)
- extensions == 0.1.0.2 # matches Cabal 3.12 (GHC 9.10)
# 2025-07-26: HLS doesn't support hiedb >= 0.7 yet
- hiedb < 0.7
# 2024-08-17: Stackage doesn't contain hnix-store-core >= 0.8 yet, so we need to restrict hnix-store-remote
# 2025-09-13: hnix 0.17.0 doesn't support hnix-store-core >= 0.8
# https://github.com/haskell-nix/hnix/pull/1112
- hnix-store-core < 0.7
- hnix-store-remote < 0.7
# 2025-01-17: need to match stackage version of hosc
- hsc3 < 0.21
# 2024-12-31: last version that's compatible with GHC < 9.9
- htree < 0.2.0.0
# 2025-06-11: last version that supports pandoc == 3.6.* which is prescribed by LTS 23
- pandoc-crossref < 0.3.20
# 2025-08-03: need to match stackage version of hosc
- hsc3 >= 0.21 && < 0.22
# liquidhaskell-boot 0.9.10.1.2 requires this specific version of liquid-fixpoint
- liquid-fixpoint == 0.9.6.3.2
# liquidhaskell(-boot) support one GHC at a time, so we choose the one matching the current GHC (9.10)
- liquidhaskell == 0.9.10.*
- liquidhaskell-boot == 0.9.10.*
# keep-sorted end
# keep-sorted start skip_lines=1 case=no numeric=yes
@@ -47,15 +48,17 @@ extra-packages:
- 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.10.*
- Cabal == 3.12.* # version required for cabal-install and other packages
- Cabal == 3.12.*
- Cabal == 3.14.*
- Cabal == 3.16.* # version required for cabal-install and other packages
- cabal-add == 0.1 # 2025-09-09: Only needed for hls 2.11 can be removed once we are past it.
- Cabal-syntax == 3.6.* # Dummy package that ensures packages depending on Cabal-syntax can work for Cabal < 3.8
- Cabal-syntax == 3.8.* # version required for ormolu and fourmolu on ghc 9.0
- Cabal-syntax == 3.10.*
- Cabal-syntax == 3.12.* # version required for cabal-install and other packages
- commonmark-pandoc < 0.2.3 # 2025-04-06: Needed for pandoc 3.6
- extensions == 0.1.0.2 # 2024-10-20: for GHC 9.10/Cabal 3.12
- Cabal-syntax == 3.12.*
- Cabal-syntax == 3.14.*
- Cabal-syntax == 3.16.* # version required for cabal-install and other packages
- fourmolu == 0.14.0.0 # 2023-11-13: for ghc-lib-parser 9.6 compat
- fourmolu == 0.16.0.0 # 2025-01-27: for ghc 9.10 compat
- fsnotify < 0.4 # 2024-04-22: required by spago-0.21
- fuzzyset == 0.2.4 # 2023-12-20: Needed for building postgrest > 10
- ghc-exactprint == 0.6.* # 2022-12-12: needed for GHC < 9.2
@@ -69,14 +72,16 @@ extra-packages:
- ghc-lib == 9.10.* # 2024-12-30: preserve for GHC 9.10/ghc-tags 1.9
- ghc-lib-parser == 9.2.* # 2022-02-17: preserve for GHC 8.10, 9.0
- ghc-lib-parser == 9.6.* # 2024-05-19: preserve for GHC 9.2, 9.4
- ghc-lib-parser == 9.10.* # 2024-12-26: preserve for GHC 9.10
- ghc-lib-parser == 9.10.* # 2024-12-26: preserve for GHC 9.6, 9.8, 9.10
- ghc-lib-parser-ex == 9.2.* # 2022-07-13: preserve for GHC 8.10, 9.0
- ghc-lib-parser-ex == 9.6.* # 2024-05-19: preserve for GHC 9.2, 9.4
- ghc-lib-parser-ex == 9.10.* # 2024-12-26: preserve for 9.10 HLS
- ghc-lib-parser-ex == 9.10.* # 2024-12-26: preserve for GHC 9.6, 9.8, 9.10
- 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.*
- ghc-typelits-natnormalise < 0.8 # 2025-09-15: Stackage is stuck at 0.7.10
- happy == 1.20.* # for ghc-lib-parser == 9.6.*
- hashable < 1.5 # 2025-07-30: hashable >= 1.5 requires GHC >= 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
- hasql-implicits < 0.2 # 2025-01-19: Needed for building postgrest
@@ -84,7 +89,6 @@ extra-packages:
- hasql-pool < 1.1 # 2025-01-19: Needed for building postgrest
- hasql-transaction < 1.1.1 # 2025-01-19: Needed for building postgrest
- 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-megaparsec == 2.2.0 # 2023-11-18: Latest version compatible with ghc 9.0
- language-javascript == 0.7.0.0 # required by purescript
- lsp < 2.5 # 2024-07-08: need for koka
@@ -93,7 +97,7 @@ extra-packages:
- network-run == 0.4.0 # 2024-10-20: for GHC 9.10/network == 3.1.*
- 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
- os-string == 1.* # 2025-07-30: dummy package we need for pre os-string GHCs
- postgresql-binary < 0.14 # 2025-01-19: Needed for building postgrest
- primitive-unlifted == 0.1.3.1 # 2024-03-16: preserve for ghc 9.2
- retrie < 1.2.0.0 # 2022-12-30: preserve for ghc < 9.2
@@ -104,6 +108,9 @@ extra-packages:
- stylish-haskell == 0.14.5.0 # 2025-04-14: needed for hls with ghc-lib 9.6
- stylish-haskell == 0.15.0.1 # 2025-04-14: needed for hls with ghc-lib 9.10
- tar == 0.6.0.0 # 2025-02-08: last version to not require os-string (which can't be built with GHC < 9.2)
- tar == 0.6.3.0 # 2025-08-17: last version to not require file-io and directory-ospath-streaming (for GHC < 9.6)
- text-builder < 1 # 2025-08-27: Needed for building postgrest
- text-builder-dev < 0.4 # 2025-08-27: Needed for building postgrest
- text-metrics < 0.3.3 # 2025-02-08: >= 0.3.3 uses GHC2021
- versions < 6 # 2024-04-22: required by spago-0.21
- weeder == 2.3.* # 2022-05-31: preserve for GHC 9.0.2
@@ -143,7 +150,6 @@ package-maintainers:
- jsaddle-dom
- jsaddle-hello
- jsaddle-warp
- jsaddle-webkit2gtk
- jsaddle-wkwebview
- json-sop
- large-generics
@@ -177,6 +183,12 @@ package-maintainers:
- BNFC-meta
- alex-meta
- happy-meta
- liquid-fixpoint
- liquidhaskell
- liquidhaskell-boot
- smtlib-backends
- smtlib-backends-process
- smtlib-backends-tests
- vector-hashtables
arturcygan:
- hevm
@@ -362,6 +374,8 @@ package-maintainers:
- pdftotext
- warp-systemd
- amazonka
- libssh2
- sitemap
ncfavier:
- Agda
- irc-client
@@ -501,6 +515,7 @@ package-maintainers:
- regex-rure
- jacinda
- citeproc
- mighttpd2
# owothia
- irc-client
- chatter
@@ -913,11 +928,17 @@ dont-distribute-packages:
- yices-easy
- yices-painless
# These packages dont build because they use deprecated libsoup 2.4 versions.
- jsaddle-webkit2gtk
- gi-javascriptcore4
- gi-soup2
- gi-webkit2
- webkit2gtk3-javascriptcore
# These packages dont build because they use deprecated webkit versions.
- diagrams-hsqml
- dialog
- ghcjs-dom-webkit
- gi-webkit
- hsqml
- hsqml-datamodel
- hsqml-datamodel-vinyl
@@ -927,7 +948,6 @@ dont-distribute-packages:
- hsqml-demo-samples
- hsqml-morris
- hstorchat
- jsaddle-webkitgtk
- jsc
- lambdacat
- manatee-all
@@ -936,8 +956,6 @@ dont-distribute-packages:
- markup-preview
- spike
- web-browser-in-haskell
- webkit
- webkitgtk3-javascriptcore
- websnap
# mesos was removed from nixpkgs
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
@@ -123,6 +123,9 @@ builtins.intersectAttrs super {
+ drv.preCheck or "";
}) super.agda2lagda;
# Executable is of interest without the closure of the library
fix-whitespace = enableSeparateBinOutput super.fix-whitespace;
# scrypt requires SSE2
password = super.password.override (
lib.optionalAttrs (!(lib.meta.availableOn pkgs.stdenv.hostPlatform self.scrypt)) {
@@ -155,7 +158,13 @@ builtins.intersectAttrs super {
# cabal2nix incorrectly resolves this to pkgs.zip (could be improved over there).
streamly-zip = super.streamly-zip.override { zip = pkgs.libzip; };
threadscope = enableSeparateBinOutput super.threadscope;
# Requires wrapGAppsHook otherwise we get: https://github.com/haskell/ThreadScope/issues/143
# We cannot use enableSeparateBinOutput here since it doesn't work with wrapGAppsHook
threadscope = (
overrideCabal (drv: {
executableToolDepends = (drv.executableToolDepends or [ ]) ++ [ pkgs.wrapGAppsHook3 ];
}) super.threadscope
);
# Binary may be used separately for e.g. editor integrations
cabal-cargs = enableSeparateBinOutput super.cabal-cargs;
@@ -263,7 +272,22 @@ builtins.intersectAttrs super {
ormolu = self.generateOptparseApplicativeCompletions [ "ormolu" ] (
enableSeparateBinOutput super.ormolu
);
hnix = self.generateOptparseApplicativeCompletions [ "hnix" ] super.hnix;
hnix = lib.pipe super.hnix [
(self.generateOptparseApplicativeCompletions [ "hnix" ])
# For nix-instantiate(1)
(addTestToolDepends [ pkgs.nix ])
(overrideCabal (drv: {
testFlags = drv.testFlags or [ ] ++ [
"-p"
# Need to connect to the Nix daemon (?)
"!(/eval-okay-context-introspection/ || /eval-okay-context/ || /eval-okay-eq-derivations/ || /eval-okay-path/)"
];
}))
];
# Provides a library and an executable (pretty-derivation)
nix-derivation = enableSeparateBinOutput super.nix-derivation;
# Generate shell completion.
cabal2nix = self.generateOptparseApplicativeCompletions [ "cabal2nix" ] super.cabal2nix;
@@ -423,6 +447,14 @@ builtins.intersectAttrs super {
hasql-pool = dontCheck super.hasql-pool;
hasql-transaction = dontCheck super.hasql-transaction;
# Test dependency tree-sitter-while is not uploaded to Hackage,
# so cabal2nix automatically marks it as broken
hs-tree-sitter-capi = lib.pipe super.hs-tree-sitter-capi [
dontCheck
doDistribute
unmarkBroken
];
# Avoid compiling twice by providing executable as a separate output (with small closure size),
postgres-websockets = lib.pipe super.postgres-websockets [
enableSeparateBinOutput
@@ -752,6 +784,15 @@ builtins.intersectAttrs super {
# Break infinite recursion cycle with criterion and network-uri.
js-flot = dontCheck super.js-flot;
# Test suite unsets PATH, but wants to be able to run `whoami`
# https://github.com/stackbuilders/dotenv-hs/commit/6125dc2d260c5042f5416c1431882d1c2c91d3c8#issuecomment-3163926427
dotenv = overrideCabal (drv: {
postPatch = drv.postPatch or "" + ''
substituteInPlace spec/fixtures/.dotenv spec/Configuration/DotenvSpec.hs \
--replace-fail "whoami" "$(type -p whoami)"
'';
}) super.dotenv;
# Break infinite recursion cycle between QuickCheck and splitmix.
splitmix = dontCheck super.splitmix;
splitmix_0_1_1 = dontCheck super.splitmix_0_1_1;
@@ -774,11 +815,30 @@ builtins.intersectAttrs super {
# loc and loc-test depend on each other for testing. Break that infinite cycle:
loc-test = super.loc-test.override { loc = dontCheck self.loc; };
# The test suites try to run the "fixpoint" and "liquid" executables built just
# before and fail because the library search paths aren't configured properly.
# Also needs https://github.com/ucsd-progsys/liquidhaskell/issues/1038 resolved.
liquid-fixpoint = disableSharedExecutables super.liquid-fixpoint;
liquidhaskell = dontCheck (disableSharedExecutables super.liquidhaskell);
smtlib-backends-process = overrideCabal (drv: {
testSystemDepends = (drv.testSystemDepends or [ ]) ++ [ pkgs.z3 ];
}) super.smtlib-backends-process;
# overrideCabal because the tests need to execute the built executable "fixpoint"
liquid-fixpoint = overrideCabal (drv: {
preCheck = ''
export PATH=$PWD/dist/build/fixpoint:$PATH
''
+ (drv.preCheck or "");
testSystemDepends = (drv.testSystemDepends or [ ]) ++ [
pkgs.cvc5
pkgs.z3
];
}) super.liquid-fixpoint;
# overrideCabal because the tests need to execute the built executable "liquid"
liquidhaskell = overrideCabal (drv: {
preCheck = ''
export PATH=$PWD/dist/build/liquid:$PATH
''
+ (drv.preCheck or "");
libraryToolDepends = (drv.libraryToolDepends or [ ]) ++ [ pkgs.z3 ];
}) super.liquidhaskell;
# Break cyclic reference that results in an infinite recursion.
partial-semigroup = dontCheck super.partial-semigroup;
@@ -1267,22 +1327,7 @@ builtins.intersectAttrs super {
# not used to link against by anyone, we can make its closure smaller and
# add its runtime dependencies in `haskellPackages` (as opposed to cabal2nix).
cabal2nix-unstable = overrideCabal (drv: {
buildTools = (drv.buildTools or [ ]) ++ [
pkgs.buildPackages.makeWrapper
];
postInstall = ''
${drv.postInstall or ""}
wrapProgram $out/bin/cabal2nix \
--prefix PATH ":" "${
pkgs.lib.makeBinPath [
pkgs.nix
pkgs.nix-prefetch-scripts
]
}"
'';
passthru = {
passthru = drv.passthru or { } // {
updateScript = ../../../maintainers/scripts/haskell/update-cabal2nix-unstable.sh;
# This is used by regenerate-hackage-packages.nix to supply the configuration
@@ -1308,7 +1353,7 @@ builtins.intersectAttrs super {
>> "$out"
'';
};
}) (justStaticExecutables super.cabal2nix-unstable);
}) (enableSeparateBinOutput super.cabal2nix-unstable);
# test suite needs local redis daemon
nri-redis = dontCheck super.nri-redis;
@@ -1714,8 +1759,8 @@ builtins.intersectAttrs super {
gi-javascriptcore4
gi-javascriptcore6
gi-webkit2webextension
gi-gtk_4_0_12
gi-gdk_4_0_10
gi-gtk
gi-gdk
gi-gdk4
gi-gdkx114
gi-gtk4
@@ -1742,6 +1787,31 @@ builtins.intersectAttrs super {
jsaddle-warp = addTestToolDepends [ pkgs.nodejs ] super.jsaddle-warp;
# Hackage tarball doesn't have the executable bits from git repo
wai-app-file-cgi = overrideCabal (drv: {
preCheck = ''
${drv.preCheck or ""}
chmod +x test/cgi-bin/*
patchShebangs test/cgi-bin
'';
}) super.wai-app-file-cgi;
# All flags are off by default
mighttpd2 = lib.pipe super.mighttpd2 [
# Library shouldn't increase closure size of resulting daemon and utility executables
enableSeparateBinOutput
# Enable all possible features
(enableCabalFlag "dhall")
(addBuildDepends [ self.dhall ])
(enableCabalFlag "tls")
(addBuildDepends [
self.warp-tls
self.tls
])
# Can't build quic with Stackage LTS at the moment (random >= 1.3, tls >= 2.1.10)
(disableCabalFlag "quic")
];
# Makes the mpi-hs package respect the choice of mpi implementation in Nixpkgs.
# Also adds required test dependencies for checks to pass
mpi-hs =
@@ -1807,47 +1877,29 @@ builtins.intersectAttrs super {
xmobar = enableSeparateBinOutput super.xmobar;
# These test cases access the network
hpack_0_38_1 = doDistribute (
overrideCabal (drv: {
testFlags = drv.testFlags or [ ] ++ [
"--skip"
"/Hpack.Defaults/ensureFile/with 404/does not create any files/"
"--skip"
"/Hpack.Defaults/ensureFile/downloads file if missing/"
"--skip"
"/EndToEnd/hpack/defaults/fails if defaults don't exist/"
];
}) super.hpack_0_38_1
);
# Combination of library and executable
extensions = enableSeparateBinOutput super.extensions;
# 2024-08-09: Disable some cabal-doctest tests pending further investigation.
inherit
(lib.mapAttrs (
_: doctest:
lib.pipe doctest [
(overrideCabal (drv: {
patches = drv.patches or [ ] ++ [
(pkgs.fetchpatch {
name = "doctest-0.23.0-ghc-9.12.patch";
url = "https://github.com/sol/doctest/commit/77373c5d84cd5e59ea86ec30b9ada874f50fad9e.patch";
sha256 = "07dx99lna17fni1ccbklijx1ckkf2p4kk9wvkwib0ihmra70zpn2";
includes = [ "test/**" ];
})
];
testFlags = drv.testFlags or [ ] ++ [
# These tests require cabal-install (would cause infinite recursion)
"--skip=/Cabal.Options"
"--skip=/Cabal.Paths/paths"
"--skip=/Cabal.ReplOptions" # >= 0.23
];
}))
doDistribute
]
) { inherit (super) doctest doctest_0_23_0; })
doctest
doctest_0_23_0
;
# These test cases access the network
hpack = overrideCabal (drv: {
testFlags = drv.testFlags or [ ] ++ [
"--skip"
"/Hpack.Defaults/ensureFile/with 404/does not create any files/"
"--skip"
"/Hpack.Defaults/ensureFile/downloads file if missing/"
"--skip"
"/EndToEnd/hpack/defaults/fails if defaults don't exist/"
];
}) super.hpack;
doctest = overrideCabal (drv: {
testFlags = drv.testFlags or [ ] ++ [
# These tests require cabal-install (would cause infinite recursion)
"--skip=/Cabal.Options"
"--skip=/Cabal.Paths/paths"
"--skip=/Cabal.ReplOptions" # >= 0.23
];
}) super.doctest;
# tracked upstream: https://github.com/snapframework/openssl-streams/pull/11
# certificate used only 1024 Bit RSA key and SHA-1, which is not allowed in OpenSSL 3.1+
File diff suppressed because it is too large Load Diff
@@ -1,11 +0,0 @@
--- a/cabal-install.cabal
+++ b/cabal-install.cabal
@@ -261,7 +261,7 @@
-- newer directory for symlinks
build-depends: Win32 >= 2.8 && < 3, directory >=1.3.1.0
else
- build-depends: unix >= 2.5 && < 2.8 || >= 2.8.6.0 && < 2.9
+ build-depends: unix >= 2.5 && < 2.9
if flag(lukko)
build-depends: lukko >= 0.1 && <0.2
@@ -0,0 +1,11 @@
--- a/cabal-install.cabal
+++ b/cabal-install.cabal
@@ -275,7 +275,7 @@
, directory >=1.3.1.0
else
build-depends:
- , unix >= 2.5 && < 2.8 || >= 2.8.6.0 && < 2.9
+ , unix >= 2.5 && < 2.9
if flag(lukko)
build-depends:
@@ -0,0 +1,24 @@
diff -rN -u old-darcs.net/darcs.cabal new-darcs.net/darcs.cabal
--- old-darcs.net/darcs.cabal 2025-09-13 02:45:32.790227974 +0200
+++ new-darcs.net/darcs.cabal 2025-09-13 02:45:32.791227985 +0200
@@ -124,7 +124,7 @@
custom-setup
setup-depends: base >= 4.10 && < 4.20,
- Cabal >= 2.4 && < 3.11,
+ Cabal >= 2.4 && < 3.13,
process >= 1.2.3.0 && < 1.7,
filepath >= 1.4.1 && < 1.5.0.0,
directory >= 1.2.7 && < 1.4
diff -rN -u old-darcs.net/Setup.hs new-darcs.net/Setup.hs
--- old-darcs.net/Setup.hs 2025-09-13 02:45:32.789227964 +0200
+++ new-darcs.net/Setup.hs 2025-09-13 02:45:32.790227974 +0200
@@ -8,7 +8,7 @@
import Distribution.Package ( packageVersion )
import Distribution.Version( Version )
import Distribution.Simple.LocalBuildInfo
- ( LocalBuildInfo(..), absoluteInstallDirs )
+ ( LocalBuildInfo(..), absoluteInstallDirs, buildDir )
import Distribution.Simple.InstallDirs (mandir, CopyDest (NoCopyDest))
import Distribution.Simple.Setup
(buildVerbosity, copyDest, copyVerbosity, fromFlag,
@@ -0,0 +1,32 @@
diff -rN -u old-darcs.net/darcs.cabal new-darcs.net/darcs.cabal
--- old-darcs.net/darcs.cabal 2025-09-13 02:46:05.662572580 +0200
+++ new-darcs.net/darcs.cabal 2025-09-13 02:46:05.748573468 +0200
@@ -123,7 +123,7 @@
-- ----------------------------------------------------------------------
custom-setup
- setup-depends: base >= 4.10 && < 4.20,
+ setup-depends: base >= 4.10 && < 4.21,
Cabal >= 2.4 && < 3.13,
process >= 1.2.3.0 && < 1.7,
filepath >= 1.4.1 && < 1.5.0.0,
@@ -412,7 +412,7 @@
else
build-depends: unix >= 2.7.1.0 && < 2.9
- build-depends: base >= 4.10 && < 4.20,
+ build-depends: base >= 4.10 && < 4.21,
safe >= 0.3.20 && < 0.4,
stm >= 2.1 && < 2.6,
binary >= 0.5 && < 0.11,
@@ -447,7 +447,7 @@
temporary >= 1.2.1 && < 1.4,
process >= 1.2.3.0 && < 1.7,
array >= 0.5.1.0 && < 0.6,
- hashable >= 1.2.3.3 && < 1.5,
+ hashable >= 1.2.3.3 && < 1.6,
mmap >= 0.5.9 && < 0.6,
zlib >= 0.6.1.2 && < 0.8,
network-uri >= 2.6 && < 2.8,
@@ -1,255 +0,0 @@
{
mkDerivation,
aeson,
async,
attoparsec,
base,
base64-bytestring,
bifunctors,
binary,
binary-conduit,
boost,
bytestring,
Cabal,
cabal-pkg-config-version-hook,
cachix,
cachix-api,
conduit,
conduit-extra,
containers,
directory,
dlist,
exceptions,
file-embed,
filepath,
hercules-ci-api,
hercules-ci-api-agent,
hercules-ci-api-core,
hercules-ci-cnix-expr,
hercules-ci-cnix-store,
hostname,
hspec,
hspec-discover,
http-client,
http-client-tls,
http-conduit,
HUnit,
inline-c,
inline-c-cpp,
katip,
lens,
lens-aeson,
lib,
lifted-async,
lifted-base,
monad-control,
mtl,
network,
network-uri,
nix,
optparse-applicative,
process,
process-extras,
profunctors,
protolude,
QuickCheck,
safe-exceptions,
scientific,
servant,
servant-auth-client,
servant-client,
servant-client-core,
stm,
tagged,
temporary,
text,
time,
tls,
tomland,
transformers,
transformers-base,
unbounded-delays,
unix,
unliftio,
unliftio-core,
unordered-containers,
uuid,
vector,
websockets,
wuss,
}:
mkDerivation {
pname = "hercules-ci-agent";
version = "0.10.6";
sha256 = "5551c8eda390b48da6801f8f8580dc770e6e2fa2adf467ea7afd174748816fd6";
isLibrary = true;
isExecutable = true;
setupHaskellDepends = [
base
Cabal
cabal-pkg-config-version-hook
];
libraryHaskellDepends = [
aeson
async
base
binary
binary-conduit
bytestring
conduit
containers
directory
dlist
exceptions
file-embed
filepath
hercules-ci-api-agent
hercules-ci-api-core
hercules-ci-cnix-expr
hercules-ci-cnix-store
katip
lens
lens-aeson
lifted-async
lifted-base
monad-control
mtl
network
network-uri
process
process-extras
protolude
safe-exceptions
stm
tagged
temporary
text
time
tls
transformers
transformers-base
unbounded-delays
unix
unliftio
unliftio-core
uuid
vector
websockets
wuss
];
executableHaskellDepends = [
aeson
async
attoparsec
base
base64-bytestring
bifunctors
binary
binary-conduit
bytestring
cachix
cachix-api
conduit
conduit-extra
containers
directory
dlist
exceptions
filepath
hercules-ci-api
hercules-ci-api-agent
hercules-ci-api-core
hercules-ci-cnix-expr
hercules-ci-cnix-store
hostname
http-client
http-client-tls
http-conduit
inline-c
inline-c-cpp
katip
lens
lens-aeson
lifted-async
lifted-base
monad-control
mtl
network
network-uri
optparse-applicative
process
process-extras
profunctors
protolude
safe-exceptions
scientific
servant
servant-auth-client
servant-client
servant-client-core
stm
temporary
text
time
tomland
transformers
transformers-base
unix
unliftio
unliftio-core
unordered-containers
uuid
vector
websockets
wuss
];
executableSystemDepends = [ boost ];
executablePkgconfigDepends = [ nix ];
testHaskellDepends = [
aeson
async
attoparsec
base
bifunctors
binary
binary-conduit
bytestring
conduit
containers
exceptions
filepath
hercules-ci-api-agent
hercules-ci-api-core
hercules-ci-cnix-store
hspec
HUnit
katip
lens
lens-aeson
lifted-async
lifted-base
monad-control
mtl
process
profunctors
protolude
QuickCheck
safe-exceptions
scientific
stm
tagged
temporary
text
tomland
transformers
transformers-base
unliftio-core
unordered-containers
uuid
vector
];
testToolDepends = [ hspec-discover ];
homepage = "https://docs.hercules-ci.com";
description = "Runs Continuous Integration tasks on your machines";
license = lib.licenses.asl20;
}
@@ -1,82 +0,0 @@
{
mkDerivation,
aeson,
base,
boost,
bytestring,
Cabal,
cabal-pkg-config-version-hook,
conduit,
containers,
directory,
exceptions,
filepath,
hercules-ci-cnix-store,
hspec,
hspec-discover,
inline-c,
inline-c-cpp,
lib,
nix,
process,
protolude,
QuickCheck,
scientific,
temporary,
text,
unliftio,
unordered-containers,
vector,
}:
mkDerivation {
pname = "hercules-ci-cnix-expr";
version = "0.4.0.0";
sha256 = "ba6dadda0a14e456780df018a610209ef288ed6562ad5843cb8d19d38fc026ed";
setupHaskellDepends = [
base
Cabal
cabal-pkg-config-version-hook
];
libraryHaskellDepends = [
aeson
base
bytestring
conduit
containers
directory
exceptions
filepath
hercules-ci-cnix-store
inline-c
inline-c-cpp
protolude
scientific
text
unliftio
unordered-containers
vector
];
librarySystemDepends = [ boost ];
libraryPkgconfigDepends = [ nix ];
testHaskellDepends = [
aeson
base
bytestring
containers
filepath
hercules-ci-cnix-store
hspec
process
protolude
QuickCheck
scientific
temporary
text
unordered-containers
vector
];
testToolDepends = [ hspec-discover ];
homepage = "https://docs.hercules-ci.com";
description = "Bindings for the Nix evaluator";
license = lib.licenses.asl20;
}
@@ -1,65 +0,0 @@
{
mkDerivation,
base,
boost,
bytestring,
Cabal,
cabal-pkg-config-version-hook,
conduit,
containers,
exceptions,
hspec,
hspec-discover,
inline-c,
inline-c-cpp,
lib,
nix,
protolude,
template-haskell,
temporary,
text,
unix,
unliftio-core,
vector,
}:
mkDerivation {
pname = "hercules-ci-cnix-store";
version = "0.3.7.0";
sha256 = "6feba2a6e1a267bc69b67962ed6eaa3510b1ae31c411fdb4e6670763d175d3b1";
setupHaskellDepends = [
base
Cabal
cabal-pkg-config-version-hook
];
libraryHaskellDepends = [
base
bytestring
conduit
containers
inline-c
inline-c-cpp
protolude
template-haskell
unix
unliftio-core
vector
];
librarySystemDepends = [ boost ];
libraryPkgconfigDepends = [ nix ];
testHaskellDepends = [
base
bytestring
containers
exceptions
hspec
inline-c
inline-c-cpp
protolude
temporary
text
];
testToolDepends = [ hspec-discover ];
homepage = "https://docs.hercules-ci.com";
description = "Haskell bindings for Nix's libstore";
license = lib.licenses.asl20;
}
@@ -19,13 +19,13 @@
}:
mkDerivation rec {
pname = "changelog-d";
version = "1.0.1";
version = "1.0.2";
src = fetchFromGitea {
domain = "codeberg.org";
owner = "fgaz";
repo = "changelog-d";
rev = "v${version}";
hash = "sha256-4TbZD4pXP/5q+t3rTcdCsY5APWIcxhCMM+WsNO/6ke4=";
hash = "sha256-nPvuAkcFfK/NKXNBv8D2ePnB88WnjvmAIbzQHVvEXtk=";
};
isLibrary = false;
isExecutable = true;
@@ -1,7 +1,7 @@
{
mkDerivation,
base,
fetchFromGitHub,
fetchgit,
lib,
prettyprinter,
prettyprinter-ansi-terminal,
@@ -9,16 +9,15 @@
QuickCheck,
text,
transformers,
transformers-compat,
}:
mkDerivation {
pname = "hercules-ci-optparse-applicative";
version = "0.18.1.0";
src = fetchFromGitHub {
owner = "hercules-ci";
repo = "optparse-applicative";
sha256 = "1cgxc80zfgzk4rrhspnlj7790jb0ddq7ybj7qjan5xmjjir90763";
rev = "a123939663ba1cd0f1750343f1c6b9864ac21207";
version = "0.19.0.0";
src = fetchgit {
url = "https://github.com/hercules-ci/optparse-applicative.git";
sha256 = "068rsq9j0afrywbcqf6vg4ivfxbb68ab7f0lvg1na81mfn7sfakk";
rev = "b55bb38a2aea0cf776aec707cdce7c7418146077";
fetchSubmodules = true;
};
libraryHaskellDepends = [
base
@@ -27,7 +26,6 @@ mkDerivation {
process
text
transformers
transformers-compat
];
testHaskellDepends = [
base
@@ -36,5 +34,5 @@ mkDerivation {
homepage = "https://github.com/hercules-ci/optparse-applicative";
description = "Utilities and combinators for parsing command line options (fork)";
license = lib.licenses.bsd3;
maintainers = with lib.maintainers; [ roberth ];
maintainers = [ lib.maintainers.roberth ];
}
@@ -1,4 +1,4 @@
# See also ./make-hadria.nix
# See also ./make-hadrian.nix
{
mkDerivation,
base,
@@ -24,6 +24,8 @@
# GHC source tree to build hadrian from
ghcSrc,
ghcVersion,
# GHC we are using to bootstrap hadrian (stage0)
bootGhcVersion,
# Customization
userSettings ? null,
}:
@@ -48,12 +50,19 @@ mkDerivation {
"-O0"
];
jailbreak =
# Ignore lower bound on directory. Upstream uses this to avoid a race condition
# Ignore bound directory >= 1.3.9.0, unless the bootstrapping GHC ships it
# which is the case for >= 9.12. Upstream uses this to avoid a race condition
# that only seems to affect Windows. We never build GHC natively on Windows.
# https://gitlab.haskell.org/ghc/ghc/-/issues/24382
# https://gitlab.haskell.org/ghc/ghc/-/commit/a2c033cf82635c83f3107706634bebee43297b99
(lib.versionAtLeast ghcVersion "9.6.7" && lib.versionOlder ghcVersion "9.7")
|| (lib.versionAtLeast ghcVersion "9.12" && lib.versionOlder ghcVersion "9.15");
# See also https://gitlab.haskell.org/ghc/ghc/-/issues/24382,
# https://gitlab.haskell.org/ghc/ghc/-/commit/a2c033cf826,
# https://gitlab.haskell.org/ghc/ghc/-/commit/7890f2d8526…
(
lib.versionOlder bootGhcVersion "9.12"
&& (
(lib.versionAtLeast ghcVersion "9.6.7" && lib.versionOlder ghcVersion "9.7")
|| lib.versionAtLeast ghcVersion "9.11"
)
);
isLibrary = false;
isExecutable = true;
executableHaskellDepends = [
@@ -55,6 +55,8 @@ in
callPackage' ./hadrian.nix (
{
inherit userSettings;
# Taking `ghc` as an input may be too confusing
bootGhcVersion = bootPkgs.ghc.version;
}
// lib.optionalAttrs (lib.versionAtLeast ghcVersion "9.9") {
# Starting with GHC 9.9 development, additional in tree packages are required
@@ -1,5 +1,5 @@
#!/usr/bin/env nix-shell
#!nix-shell -i bash -p cabal2nix curl jq haskellPackages.cabal2nix-unstable -I nixpkgs=.
#!nix-shell -i bash -p curl jq haskellPackages.cabal2nix-unstable.bin nix-prefetch-scripts -I nixpkgs=.
#
# This script will update the spago derivation to the latest version using
# cabal2nix.
+4 -3
View File
@@ -1,6 +1,7 @@
{
lib,
writeText,
srcOnly,
haskellPackages,
cabal-install,
}:
@@ -20,9 +21,9 @@
sourceRoot=$(pwd)/scratch
mkdir -p "$sourceRoot"
cd "$sourceRoot"
tar -xf ${haskellPackages.constraints.src}
tar -xf ${haskellPackages.cereal.src}
cp ${writeText "cabal.project" "packages: constraints* cereal*"} cabal.project
cp -r "${srcOnly haskellPackages.constraints}" constraints
cp -r "${srcOnly haskellPackages.cereal}" cereal
cp ${writeText "cabal.project" "packages: constraints cereal"} cabal.project
'';
buildPhase = ''
export HOME=$(mktemp -d)
@@ -1,11 +1,11 @@
/*
If user need access to more haskell package for building his
diagrams, he simply has to pass these package through the
extra packages function as follow in `config.nix`:
If a user needs access to more haskell packages for building their
diagrams, they simply have to pass these packages through the
extraPackages function, as follows:
~~~
diagrams-builder.override {
extraPackages = self : [myHaskellPackage];
extraPackages = self: [ self.myHaskellPackage ];
}
­~~~
*/
@@ -25,27 +25,37 @@ let
wrappedGhc = ghcWithPackages (self: [ diagrams-builder ] ++ extraPackages self);
ghc = lib.getExe' wrappedGhc "ghc";
exeWrapper = backend: ''
makeWrapper \
"${diagrams-builder}/bin/diagrams-builder-${backend}" "$out/bin/diagrams-builder-${backend}" \
--set NIX_GHC ${ghc} \
--set NIX_GHC_LIBDIR "$(${ghc} --print-libdir)"
'';
exeWrapper =
backend:
let
exe = "${diagrams-builder}/bin/diagrams-builder-${backend}";
in
''
test ! -x "${exe}" || \
makeWrapper "${exe}" \
"$out/bin/diagrams-builder-${backend}" \
--set NIX_GHC ${ghc} \
--set NIX_GHC_LIBDIR "$(${ghc} --print-libdir)"
'';
backends = [
# Needs to match executable, suffix, not flag name
allBackends = [
"svg"
"cairo"
"ps"
"cairo"
"rasterific"
"pgf"
];
in
stdenv.mkDerivation {
name = "diagrams-builder";
pname = "diagrams-builder";
inherit (diagrams-builder) version;
nativeBuildInputs = [ makeWrapper ];
buildCommand = lib.concatStringsSep "\n" (map exeWrapper backends);
buildCommand = lib.concatStringsSep "\n" (map exeWrapper allBackends);
# Will be faster to build the wrapper locally then to fetch it from a binary cache.
preferLocalBuild = true;
+19 -29
View File
@@ -5082,24 +5082,18 @@ with pkgs;
haskell = recurseIntoAttrs (callPackage ./haskell-packages.nix { });
haskellPackages =
recurseIntoAttrs
# Prefer native-bignum to avoid linking issues with gmp
# GHC 9.6 rts can't be built statically with hadrian, so we need to use 9.4
# until 9.8 is ready
(
if stdenv.hostPlatform.isStatic then
haskell.packages.native-bignum.ghc94
# JS backend can't use gmp
else if stdenv.hostPlatform.isGhcjs then
haskell.packages.native-bignum.ghc98
# ICEs horribly on i686, see https://gitlab.haskell.org/ghc/ghc/-/issues/25904
# FIXME: remove when fixed
else if stdenv.hostPlatform.isi686 then
haskell.packages.ghc96
else
haskell.packages.ghc98
);
haskellPackages = recurseIntoAttrs (
# Prefer native-bignum to avoid linking issues with gmp;
# TemplateHaskell doesn't work with hadrian built GHCs yet
# https://github.com/NixOS/nixpkgs/issues/275304
if stdenv.hostPlatform.isStatic then
haskell.packages.native-bignum.ghc94
# JS backend can't use gmp
else if stdenv.hostPlatform.isGhcjs then
haskell.packages.native-bignum.ghc910
else
haskell.packages.ghc910
);
# haskellPackages.ghc is build->host (it exposes the compiler used to build the
# set, similarly to stdenv.cc), but pkgs.ghc should be host->target to be more
@@ -5110,21 +5104,17 @@ with pkgs;
# however, targetPackages won't be populated, so we need to fall back to the
# plain, cross-compiled compiler (which is only theoretical at the moment).
ghc =
targetPackages.haskellPackages.ghc or
# Prefer native-bignum to avoid linking issues with gmp
# Use 9.4 for static over broken 9.6
(
targetPackages.haskellPackages.ghc or (
# Prefer native-bignum to avoid linking issues with gmp;
# TemplateHaskell doesn't work with hadrian built GHCs yet
# https://github.com/NixOS/nixpkgs/issues/275304
if stdenv.targetPlatform.isStatic then
haskell.compiler.native-bignum.ghc94
# JS backend can't use GMP
else if stdenv.targetPlatform.isGhcjs then
haskell.compiler.native-bignum.ghc98
# ICEs horribly on i686, see https://gitlab.haskell.org/ghc/ghc/-/issues/25904
# FIXME: remove when fixed
else if stdenv.hostPlatform.isi686 then
haskell.compiler.ghc96
haskell.compiler.native-bignum.ghc910
else
haskell.compiler.ghc98
haskell.compiler.ghc910
);
alex = haskell.lib.compose.justStaticExecutables haskellPackages.alex;
@@ -14953,7 +14943,7 @@ with pkgs;
nix-delegate = haskell.lib.compose.justStaticExecutables haskellPackages.nix-delegate;
nix-deploy = haskell.lib.compose.justStaticExecutables haskellPackages.nix-deploy;
nix-derivation = haskell.lib.compose.justStaticExecutables haskellPackages.nix-derivation;
nix-derivation = haskellPackages.nix-derivation.bin;
nix-diff = haskell.lib.compose.justStaticExecutables haskellPackages.nix-diff;
nix-info = callPackage ../tools/nix/info { };
+1 -1
View File
@@ -316,7 +316,7 @@ in
ghcHEAD = callPackage ../development/haskell-modules {
buildHaskellPackages = bh.packages.ghcHEAD;
ghc = bh.compiler.ghcHEAD;
compilerConfig = callPackage ../development/haskell-modules/configuration-ghc-9.14.x.nix { };
compilerConfig = callPackage ../development/haskell-modules/configuration-ghc-9.16.x.nix { };
};
native-bignum =
+9 -13
View File
@@ -68,6 +68,7 @@ let
ghc984
ghc9101
ghc9102
ghc9103
# exclude ghc9121 due to severe miscompilation bug
ghc9122
];
@@ -349,8 +350,7 @@ let
uusi
uqm
uuagc
# vaultenv: broken by connection on 2024-03-16
wstunnel
vaultenv
xmobar
xmonadctl
xmonad-with-packages
@@ -431,8 +431,8 @@ let
;
};
haskell.packages.native-bignum.ghc984 = {
inherit (packagePlatforms pkgs.pkgsStatic.haskell.packages.native-bignum.ghc984)
haskell.packages.native-bignum.ghc9103 = {
inherit (packagePlatforms pkgs.pkgsStatic.haskell.packages.native-bignum.ghc9103)
hello
random
QuickCheck
@@ -477,14 +477,6 @@ let
;
};
haskell.packages.ghc98 = {
inherit (packagePlatforms pkgs.pkgsCross.ghcjs.haskell.packages.ghc98)
ghc
hello
microlens
;
};
haskell.packages.ghc912 = {
inherit (packagePlatforms pkgs.pkgsCross.ghcjs.haskell.packages.ghc912)
ghc
@@ -554,6 +546,7 @@ let
] released;
Cabal_3_12_1_0 = released;
Cabal_3_14_2_0 = released;
Cabal_3_16_0_0 = released;
cabal2nix = released;
cabal2nix-unstable = released;
funcmp = released;
@@ -561,12 +554,14 @@ let
# for 9.10, test that using filepath (instead of filepath-bytestring) works.
compilerNames.ghc9101
compilerNames.ghc9102
compilerNames.ghc9103
];
haskell-language-server = released;
hoogle = released;
hlint = lib.subtractLists [
compilerNames.ghc9101
compilerNames.ghc9102
compilerNames.ghc9103
compilerNames.ghc9122
] released;
hpack = released;
@@ -594,6 +589,7 @@ let
weeder = lib.subtractLists [
compilerNames.ghc9101
compilerNames.ghc9102
compilerNames.ghc9103
compilerNames.ghc9122
] released;
})
@@ -674,7 +670,7 @@ let
constituents = accumulateDerivations [
jobs.pkgsStatic.haskell.packages.native-bignum.ghc948 # non-hadrian
jobs.pkgsStatic.haskellPackages
jobs.pkgsStatic.haskell.packages.native-bignum.ghc984
jobs.pkgsStatic.haskell.packages.native-bignum.ghc9103
];
};
}