Merge haskell-updates PR #413046 into staging

This commit is contained in:
sternenseemann
2025-07-02 00:46:22 +02:00
52 changed files with 6977 additions and 5723 deletions
@@ -1,5 +1,5 @@
#! /usr/bin/env nix-shell
#! nix-shell -i bash -p coreutils haskellPackages.cabal2nix-unstable git nix nixfmt-rfc-style -I nixpkgs=.
#! nix-shell -i bash -p coreutils haskellPackages.cabal2nix-unstable git nixfmt-rfc-style -I nixpkgs=.
set -euo pipefail
@@ -1,5 +1,5 @@
#! /usr/bin/env nix-shell
#! nix-shell -i bash -p coreutils jq nix -I nixpkgs=.
#! nix-shell -i bash -p coreutils jq -I nixpkgs=.
set -euo pipefail
@@ -1,5 +1,5 @@
#! /usr/bin/env nix-shell
#! nix-shell -i bash -p nix curl jq git gnused -I nixpkgs=.
#! nix-shell -i bash -p curl jq git gnused -I nixpkgs=.
# See regenerate-hackage-packages.sh for details on the purpose of this script.
@@ -1,5 +1,5 @@
#! /usr/bin/env nix-shell
#! nix-shell -i bash -p nix curl jq git gnused gnugrep -I nixpkgs=.
#! nix-shell -i bash -p curl jq git gnused gnugrep -I nixpkgs=.
# shellcheck shell=bash
set -eu -o pipefail
@@ -1,5 +1,5 @@
#! /usr/bin/env nix-shell
#! nix-shell -i bash -p nix curl gnused -I nixpkgs=.
#! nix-shell -i bash -p curl gnused -I nixpkgs=.
# On Hackage every package description shows a category "Distributions" which
# lists a "NixOS" version.
+4 -4
View File
@@ -1,6 +1,6 @@
{
"commit": "0541f1fcdc25b23b03d1296ea03886da83d12375",
"url": "https://github.com/commercialhaskell/all-cabal-hashes/archive/0541f1fcdc25b23b03d1296ea03886da83d12375.tar.gz",
"sha256": "04ndjav4zirp0qzf8v3149m92ji092asiiyyrhkc8k4ca8hs8v8q",
"msg": "Update from Hackage at 2025-05-05T12:06:43Z"
"commit": "0b40331fe9f6ba2ce9cf1b8afe0a04aa79d36878",
"url": "https://github.com/commercialhaskell/all-cabal-hashes/archive/0b40331fe9f6ba2ce9cf1b8afe0a04aa79d36878.tar.gz",
"sha256": "03mjsvybfh8bq5v475pqqs5bs9xdb0pm2qrw9w892q0q0ir5b6na",
"msg": "Update from Hackage at 2025-06-01T18:10:16Z"
}
+10 -24
View File
@@ -8,6 +8,9 @@
let
fetchElmDeps = pkgs.callPackage ./lib/fetchElmDeps.nix { };
# Haskell packages that require ghc 9.8
hs98Pkgs = import ./packages/ghc9_8 { inherit pkgs lib; };
# Haskell packages that require ghc 9.6
hs96Pkgs = import ./packages/ghc9_6 {
inherit
@@ -19,12 +22,6 @@ let
;
};
# Haskell packages that require ghc 8.10
hs810Pkgs = import ./packages/ghc8_10 { inherit pkgs lib; };
# Haskell packages that require ghc 9.4
hs94Pkgs = import ./packages/ghc9_4 { inherit pkgs lib; };
# Patched, originally npm-downloaded, packages
patchedNodePkgs = import ./packages/node {
inherit
@@ -37,11 +34,7 @@ let
assembleScope =
self: basics:
(hs96Pkgs self).elmPkgs
// (hs94Pkgs self).elmPkgs
// (hs810Pkgs self).elmPkgs
// (patchedNodePkgs self)
// basics;
(hs98Pkgs self).elmPkgs // (hs96Pkgs self).elmPkgs // (patchedNodePkgs self) // basics;
in
lib.makeScope pkgs.newScope (
self:
@@ -53,21 +46,14 @@ lib.makeScope pkgs.newScope (
/*
Node/NPM based dependencies can be upgraded using script `packages/generate-node-packages.sh`.
* Packages which rely on `bin-wrap` will fail by default
and can be patched using `patchBinwrap` function defined in `packages/lib.nix`.
* Packages which depend on npm installation of elm can be patched using
`patchNpmElm` function also defined in `packages/lib.nix`.
`patchNpmElm` function defined in `packages/lib.nix`.
*/
elmLib =
let
hsElmPkgs = (hs810Pkgs self) // (hs96Pkgs self);
in
import ./lib {
inherit lib;
inherit (pkgs) writeScriptBin stdenv;
inherit (self) elm;
};
elmLib = import ./lib {
inherit lib;
inherit (pkgs) writeScriptBin stdenv;
inherit (self) elm;
};
elm-json = callPackage ./packages/elm-json { };
+1 -39
View File
@@ -5,44 +5,6 @@
elm,
}:
let
patchBinwrap =
let
# Patching binwrap by NoOp script
binwrap = writeScriptBin "binwrap" ''
#! ${stdenv.shell}
echo "binwrap called: Returning 0"
return 0
'';
binwrap-install = writeScriptBin "binwrap-install" ''
#! ${stdenv.shell}
echo "binwrap-install called: Doing nothing"
'';
in
targets: pkg:
pkg.override (old: {
nativeBuildInputs = (old.nativeBuildInputs or [ ]) ++ [
binwrap
binwrap-install
];
# Manually install targets
# by symlinking binaries into `node_modules`
postInstall =
let
binFile = module: lib.strings.removeSuffix ("-" + module.version) module.name;
in
(old.postInstall or "")
+ ''
${lib.concatStrings (
map (module: ''
echo "linking ${binFile module}"
ln -sf ${module}/bin/${binFile module} \
node_modules/${binFile module}/bin/${binFile module}
'') targets
)}
'';
});
patchNpmElm =
pkg:
pkg.override (old: {
@@ -60,5 +22,5 @@ let
});
in
{
inherit patchBinwrap patchNpmElm;
inherit patchNpmElm;
}
@@ -12,14 +12,3 @@ is part of its repository.
Node dependencies are defined in [node-packages.json](node/node-packages.json).
[Node2nix](https://github.com/svanderburg/node2nix) is used for generating nix expression
from this file. Use [generate-node-packages.sh](node/generate-node-packages.sh) for updates of nix expressions.
## Binwrap Patch
Some node packages might use [binwrap](https://github.com/avh4/binwrap) typically for installing
[elmi-to-json](https://github.com/stoeffel/elmi-to-json). Binwrap is not compatible with nix.
To overcome issues with those packages apply [patch-binwrap.nix](../lib/default.nix) which essentially does 2 things.
1. It replaces binwrap scripts with noop shell scripts
2. It uses nix for installing the binaries to expected location in `node_modules`
Example usage be found in `elm/default.nix`.
@@ -1,83 +0,0 @@
{ pkgs, lib }:
self:
pkgs.haskell.packages.ghc810.override {
overrides =
self: super:
let
inherit (pkgs.haskell.lib.compose) justStaticExecutables overrideCabal doJailbreak;
elmPkgs = {
elmi-to-json = justStaticExecutables (
overrideCabal (drv: {
version = "unstable-2021-07-19";
src = pkgs.fetchgit {
url = "https://github.com/stoeffel/elmi-to-json";
sha256 = "0vy678k15rzpsn0aly90fb01pxsbqkgf86pa86w0gd94lka8acwl";
rev = "6a42376ef4b6877e130971faf964578cc096e29b";
fetchSubmodules = true;
};
prePatch = ''
substituteInPlace package.yaml --replace "- -Werror" ""
hpack
'';
jailbreak = true;
description = "Tool that reads .elmi files (Elm interface file) generated by the elm compiler";
homepage = "https://github.com/stoeffel/elmi-to-json";
license = lib.licenses.bsd3;
maintainers = [ lib.maintainers.turbomack ];
}) (self.callPackage ./elmi-to-json { })
);
elm-instrument = justStaticExecutables (
overrideCabal (drv: {
version = "unstable-2020-03-16";
src = pkgs.fetchgit {
url = "https://github.com/zwilias/elm-instrument";
sha256 = "167d7l2547zxdj7i60r6vazznd9ichwc0bqckh3vrh46glkz06jv";
rev = "63e15bb5ec5f812e248e61b6944189fa4a0aee4e";
fetchSubmodules = true;
};
patches = [
# Update code after breaking change in optparse-applicative
# https://github.com/zwilias/elm-instrument/pull/5
(pkgs.fetchpatch {
name = "update-optparse-applicative.patch";
url = "https://github.com/mdevlamynck/elm-instrument/commit/c548709d4818aeef315528e842eaf4c5b34b59b4.patch";
sha256 = "0ln7ik09n3r3hk7jmwwm46kz660mvxfa71120rkbbaib2falfhsc";
})
];
prePatch = ''
sed "s/desc <-.*/let desc = \"${drv.version}\"/g" Setup.hs --in-place
'';
jailbreak = true;
# Tests are failing because of missing instances for Eq and Show type classes
doCheck = false;
description = "Instrument Elm code as a preprocessing step for elm-coverage";
homepage = "https://github.com/zwilias/elm-instrument";
license = lib.licenses.bsd3;
maintainers = [ lib.maintainers.turbomack ];
}) (self.callPackage ./elm-instrument { })
);
};
in
elmPkgs
// {
inherit elmPkgs;
# We need attoparsec < 0.14 to build elm for now
attoparsec = self.attoparsec_0_13_2_5;
# aeson 2.0.3.0 does not build with attoparsec_0_13_2_5
aeson = doJailbreak self.aeson_1_5_6_0;
# elm-instrument needs this
indents = self.callPackage ./indents { };
# elm-instrument's tests depend on an old version of elm-format, but we set doCheck to false for other reasons above
elm-format = null;
};
}
@@ -1,92 +0,0 @@
{
mkDerivation,
ansi-terminal,
ansi-wl-pprint,
base,
binary,
bytestring,
Cabal,
cmark,
containers,
directory,
elm-format,
fetchgit,
filepath,
free,
HUnit,
indents,
json,
lib,
mtl,
optparse-applicative,
parsec,
process,
QuickCheck,
quickcheck-io,
split,
tasty,
tasty-golden,
tasty-hunit,
tasty-quickcheck,
text,
}:
mkDerivation {
pname = "elm-instrument";
version = "0.0.7";
src = fetchgit {
url = "https://github.com/zwilias/elm-instrument";
sha256 = "14yfzwsyvgc6rzn19sdmwk2mc1vma9hcljnmjnmlig8mp0271v56";
rev = "31b527e405a6afdb25bb87ad7bd14f979e65cff7";
fetchSubmodules = true;
};
isLibrary = true;
isExecutable = true;
setupHaskellDepends = [
base
Cabal
directory
filepath
process
];
libraryHaskellDepends = [
ansi-terminal
ansi-wl-pprint
base
binary
bytestring
containers
directory
filepath
free
indents
json
mtl
optparse-applicative
parsec
process
split
text
];
executableHaskellDepends = [ base ];
testHaskellDepends = [
base
cmark
containers
elm-format
HUnit
mtl
parsec
QuickCheck
quickcheck-io
split
tasty
tasty-golden
tasty-hunit
tasty-quickcheck
text
];
homepage = "http://elm-lang.org";
description = "Instrumentation library for Elm";
license = lib.licenses.bsd3;
mainProgram = "elm-instrument";
}
@@ -1,51 +0,0 @@
{
mkDerivation,
aeson,
base,
binary,
bytestring,
containers,
directory,
fetchgit,
filepath,
ghc-prim,
hpack,
lib,
optparse-applicative,
text,
unliftio,
unordered-containers,
}:
mkDerivation {
pname = "elmi-to-json";
version = "1.3.0";
src = fetchgit {
url = "https://github.com/stoeffel/elmi-to-json";
sha256 = "0vy678k15rzpsn0aly90fb01pxsbqkgf86pa86w0gd94lka8acwl";
rev = "6a42376ef4b6877e130971faf964578cc096e29b";
fetchSubmodules = true;
};
isLibrary = true;
isExecutable = true;
libraryHaskellDepends = [
aeson
base
binary
bytestring
containers
directory
filepath
ghc-prim
optparse-applicative
text
unliftio
unordered-containers
];
libraryToolDepends = [ hpack ];
executableHaskellDepends = [ base ];
testHaskellDepends = [ base ];
prePatch = "hpack";
homepage = "https://github.com/stoeffel/elmi-to-json#readme";
license = lib.licenses.bsd3;
mainProgram = "elmi-to-json";
}
@@ -1,23 +0,0 @@
{
mkDerivation,
base,
concatenative,
lib,
mtl,
parsec,
}:
mkDerivation {
pname = "indents";
version = "0.3.3";
sha256 = "b61f51ac894609cb5571cc3ded12db5de97185a8de236c69ec24c87457109f9a";
libraryHaskellDepends = [
base
concatenative
mtl
parsec
];
doCheck = false;
homepage = "http://patch-tag.com/r/salazar/indents";
description = "indentation sensitive parser-combinators for parsec";
license = lib.licenses.bsd3;
}
@@ -1,53 +0,0 @@
{ pkgs, lib }:
self:
pkgs.haskell.packages.ghc94.override {
overrides =
self: super:
let
inherit (pkgs.haskell.lib.compose) justStaticExecutables overrideCabal doJailbreak;
elmPkgs = {
/*
The elm-format expression is updated via a script in the https://github.com/avh4/elm-format repo:
`package/nix/build.sh`
*/
elm-format = justStaticExecutables (
overrideCabal (drv: {
jailbreak = true;
doHaddock = false;
postPatch = ''
mkdir -p ./generated
cat <<EOHS > ./generated/Build_elm_format.hs
module Build_elm_format where
gitDescribe :: String
gitDescribe = "${drv.version}"
EOHS
'';
description = "Formats Elm source code according to a standard set of rules based on the official Elm Style Guide";
homepage = "https://github.com/avh4/elm-format";
license = lib.licenses.bsd3;
maintainers = with lib.maintainers; [
avh4
turbomack
];
}) (self.callPackage ./elm-format/elm-format.nix { })
);
};
fixHaddock = overrideCabal (_: {
configureFlags = [ "--ghc-option=-Wno-error=unused-packages" ];
doHaddock = false;
});
in
elmPkgs
// {
inherit elmPkgs;
# Needed for elm-format
avh4-lib = fixHaddock (doJailbreak (self.callPackage ./elm-format/avh4-lib.nix { }));
elm-format-lib = fixHaddock (doJailbreak (self.callPackage ./elm-format/elm-format-lib.nix { }));
elm-format-test-lib = fixHaddock (self.callPackage ./elm-format/elm-format-test-lib.nix { });
elm-format-markdown = fixHaddock (self.callPackage ./elm-format/elm-format-markdown.nix { });
};
}
@@ -21,6 +21,6 @@ mkDerivation {
base
];
homepage = "http://github.com/ekmett/ansi-wl-pprint";
description = "Wadler/Leijen Pretty Printer for colored ANSI terminal output";
description = "The Wadler/Leijen Pretty Printer for colored ANSI terminal output";
license = lib.licenses.bsd3;
}
@@ -83,7 +83,7 @@ mkDerivation {
zip-archive
];
homepage = "https://elm-lang.org";
description = "`elm` command line interface";
description = "The `elm` command line interface";
license = lib.licenses.bsd3;
mainProgram = "elm";
}
@@ -0,0 +1,43 @@
{ pkgs, lib }:
self:
pkgs.haskell.packages.ghc98.override {
overrides =
self: super:
let
inherit (pkgs.haskell.lib.compose) justStaticExecutables overrideCabal;
elmPkgs = {
# Post-patch override taken from the upstream repository:
# https://github.com/avh4/elm-format/blob/e7e5da37716acbfb4954a88128b5cc72b2c911d9/package/nix/generate_derivation.sh
elm-format = justStaticExecutables (
overrideCabal (drv: {
postPatch = ''
mkdir -p ./generated
cat <<EOHS > ./generated/Build_elm_format.hs
module Build_elm_format where
gitDescribe :: String
gitDescribe = "${drv.version}"
EOHS
'';
homepage = "https://github.com/avh4/elm-format";
maintainers = with lib.maintainers; [
avh4
turbomack
];
}) (self.callPackage ./elm-format/elm-format.nix { })
);
};
in
elmPkgs
// {
inherit elmPkgs;
# Needed for elm-format
avh4-lib = self.callPackage ./elm-format/avh4-lib.nix { };
elm-format-lib = self.callPackage ./elm-format/elm-format-lib.nix { };
elm-format-test-lib = self.callPackage ./elm-format/elm-format-test-lib.nix { };
elm-format-markdown = self.callPackage ./elm-format/elm-format-markdown.nix { };
};
}
@@ -13,7 +13,6 @@
relude,
tasty,
tasty-discover,
tasty-hspec,
tasty-hunit,
text,
}:
@@ -22,8 +21,8 @@ mkDerivation {
version = "0.0.0.1";
src = fetchgit {
url = "https://github.com/avh4/elm-format";
sha256 = "04l1bn4w8q3ifd6mc4mfrqxfbihmqnpfjdn6gr0x2jqcasjbk0bi";
rev = "b5cca4c26b473dab06e5d73b98148637e4770d45";
sha256 = "13i1wgva6p9zsx1a7sfb3skc0rv187isb920chkhljyh48c12k8l";
rev = "d07fddc8c0eef412dba07be4ab8768d6abcca796";
fetchSubmodules = true;
};
postUnpack = "sourceRoot+=/avh4-lib; echo source root reset to $sourceRoot";
@@ -50,11 +49,11 @@ mkDerivation {
process
relude
tasty
tasty-hspec
tasty-hunit
text
];
testToolDepends = [ tasty-discover ];
doHaddock = false;
description = "Common code for haskell projects";
license = lib.licenses.bsd3;
}
@@ -27,8 +27,8 @@ mkDerivation {
version = "0.0.0.1";
src = fetchgit {
url = "https://github.com/avh4/elm-format";
sha256 = "04l1bn4w8q3ifd6mc4mfrqxfbihmqnpfjdn6gr0x2jqcasjbk0bi";
rev = "b5cca4c26b473dab06e5d73b98148637e4770d45";
sha256 = "13i1wgva6p9zsx1a7sfb3skc0rv187isb920chkhljyh48c12k8l";
rev = "d07fddc8c0eef412dba07be4ab8768d6abcca796";
fetchSubmodules = true;
};
postUnpack = "sourceRoot+=/elm-format-lib; echo source root reset to $sourceRoot";
@@ -67,6 +67,7 @@ mkDerivation {
text
];
testToolDepends = [ tasty-discover ];
doHaddock = false;
description = "Common code used by elm-format and elm-refactor";
license = lib.licenses.bsd3;
}
@@ -12,8 +12,8 @@ mkDerivation {
version = "0.0.0.1";
src = fetchgit {
url = "https://github.com/avh4/elm-format";
sha256 = "04l1bn4w8q3ifd6mc4mfrqxfbihmqnpfjdn6gr0x2jqcasjbk0bi";
rev = "b5cca4c26b473dab06e5d73b98148637e4770d45";
sha256 = "13i1wgva6p9zsx1a7sfb3skc0rv187isb920chkhljyh48c12k8l";
rev = "d07fddc8c0eef412dba07be4ab8768d6abcca796";
fetchSubmodules = true;
};
postUnpack = "sourceRoot+=/elm-format-markdown; echo source root reset to $sourceRoot";
@@ -23,6 +23,7 @@ mkDerivation {
mtl
text
];
doHaddock = false;
description = "Markdown parsing for Elm documentation comments";
license = lib.licenses.bsd3;
}
@@ -22,8 +22,8 @@ mkDerivation {
version = "0.0.0.1";
src = fetchgit {
url = "https://github.com/avh4/elm-format";
sha256 = "04l1bn4w8q3ifd6mc4mfrqxfbihmqnpfjdn6gr0x2jqcasjbk0bi";
rev = "b5cca4c26b473dab06e5d73b98148637e4770d45";
sha256 = "13i1wgva6p9zsx1a7sfb3skc0rv187isb920chkhljyh48c12k8l";
rev = "d07fddc8c0eef412dba07be4ab8768d6abcca796";
fetchSubmodules = true;
};
postUnpack = "sourceRoot+=/elm-format-test-lib; echo source root reset to $sourceRoot";
@@ -56,6 +56,7 @@ mkDerivation {
text
];
testToolDepends = [ tasty-discover ];
doHaddock = false;
description = "Test helpers used by elm-format-tests and elm-refactor-tests";
license = lib.licenses.bsd3;
}
@@ -22,11 +22,11 @@
}:
mkDerivation {
pname = "elm-format";
version = "0.8.7";
version = "0.8.8";
src = fetchgit {
url = "https://github.com/avh4/elm-format";
sha256 = "04l1bn4w8q3ifd6mc4mfrqxfbihmqnpfjdn6gr0x2jqcasjbk0bi";
rev = "b5cca4c26b473dab06e5d73b98148637e4770d45";
sha256 = "13i1wgva6p9zsx1a7sfb3skc0rv187isb920chkhljyh48c12k8l";
rev = "d07fddc8c0eef412dba07be4ab8768d6abcca796";
fetchSubmodules = true;
};
isLibrary = false;
@@ -61,8 +61,9 @@ mkDerivation {
tasty-quickcheck
text
];
doHaddock = false;
homepage = "https://elm-lang.org";
description = "Source code formatter for Elm";
description = "A source code formatter for Elm";
license = lib.licenses.bsd3;
mainProgram = "elm-format";
}
@@ -12,25 +12,6 @@ let
inherit pkgs nodejs;
inherit (pkgs.stdenv.hostPlatform) system;
};
ESBUILD_BINARY_PATH = lib.getExe (
pkgs.esbuild.override {
buildGoModule =
args:
pkgs.buildGoModule (
args
// rec {
version = "0.20.2";
src = pkgs.fetchFromGitHub {
owner = "evanw";
repo = "esbuild";
rev = "v${version}";
hash = "sha256-h/Vqwax4B4nehRP9TaYbdixAZdb1hx373dNxNHvDrtY=";
};
vendorHash = "sha256-+BfxCyg0KkDQpHt/wycy/8CTG6YBA/VJvJFhhzUnSiQ=";
}
);
}
);
in
with self;
with elmLib;
@@ -43,65 +24,17 @@ with elmLib;
elm-git-install
;
elm-verify-examples =
let
patched = patchBinwrap [ elmi-to-json ] nodePkgs.elm-verify-examples // {
meta =
with lib;
nodePkgs.elm-verify-examples.meta
// {
description = "Verify examples in your docs";
homepage = "https://github.com/stoeffel/elm-verify-examples";
license = licenses.bsd3;
maintainers = [ maintainers.turbomack ];
};
elm-verify-examples = nodePkgs.elm-verify-examples // {
meta =
with lib;
nodePkgs.elm-verify-examples.meta
// {
description = "Verify examples in your docs";
homepage = "https://github.com/stoeffel/elm-verify-examples";
license = licenses.bsd3;
maintainers = [ maintainers.turbomack ];
};
in
patched.override (old: {
inherit ESBUILD_BINARY_PATH;
preRebuild =
(old.preRebuild or "")
+ ''
# This should not be needed (thanks to binwrap* being nooped) but for some reason it still needs to be done
# in case of just this package
# TODO: investigate, same as for elm-coverage below
sed 's/\"install\".*/\"install\":\"echo no-op\",/g' --in-place node_modules/elmi-to-json/package.json
'';
});
elm-coverage =
let
patched = patchNpmElm (patchBinwrap [ elmi-to-json ] nodePkgs.elm-coverage);
in
patched.override (old: {
# Symlink Elm instrument binary
preRebuild =
(old.preRebuild or "")
+ ''
# Noop custom installation script
sed 's/\"install\".*/\"install\":\"echo no-op\"/g' --in-place package.json
# This should not be needed (thanks to binwrap* being nooped) but for some reason it still needs to be done
# in case of just this package
# TODO: investigate
sed 's/\"install\".*/\"install\":\"echo no-op\",/g' --in-place node_modules/elmi-to-json/package.json
'';
postInstall =
(old.postInstall or "")
+ ''
mkdir -p unpacked_bin
ln -sf ${elm-instrument}/bin/elm-instrument unpacked_bin/elm-instrument
'';
meta =
with lib;
nodePkgs.elm-coverage.meta
// {
description = "Work in progress - Code coverage tooling for Elm";
homepage = "https://github.com/zwilias/elm-coverage";
license = licenses.bsd3;
maintainers = [ maintainers.turbomack ];
};
});
};
create-elm-app = patchNpmElm nodePkgs.create-elm-app // {
meta =
@@ -13,12 +13,12 @@ let
pkgs.buildGoModule (
args
// rec {
version = "0.21.5";
version = "0.25.5";
src = pkgs.fetchFromGitHub {
owner = "evanw";
repo = "esbuild";
rev = "v${version}";
hash = "sha256-FpvXWIlt67G8w3pBKZo/mcp57LunxDmRUaCU/Ne89B8=";
hash = "sha256-jemGZkWmN1x2+ZzJ5cLp3MoXO0oDKjtZTmZS9Be/TDw=";
};
vendorHash = "sha256-+BfxCyg0KkDQpHt/wycy/8CTG6YBA/VJvJFhhzUnSiQ=";
}
@@ -33,10 +33,6 @@ nodePkgs."elm-pages".overrideAttrs (old: {
old.nodejs.pkgs.node-gyp-build
];
preRebuild = ''
sed -i 's/"esbuild": "0\.19\.12"/"esbuild": "0.21.5"/' package.json
'';
# can't use `patches = [ <patch_file> ]` with a nodePkgs derivation;
# need to patch in one of the build phases instead.
# see upstream issue https://github.com/dillonkearns/elm-pages/issues/305 for dealing with the read-only problem
@@ -10,5 +10,3 @@ $(nix-build $ROOT -A nodePackages.node2nix --no-out-link)/bin/node2nix \
-o node-packages.nix \
-c node-composition.nix \
--no-copy-node-env -e ../../../../node-packages/node-env.nix
# well, elm-pages requires two different version of esbuild so we twist it's wrist to only use one
sed -i 's/sources."esbuild-0.19.12"/sources."esbuild-0.21.5"/' node-packages.nix
@@ -1,6 +1,5 @@
[
"elm-analyse",
"elm-coverage",
"elm-doc-preview",
"@elm-tooling/elm-language-server",
"elm-live",
File diff suppressed because it is too large Load Diff
+3 -5
View File
@@ -2,13 +2,11 @@
#!nix-shell -p cabal2nix elm2nix -i bash ../../..
# Update all cabal packages.
cabal2nix 'https://github.com/zwilias/elm-instrument' --revision '0.0.7' > packages/ghc8_10/elm-instrument/default.nix
for subpath in 'avh4-lib' 'elm-format-lib' 'elm-format-markdown' 'elm-format-test-lib'; do
cabal2nix 'https://github.com/avh4/elm-format' --revision '0.8.7' \
--subpath $subpath > packages/ghc9_2/elm-format/${subpath}.nix
cabal2nix --no-haddock 'https://github.com/avh4/elm-format' --revision '0.8.8' \
--subpath $subpath > packages/ghc9_8/elm-format/${subpath}.nix
done
cabal2nix 'https://github.com/avh4/elm-format' --revision '0.8.7' > packages/ghc9_2/elm-format/elm-format.nix
cabal2nix 'https://github.com/stoeffel/elmi-to-json' --revision '1.3.0' > packages/ghc8_10/elmi-to-json/default.nix
cabal2nix --no-haddock 'https://github.com/avh4/elm-format' --revision '0.8.8' > packages/ghc9_8/elm-format/elm-format.nix
cabal2nix 'https://github.com/ekmett/ansi-wl-pprint' --revision 'v0.6.8.1' > packages/ghc9_6/ansi-wl-pprint/default.nix
# We're building binaries from commit that npm installer is using since
@@ -342,12 +342,17 @@ stdenv.mkDerivation {
-exec sed -i "s@extra-lib-dirs: @extra-lib-dirs: ${libiconv}/lib@" {} \;
''
+
# aarch64 does HAVE_NUMA so -lnuma requires it in library-dirs in rts/package.conf.in
# Some platforms do HAVE_NUMA so -lnuma requires it in library-dirs in rts/package.conf.in
# FFI_LIB_DIR is a good indication of places it must be needed.
lib.optionalString (stdenv.hostPlatform.isLinux && stdenv.hostPlatform.isAarch64) ''
find . -name package.conf.in \
-exec sed -i "s@FFI_LIB_DIR@FFI_LIB_DIR ${numactl.out}/lib@g" {} \;
''
lib.optionalString
(
lib.meta.availableOn stdenv.hostPlatform numactl
&& builtins.any ({ nixPackage, ... }: nixPackage == numactl) binDistUsed.archSpecificLibraries
)
''
find . -name package.conf.in \
-exec sed -i "s@FFI_LIB_DIR@FFI_LIB_DIR ${numactl.out}/lib@g" {} \;
''
+
# Rename needed libraries and binaries, fix interpreter
lib.optionalString stdenv.hostPlatform.isLinux ''
@@ -0,0 +1,511 @@
{
lib,
stdenv,
fetchurl,
perl,
gcc,
ncurses5,
ncurses6,
gmp,
libiconv,
numactl,
libffi,
llvmPackages,
coreutils,
targetPackages,
# minimal = true; will remove files that aren't strictly necessary for
# regular builds and GHC bootstrapping.
# This is "useful" for staying within hydra's output limits for at least the
# aarch64-linux architecture.
minimal ? false,
}:
# Prebuilt only does native
assert stdenv.targetPlatform == stdenv.hostPlatform;
let
downloadsUrl = "https://downloads.haskell.org/ghc";
# Copy sha256 from https://downloads.haskell.org/~ghc/9.0.2/SHA256SUMS
version = "9.0.2";
# Information about available bindists that we use in the build.
#
# # Bindist library checking
#
# The field `archSpecificLibraries` also provides a way for us get notified
# early when the upstream bindist changes its dependencies (e.g. because a
# newer Debian version is used that uses a new `ncurses` version).
#
# Usage:
#
# * You can find the `fileToCheckFor` of libraries by running `readelf -d`
# on the compiler binary (`exePathForLibraryCheck`).
# * To skip library checking for an architecture,
# set `exePathForLibraryCheck = null`.
# * To skip file checking for a specific arch specific library,
# set `fileToCheckFor = null`.
ghcBinDists = {
# Binary distributions for the default libc (e.g. glibc, or libSystem on Darwin)
# nixpkgs uses for the respective system.
defaultLibc = {
i686-linux = {
variantSuffix = "";
src = {
url = "${downloadsUrl}/${version}/ghc-${version}-i386-deb9-linux.tar.xz";
sha256 = "fdeb9f8928fbe994064778a8e1e85bb1a58a6cd3dd7b724fcc2a1dcfda6cad47";
};
exePathForLibraryCheck = "ghc/stage2/build/tmp/ghc-stage2";
archSpecificLibraries = [
{
nixPackage = gmp;
fileToCheckFor = null;
}
# The i686-linux bindist provided by GHC HQ is currently built on Debian 9,
# which link it against `libtinfo.so.5` (ncurses 5).
# Other bindists are linked `libtinfo.so.6` (ncurses 6).
{
nixPackage = ncurses5;
fileToCheckFor = "libtinfo.so.5";
}
];
};
x86_64-linux = {
variantSuffix = "";
src = {
url = "${downloadsUrl}/${version}/ghc-${version}-x86_64-deb10-linux.tar.xz";
sha256 = "5d0b9414b10cfb918453bcd01c5ea7a1824fe95948b08498d6780f20ba247afc";
};
exePathForLibraryCheck = "ghc/stage2/build/tmp/ghc-stage2";
archSpecificLibraries = [
{
nixPackage = gmp;
fileToCheckFor = null;
}
{
nixPackage = ncurses6;
fileToCheckFor = "libtinfo.so.6";
}
{
nixPackage = numactl;
fileToCheckFor = null;
}
];
};
aarch64-linux = {
variantSuffix = "";
src = {
url = "${downloadsUrl}/${version}/ghc-${version}-aarch64-deb10-linux.tar.xz";
sha256 = "cb016344c70a872738a24af60bd15d3b18749087b9905c1b3f1b1549dc01f46d";
};
exePathForLibraryCheck = "ghc/stage2/build/tmp/ghc-stage2";
archSpecificLibraries = [
{
nixPackage = gmp;
fileToCheckFor = null;
}
{
nixPackage = ncurses6;
fileToCheckFor = "libtinfo.so.6";
}
{
nixPackage = numactl;
fileToCheckFor = null;
}
];
};
x86_64-darwin = {
variantSuffix = "";
src = {
url = "${downloadsUrl}/${version}/ghc-${version}-x86_64-apple-darwin.tar.xz";
sha256 = "e1fe990eb987f5c4b03e0396f9c228a10da71769c8a2bc8fadbc1d3b10a0f53a";
};
exePathForLibraryCheck = null; # we don't have a library check for darwin yet
archSpecificLibraries = [
{
nixPackage = gmp;
fileToCheckFor = null;
}
{
nixPackage = ncurses6;
fileToCheckFor = null;
}
{
nixPackage = libiconv;
fileToCheckFor = null;
}
];
};
aarch64-darwin = {
variantSuffix = "";
src = {
url = "${downloadsUrl}/${version}/ghc-${version}-aarch64-apple-darwin.tar.xz";
sha256 = "b1fcab17fe48326d2ff302d70c12bc4cf4d570dfbbce68ab57c719cfec882b05";
};
exePathForLibraryCheck = null; # we don't have a library check for darwin yet
archSpecificLibraries = [
{
nixPackage = gmp;
fileToCheckFor = null;
}
{
nixPackage = ncurses6;
fileToCheckFor = null;
}
{
nixPackage = libiconv;
fileToCheckFor = null;
}
];
};
};
# Binary distributions for the musl libc for the respective system.
musl = {
x86_64-linux = {
variantSuffix = "-musl";
src = {
url = "${downloadsUrl}/${version}/ghc-${version}-x86_64-alpine3.12-linux-gmp.tar.xz";
sha256 = "5bb1e7192c2b9fcff68930dbdc65509d345138e9a43c5d447056a68decc05ec8";
};
exePathForLibraryCheck = "bin/ghc";
archSpecificLibraries = [
{
nixPackage = gmp;
fileToCheckFor = null;
}
{
nixPackage = ncurses6;
fileToCheckFor = "libncursesw.so.6";
}
];
};
};
};
distSetName = if stdenv.hostPlatform.isMusl then "musl" else "defaultLibc";
binDistUsed =
ghcBinDists.${distSetName}.${stdenv.hostPlatform.system}
or (throw "cannot bootstrap GHC on this platform ('${stdenv.hostPlatform.system}' with libc '${distSetName}')");
gmpUsed =
(builtins.head (
builtins.filter (
drv: lib.hasPrefix "gmp" (drv.nixPackage.name or "")
) binDistUsed.archSpecificLibraries
)).nixPackage;
useLLVM = !(import ./common-have-ncg.nix { inherit lib stdenv version; });
libPath = lib.makeLibraryPath (
# Add arch-specific libraries.
map ({ nixPackage, ... }: nixPackage) binDistUsed.archSpecificLibraries
);
libEnvVar = lib.optionalString stdenv.hostPlatform.isDarwin "DY" + "LD_LIBRARY_PATH";
runtimeDeps =
[
targetPackages.stdenv.cc
targetPackages.stdenv.cc.bintools
coreutils # for cat
]
++ lib.optionals useLLVM [
(lib.getBin llvmPackages.llvm)
]
# On darwin, we need unwrapped bintools as well (for otool)
++ lib.optionals (stdenv.targetPlatform.linker == "cctools") [
targetPackages.stdenv.cc.bintools.bintools
];
in
stdenv.mkDerivation {
inherit version;
pname = "ghc-binary${binDistUsed.variantSuffix}";
src = fetchurl binDistUsed.src;
nativeBuildInputs = [ perl ];
# Set LD_LIBRARY_PATH or equivalent so that the programs running as part
# of the bindist installer can find the libraries they expect.
# Cannot patchelf beforehand due to relative RPATHs that anticipate
# the final install location.
${libEnvVar} = libPath;
postUnpack =
# Verify our assumptions of which `libtinfo.so` (ncurses) version is used,
# so that we know when ghc bindists upgrade that and we need to update the
# version used in `libPath`.
lib.optionalString (binDistUsed.exePathForLibraryCheck != null)
# Note the `*` glob because some GHCs have a suffix when unpacked, e.g.
# the musl bindist has dir `ghc-VERSION-x86_64-unknown-linux/`.
# As a result, don't shell-quote this glob when splicing the string.
(
let
buildExeGlob = ''ghc-${version}*/"${binDistUsed.exePathForLibraryCheck}"'';
in
lib.concatStringsSep "\n" [
(''
shopt -u nullglob
echo "Checking that ghc binary exists in bindist at ${buildExeGlob}"
if ! test -e ${buildExeGlob}; then
echo >&2 "GHC binary ${binDistUsed.exePathForLibraryCheck} could not be found in the bindist build directory (at ${buildExeGlob}) for arch ${stdenv.hostPlatform.system}, please check that ghcBinDists correctly reflect the bindist dependencies!"; exit 1;
fi
'')
(lib.concatMapStringsSep "\n" (
{ fileToCheckFor, nixPackage }:
lib.optionalString (fileToCheckFor != null) ''
echo "Checking bindist for ${fileToCheckFor} to ensure that is still used"
if ! readelf -d ${buildExeGlob} | grep "${fileToCheckFor}"; then
echo >&2 "File ${fileToCheckFor} could not be found in ${binDistUsed.exePathForLibraryCheck} for arch ${stdenv.hostPlatform.system}, please check that ghcBinDists correctly reflect the bindist dependencies!"; exit 1;
fi
echo "Checking that the nix package ${nixPackage} contains ${fileToCheckFor}"
if ! test -e "${lib.getLib nixPackage}/lib/${fileToCheckFor}"; then
echo >&2 "Nix package ${nixPackage} did not contain ${fileToCheckFor} for arch ${stdenv.hostPlatform.system}, please check that ghcBinDists correctly reflect the bindist dependencies!"; exit 1;
fi
''
) binDistUsed.archSpecificLibraries)
]
)
# GHC has dtrace probes, which causes ld to try to open /usr/lib/libdtrace.dylib
# during linking
+ lib.optionalString stdenv.hostPlatform.isDarwin ''
export NIX_LDFLAGS+=" -no_dtrace_dof"
# not enough room in the object files for the full path to libiconv :(
for exe in $(find . -type f -executable); do
isScript $exe && continue
ln -fs ${libiconv}/lib/libiconv.dylib $(dirname $exe)/libiconv.dylib
install_name_tool -change /usr/lib/libiconv.2.dylib @executable_path/libiconv.dylib -change /usr/local/lib/gcc/6/libgcc_s.1.dylib ${gcc.cc.lib}/lib/libgcc_s.1.dylib $exe
done
''
+
# Some scripts used during the build need to have their shebangs patched
''
patchShebangs ghc-${version}/utils/
patchShebangs ghc-${version}/configure
test -d ghc-${version}/inplace/bin && \
patchShebangs ghc-${version}/inplace/bin
''
+
# We have to patch the GMP paths for the integer-gmp package.
''
find . -name ghc-bignum.buildinfo \
-exec sed -i "s@extra-lib-dirs: @extra-lib-dirs: ${lib.getLib gmpUsed}/lib@" {} \;
# we need to modify the package db directly for hadrian bindists
find . -name 'ghc-bignum*.conf' \
-exec sed -e '/^[a-z-]*library-dirs/a \ ${lib.getLib gmpUsed}/lib' -i {} \;
''
+ lib.optionalString stdenv.hostPlatform.isDarwin ''
# we need to modify the package db directly for hadrian bindists
# (all darwin bindists are hadrian-based for 9.2.2)
find . -name 'base*.conf' \
-exec sed -e '/^[a-z-]*library-dirs/a \ ${lib.getLib libiconv}/lib' -i {} \;
# To link RTS in the end we also need libffi now
find . -name 'rts*.conf' \
-exec sed -e '/^[a-z-]*library-dirs/a \ ${lib.getLib libffi}/lib' \
-e 's@/Library/Developer/.*/usr/include/ffi@${lib.getDev libffi}/include@' \
-i {} \;
''
+
# Some platforms do HAVE_NUMA so -lnuma requires it in library-dirs in rts/package.conf.in
# FFI_LIB_DIR is a good indication of places it must be needed.
lib.optionalString
(
lib.meta.availableOn stdenv.hostPlatform numactl
&& builtins.any ({ nixPackage, ... }: nixPackage == numactl) binDistUsed.archSpecificLibraries
)
''
find . -name package.conf.in \
-exec sed -i "s@FFI_LIB_DIR@FFI_LIB_DIR ${numactl.out}/lib@g" {} \;
''
+
# Rename needed libraries and binaries, fix interpreter
lib.optionalString stdenv.hostPlatform.isLinux ''
find . -type f -executable -exec patchelf \
--interpreter ${stdenv.cc.bintools.dynamicLinker} {} \;
'';
# fix for `configure: error: Your linker is affected by binutils #16177`
preConfigure = lib.optionalString stdenv.targetPlatform.isAarch32 "LD=ld.gold";
configurePlatforms = [ ];
configureFlags =
[
"--with-gmp-includes=${lib.getDev gmpUsed}/include"
# Note `--with-gmp-libraries` does nothing for GHC bindists:
# https://gitlab.haskell.org/ghc/ghc/-/merge_requests/6124
]
++ lib.optional stdenv.hostPlatform.isDarwin "--with-gcc=${./gcc-clang-wrapper.sh}"
# From: https://github.com/NixOS/nixpkgs/pull/43369/commits
++ lib.optional stdenv.hostPlatform.isMusl "--disable-ld-override";
# No building is necessary, but calling make without flags ironically
# calls install-strip ...
dontBuild = true;
# GHC tries to remove xattrs when installing to work around Gatekeeper
# (see https://gitlab.haskell.org/ghc/ghc/-/issues/17418). This step normally
# succeeds in nixpkgs because xattrs are not allowed in the store, but it
# can fail when a file has the `com.apple.provenance` xattr, and it cant be
# modified (such as target of the symlink to `libiconv.dylib`).
# The `com.apple.provenance` xattr is a new feature of macOS as of macOS 13.
# See: https://eclecticlight.co/2023/03/13/ventura-has-changed-app-quarantine-with-a-new-xattr/
makeFlags = lib.optionals stdenv.buildPlatform.isDarwin [ "XATTR=/does-not-exist" ];
# Patch scripts to include runtime dependencies in $PATH.
postInstall = ''
for i in "$out/bin/"*; do
test ! -h "$i" || continue
isScript "$i" || continue
sed -i -e '2i export PATH="${lib.makeBinPath runtimeDeps}:$PATH"' "$i"
done
'';
# Apparently necessary for the ghc Alpine (musl) bindist:
# When we strip, and then run the
# patchelf --set-rpath "${libPath}:$(patchelf --print-rpath $p)" $p
# below, running ghc (e.g. during `installCheckPhase)` gives some apparently
# corrupted rpath or whatever makes the loader work on nonsensical strings:
# running install tests
# Error relocating /nix/store/...-ghc-8.10.2-binary/lib/ghc-8.10.5/bin/ghc: : symbol not found
# Error relocating /nix/store/...-ghc-8.10.2-binary/lib/ghc-8.10.5/bin/ghc: ir6zf6c9f86pfx8sr30n2vjy-ghc-8.10.2-binary/lib/ghc-8.10.5/bin/../lib/x86_64-linux-ghc-8.10.5/libHSexceptions-0.10.4-ghc8.10.5.so: symbol not found
# Error relocating /nix/store/...-ghc-8.10.2-binary/lib/ghc-8.10.5/bin/ghc: y/lib/ghc-8.10.5/bin/../lib/x86_64-linux-ghc-8.10.5/libHStemplate-haskell-2.16.0.0-ghc8.10.5.so: symbol not found
# Error relocating /nix/store/...-ghc-8.10.2-binary/lib/ghc-8.10.5/bin/ghc: 8.10.5/libHStemplate-haskell-2.16.0.0-ghc8.10.5.so: symbol not found
# Error relocating /nix/store/...-ghc-8.10.2-binary/lib/ghc-8.10.5/bin/ghc: : symbol not found
# Error relocating /nix/store/...-ghc-8.10.2-binary/lib/ghc-8.10.5/bin/ghc: ?: symbol not found
# Error relocating /nix/store/...-ghc-8.10.2-binary/lib/ghc-8.10.5/bin/ghc: 64-linux-ghc-8.10.5/libHSexceptions-0.10.4-ghc8.10.5.so: symbol not found
# This is extremely bogus and should be investigated.
dontStrip = if stdenv.hostPlatform.isMusl then true else false; # `if` for explicitness
# On Linux, use patchelf to modify the executables so that they can
# find editline/gmp.
postFixup =
lib.optionalString (stdenv.hostPlatform.isLinux && !(binDistUsed.isStatic or false)) (
if stdenv.hostPlatform.isAarch64 then
# Keep rpath as small as possible on aarch64 for patchelf#244. All Elfs
# are 2 directories deep from $out/lib, so pooling symlinks there makes
# a short rpath.
''
(cd $out/lib; ln -s ${ncurses6.out}/lib/libtinfo.so.6)
(cd $out/lib; ln -s ${lib.getLib gmpUsed}/lib/libgmp.so.10)
(cd $out/lib; ln -s ${numactl.out}/lib/libnuma.so.1)
for p in $(find "$out/lib" -type f -name "*\.so*"); do
(cd $out/lib; ln -s $p)
done
for p in $(find "$out/lib" -type f -executable); do
if isELF "$p"; then
echo "Patchelfing $p"
patchelf --set-rpath "\$ORIGIN:\$ORIGIN/../.." $p
fi
done
''
else
''
for p in $(find "$out" -type f -executable); do
if isELF "$p"; then
echo "Patchelfing $p"
patchelf --set-rpath "${libPath}:$(patchelf --print-rpath $p)" $p
fi
done
''
)
+ lib.optionalString stdenv.hostPlatform.isDarwin ''
# not enough room in the object files for the full path to libiconv :(
for exe in $(find "$out" -type f -executable); do
isScript $exe && continue
ln -fs ${libiconv}/lib/libiconv.dylib $(dirname $exe)/libiconv.dylib
install_name_tool -change /usr/lib/libiconv.2.dylib @executable_path/libiconv.dylib -change /usr/local/lib/gcc/6/libgcc_s.1.dylib ${gcc.cc.lib}/lib/libgcc_s.1.dylib $exe
done
for file in $(find "$out" -name setup-config); do
substituteInPlace $file --replace /usr/bin/ranlib "$(type -P ranlib)"
done
''
+ lib.optionalString minimal ''
# Remove profiling files
find $out -type f -name '*.p_o' -delete
find $out -type f -name '*.p_hi' -delete
find $out -type f -name '*_p.a' -delete
# `-f` because e.g. musl bindist does not have this file.
rm -f $out/lib/ghc-*/bin/ghc-iserv-prof
# Hydra will redistribute this derivation, so we have to keep the docs for
# legal reasons (retaining the legal notices etc)
# As a last resort we could unpack the docs separately and symlink them in.
# They're in $out/share/{doc,man}.
''
# Recache package db which needs to happen for Hadrian bindists
# where we modify the package db before installing
+ ''
shopt -s nullglob
package_db=("$out"/lib/ghc-*/lib/package.conf.d "$out"/lib/ghc-*/package.conf.d)
"$out/bin/ghc-pkg" --package-db="$package_db" recache
'';
# GHC cannot currently produce outputs that are ready for `-pie` linking.
# Thus, disable `pie` hardening, otherwise `recompile with -fPIE` errors appear.
# See:
# * https://github.com/NixOS/nixpkgs/issues/129247
# * https://gitlab.haskell.org/ghc/ghc/-/issues/19580
hardeningDisable = [ "pie" ];
doInstallCheck = true;
installCheckPhase = ''
# Sanity check, can ghc create executables?
cd $TMP
mkdir test-ghc; cd test-ghc
cat > main.hs << EOF
{-# LANGUAGE TemplateHaskell #-}
module Main where
main = putStrLn \$([|"yes"|])
EOF
env -i $out/bin/ghc --make main.hs || exit 1
echo compilation ok
[ $(./main) == "yes" ]
'';
passthru =
{
targetPrefix = "";
enableShared = true;
inherit llvmPackages;
# Our Cabal compiler name
haskellCompilerName = "ghc-${version}";
}
# We duplicate binDistUsed here since we have a sensible default even if no bindist is available,
# this makes sure that getting the `meta` attribute doesn't throw even on unsupported platforms.
// lib.optionalAttrs (ghcBinDists.${distSetName}.${stdenv.hostPlatform.system}.isHadrian or false) {
# Normal GHC derivations expose the hadrian derivation used to build them
# here. In the case of bindists we just make sure that the attribute exists,
# as it is used for checking if a GHC derivation has been built with hadrian.
# The isHadrian mechanism will become obsolete with GHCs that use hadrian
# exclusively, i.e. 9.6 (and 9.4?).
hadrian = null;
};
meta = rec {
homepage = "http://haskell.org/ghc";
description = "Glasgow Haskell Compiler";
license = lib.licenses.bsd3;
# HACK: since we can't encode the libc / abi in platforms, we need
# to make the platform list dependent on the evaluation platform
# in order to avoid eval errors with musl which supports less
# platforms than the default libcs (i. e. glibc / libSystem).
# This is done for the benefit of Hydra, so `packagePlatforms`
# won't return any platforms that would cause an evaluation
# failure for `pkgsMusl.haskell.compiler.ghc922Binary`, as
# long as the evaluator runs on a platform that supports
# `pkgsMusl`.
platforms = builtins.attrNames ghcBinDists.${distSetName};
teams = [ lib.teams.haskell ];
};
}
@@ -311,12 +311,17 @@ stdenv.mkDerivation {
-i {} \;
''
+
# aarch64 does HAVE_NUMA so -lnuma requires it in library-dirs in rts/package.conf.in
# Some platforms do HAVE_NUMA so -lnuma requires it in library-dirs in rts/package.conf.in
# FFI_LIB_DIR is a good indication of places it must be needed.
lib.optionalString (stdenv.hostPlatform.isLinux && stdenv.hostPlatform.isAarch64) ''
find . -name package.conf.in \
-exec sed -i "s@FFI_LIB_DIR@FFI_LIB_DIR ${numactl.out}/lib@g" {} \;
''
lib.optionalString
(
lib.meta.availableOn stdenv.hostPlatform numactl
&& builtins.any ({ nixPackage, ... }: nixPackage == numactl) binDistUsed.archSpecificLibraries
)
''
find . -name package.conf.in \
-exec sed -i "s@FFI_LIB_DIR@FFI_LIB_DIR ${numactl.out}/lib@g" {} \;
''
+
# Rename needed libraries and binaries, fix interpreter
lib.optionalString stdenv.hostPlatform.isLinux ''
@@ -297,12 +297,17 @@ stdenv.mkDerivation {
-i {} \;
''
+
# aarch64 does HAVE_NUMA so -lnuma requires it in library-dirs in rts/package.conf.in
# Some platforms do HAVE_NUMA so -lnuma requires it in library-dirs in rts/package.conf.in
# FFI_LIB_DIR is a good indication of places it must be needed.
lib.optionalString (stdenv.hostPlatform.isLinux && stdenv.hostPlatform.isAarch64) ''
find . -name package.conf.in \
-exec sed -i "s@FFI_LIB_DIR@FFI_LIB_DIR ${numactl.out}/lib@g" {} \;
''
lib.optionalString
(
lib.meta.availableOn stdenv.hostPlatform numactl
&& builtins.any ({ nixPackage, ... }: nixPackage == numactl) binDistUsed.archSpecificLibraries
)
''
find . -name package.conf.in \
-exec sed -i "s@FFI_LIB_DIR@FFI_LIB_DIR ${numactl.out}/lib@g" {} \;
''
+
# Rename needed libraries and binaries, fix interpreter
lib.optionalString stdenv.hostPlatform.isLinux ''
@@ -311,12 +311,17 @@ stdenv.mkDerivation {
-i {} \;
''
+
# aarch64 does HAVE_NUMA so -lnuma requires it in library-dirs in rts/package.conf.in
# Some platforms do HAVE_NUMA so -lnuma requires it in library-dirs in rts/package.conf.in
# FFI_LIB_DIR is a good indication of places it must be needed.
lib.optionalString (stdenv.hostPlatform.isLinux && stdenv.hostPlatform.isAarch64) ''
find . -name package.conf.in \
-exec sed -i "s@FFI_LIB_DIR@FFI_LIB_DIR ${numactl.out}/lib@g" {} \;
''
lib.optionalString
(
lib.meta.availableOn stdenv.hostPlatform numactl
&& builtins.any ({ nixPackage, ... }: nixPackage == numactl) binDistUsed.archSpecificLibraries
)
''
find . -name package.conf.in \
-exec sed -i "s@FFI_LIB_DIR@FFI_LIB_DIR ${numactl.out}/lib@g" {} \;
''
+
# Rename needed libraries and binaries, fix interpreter
lib.optionalString stdenv.hostPlatform.isLinux ''
@@ -359,7 +359,10 @@ let
++ lib.optional enableDwarf elfutils
++ lib.optional (!enableNativeBignum) gmp
++ lib.optional (
platform.libc != "glibc" && !targetPlatform.isWindows && !targetPlatform.isGhcjs
platform.libc != "glibc"
&& !targetPlatform.isWindows
&& !targetPlatform.isGhcjs
&& !targetPlatform.useAndroidPrebuilt
) libiconv;
# TODO(@sternenseemann): is buildTarget LLVM unnecessary?
@@ -365,6 +365,7 @@ stdenv.mkDerivation (
./Cabal-3.2-3.4-paths-fix-cycle-aarch64-darwin.patch
)
]
# Fixes stack overrun in rts which crashes an process whenever
# freeHaskellFunPtr is called with nixpkgs' hardening flags.
# https://gitlab.haskell.org/ghc/ghc/-/issues/25485
@@ -376,7 +377,45 @@ stdenv.mkDerivation (
url = "https://gitlab.haskell.org/ghc/ghc/-/commit/39bb6e583d64738db51441a556d499aa93a4fc4a.patch";
sha256 = "0w5fx413z924bi2irsy1l4xapxxhrq158b5gn6jzrbsmhvmpirs0";
})
];
]
# Before GHC 9.6, GHC, when used to compile C sources (i.e. to drive the CC), would first
# invoke the C compiler to generate assembly and later call the assembler on the result of
# that operation. Unfortunately, that is brittle in a lot of cases, e.g. when using mismatched
# CC / assembler (https://gitlab.haskell.org/ghc/ghc/-/merge_requests/12005). This issue
# does not affect us. However, LLVM 18 introduced a check in clang that makes sure no
# non private labels occur between .cfi_startproc and .cfi_endproc which causes the
# assembly that the same version (!) of clang generates from rts/StgCRun.c to be rejected.
# This causes GHC to fail compilation on mach-o platforms ever since we upgraded to
# LLVM 19.
#
# clang compiles the same file without issues whithout the roundtrip via assembly. Thus,
# the solution is to backport those changes from GHC 9.6 that skip the intermediate
# assembly step.
#
# https://gitlab.haskell.org/ghc/ghc/-/issues/25608#note_622589
# https://gitlab.haskell.org/ghc/ghc/-/merge_requests/6877
++ (
if lib.versionAtLeast version "9.4" then
[
# Need to use this patch so the next one applies, passes file location info to the cc phase
(fetchpatch {
name = "ghc-add-location-to-cc-phase.patch";
url = "https://gitlab.haskell.org/ghc/ghc/-/commit/4a7256a75af2fc0318bef771a06949ffb3939d5a.patch";
hash = "sha256-DnTI+i1zMebeWvw75D59vMaEEBb2Nr9HusxTyhmdy2M=";
})
# Makes Cc phase directly generate object files instead of assembly
(fetchpatch {
name = "ghc-cc-directly-emit-object.patch";
url = "https://gitlab.haskell.org/ghc/ghc/-/commit/96811ba491495b601ec7d6a32bef8563b0292109.patch";
hash = "sha256-G8u7/MK/tGOEN8Wxccxj/YIOP7mL2G9Co1WKdHXOo6I=";
})
]
else
[
# TODO(@sternenseemann): backport changes to GHC < 9.4 if possible
]
);
postPatch = "patchShebangs .";
@@ -124,3 +124,7 @@ self: super:
# https://github.com/haskell-crypto/cryptonite/issues/367
cryptonite = dontCheck super.cryptonite;
}
// lib.optionalAttrs (with pkgs.stdenv.hostPlatform; isAarch && isAndroid) {
# android is not currently allowed as 'supported-platforms' by hackage2nix
android-activity = unmarkBroken super.android-activity;
}
@@ -11,39 +11,46 @@
# distinction.
{ pkgs, haskellLib }:
self: super:
let
inherit (pkgs) fetchpatch lib;
inherit (lib) throwIfNot versionOlder;
warnAfterVersion =
ver: pkg:
lib.warnIf (lib.versionOlder ver
super.${pkg.pname}.version
) "override for haskellPackages.${pkg.pname} may no longer be needed" pkg;
in
with haskellLib;
# To avoid merge conflicts, consider adding your item at an arbitrary place in the list instead.
self: super:
{
# Hackage's accelerate is from 2020 and incompatible with our GHC.
# The existing derivation also has missing dependencies
# compared to the source from github.
# https://github.com/AccelerateHS/accelerate/issues/553
accelerate =
assert super.accelerate.version == "1.3.0.0";
lib.pipe super.accelerate [
(addBuildDepends [
self.double-conversion
self.formatting
self.microlens
])
accelerate = lib.pipe super.accelerate [
(warnAfterVersion "1.3.0.0")
(addBuildDepends [
self.double-conversion
self.formatting
self.microlens
])
(overrideCabal (drv: {
version = "1.3.0.0-unstable-2025-04-25";
src = pkgs.fetchFromGitHub {
owner = "AccelerateHS";
repo = "accelerate";
rev = "3f681a5091eddf5a3b97f4cd0de32adc830e1117";
sha256 = "sha256-tCcl7wAls+5cBSrqbxfEAJngbV43OJcLJdaC4qqkBxc=";
};
}))
];
(overrideCabal (drv: {
version = "1.3.0.0-unstable-2025-04-25";
src = pkgs.fetchFromGitHub {
owner = "AccelerateHS";
repo = "accelerate";
rev = "3f681a5091eddf5a3b97f4cd0de32adc830e1117";
sha256 = "sha256-tCcl7wAls+5cBSrqbxfEAJngbV43OJcLJdaC4qqkBxc=";
};
}))
];
# https://github.com/ivanperez-keera/dunai/issues/427
dunai = addBuildDepend self.list-transformer (enableCabalFlag "list-transformer" super.dunai);
@@ -83,6 +90,11 @@ self: super:
Cabal = self.Cabal_3_14_2_0;
};
# Needs Cabal>=3.14
cabal-lenses = super.cabal-lenses.override {
Cabal = self.Cabal_3_14_2_0;
};
# cabal-install needs most recent versions of Cabal and Cabal-syntax,
# so we need to put some extra work for non-latest GHCs
inherit
@@ -164,6 +176,29 @@ self: super:
guardian
;
# Expected test output for these accidentally checks the absolute location of the source directory
# https://github.com/dan-t/cabal-cargs/issues/9
cabal-cargs = overrideCabal (drv: {
testFlags = drv.testFlags or [ ] ++ [
"-p"
"!/FindCabalFilePure withoutSandbox/"
"-p"
"!/FromCabalFilePure withoutSandbox/"
"-p"
"!/FromLibSrcPure withoutSandbox/"
"-p"
"!/FromExeSrcFilePure withoutSandbox/"
"-p"
"!/FindCabalFilePure withSandbox/"
"-p"
"!/FromCabalFilePure withSandbox/"
"-p"
"!/FromLibSrcPure withSandbox/"
"-p"
"!/FromExeSrcFilePure withSandbox/"
];
}) super.cabal-cargs;
# Extensions wants the latest version of Cabal for its list of Haskell
# language extensions.
# 2025-02-10: jailbreak to allow hspec-hedgehog 0.3.0.0 and hedgehog 1.5
@@ -203,27 +238,6 @@ self: super:
disableCabalFlag "auto" super.ghc-lib-parser-ex
);
ghcide = appendPatches [
# Support ghc == 9.10.2
(pkgs.fetchpatch2 {
name = "ghcide-ghc-9.10.2.patch";
url = "https://github.com/haskell/haskell-language-server/commit/fb17921128bd56ba74872cae9539767e63b9fd79.patch";
sha256 = "161kcpfnv3q0n1fgsc0rx2v1rqf16g3pnjqabayym47yg2kp1qiv";
stripLen = 1;
})
# Support hie-bios >= 0.15 (unreleased to hackage)
(pkgs.fetchpatch2 {
name = "ghcide-hie-bios-0.15.patch";
url = "https://github.com/haskell/haskell-language-server/commit/eb06c6f6ad7d7fcc29ff4b62f679f428897147f8.patch";
sha256 = "0im3mf71chsgk787lz942c8zlmq00gfsd5rclprlsncg0zli1whq";
includes = [
"ghcide.cabal"
"**/Diagnostics.hs"
];
stripLen = 1;
})
] super.ghcide;
###########################################
### END HASKELL-LANGUAGE-SERVER SECTION ###
###########################################
@@ -246,14 +260,8 @@ self: super:
];
}) super.vector;
# Too strict bounds on base
# https://github.com/lspitzner/butcher/issues/7#issuecomment-1681394943
butcher = doJailbreak super.butcher;
# https://github.com/lspitzner/data-tree-print/issues/4
data-tree-print = doJailbreak super.data-tree-print;
# … and template-haskell.
# https://github.com/lspitzner/czipwith/issues/5
czipwith = doJailbreak super.czipwith;
# jacinda needs latest version of alex and happy
jacinda = super.jacinda.override {
@@ -377,6 +385,26 @@ self: super:
# 2023-07-17: Outdated base bound https://github.com/srid/lvar/issues/5
lvar = doJailbreak super.lvar;
# Don't call setEnv in parallel in the test suite (which leads to flaky failures)
env-extra =
appendPatches
[
(pkgs.fetchpatch {
name = "env-extra-no-parallel-setenv.patch";
url = "https://github.com/d12frosted/env-extra/commit/4fcbc031b210e71e4243fcfe7c48d381e2f51d78.patch";
sha256 = "sha256-EbXk+VOmxMJAMCMTXpTiW8fkbNI9za7f1alzCeaJaV4=";
excludes = [ "package.yaml" ];
})
]
(
overrideCabal (drv: {
prePatch = ''
${drv.prePatch or ""}
${lib.getExe' pkgs.buildPackages.dos2unix "dos2unix"} *.cabal
'';
}) super.env-extra
);
# This used to be a core package provided by GHC, but then the compiler
# dropped it. We define the name here to make sure that old packages which
# depend on this library still evaluate (even though they won't compile
@@ -415,6 +443,14 @@ self: super:
})
] super.lukko;
# Relax version constraints (network < 3.2, text < 2.1)
# https://github.com/essandess/adblock2privoxy/pull/43
adblock2privoxy = doJailbreak super.adblock2privoxy;
# Missing test file https://gitlab.com/dpwiz/hs-jpeg-turbo/-/issues/1
jpeg-turbo = dontCheck super.jpeg-turbo;
JuicyPixels-jpeg-turbo = dontCheck super.JuicyPixels-jpeg-turbo;
# Fixes compilation for basement on i686 for GHC >= 9.4
# https://github.com/haskell-foundation/foundation/pull/573
# Patch would not work for GHC >= 9.2 where it breaks compilation on x86_64
@@ -470,15 +506,6 @@ self: super:
# https://github.com/schuelermine/ret/issues/3
ret = doJailbreak super.ret; # base < 4.19
# 2025-02-13: This part from https://github.com/haskell/ThreadScope/pull/130 seems to be unreleased:
threadscope = appendPatches [
(fetchpatch {
name = "import-monad.patch";
url = "https://github.com/haskell/ThreadScope/commit/8846508e9769a8dfd82b3ff66259ba4d58255932.patch";
sha256 = "sha256-wBqDJWmqvmU1sFuw/ZlxHOb8xPhZO2RBuyYFP9bJCVI=";
})
] super.threadscope;
# The latest release on hackage has an upper bound on containers which
# breaks the build, though it works with the version of containers present
# and the upper bound doesn't exist in code anymore:
@@ -508,8 +535,10 @@ self: super:
# https://github.com/FPtje/GLuaFixer/issues/165
glualint = dontCheck super.glualint;
# The Hackage tarball is purposefully broken, because it's not intended to be, like, useful.
# https://git-annex.branchable.com/bugs/bash_completion_file_is_missing_in_the_6.20160527_tarball_on_hackage/
# Hackage tarball only includes what is supported by `cabal install git-annex`,
# but we want e.g. completions as well. See
# https://web.archive.org/web/20160724083703/https://git-annex.branchable.com/bugs/bash_completion_file_is_missing_in_the_6.20160527_tarball_on_hackage/
# or git-annex @ 3571b077a1244330cc736181ee04b4d258a78476 doc/bugs/bash_completion_file_is_missing*
git-annex = lib.pipe super.git-annex (
[
(overrideCabal (drv: {
@@ -517,7 +546,7 @@ self: super:
name = "git-annex-${super.git-annex.version}-src";
url = "git://git-annex.branchable.com/";
rev = "refs/tags/" + super.git-annex.version;
sha256 = "10prmih74h31fwv14inqavzmm25hmlr24h49h9lpxqd88dn3r9cd";
sha256 = "0d968aciaxmblahk79x2m708rvbg19flj5naxzg0zdp9j2jwlcqf";
# delete android and Android directories which cause issues on
# darwin (case insensitive directory). Since we don't need them
# during the build process, we can delete it to prevent a hash
@@ -607,6 +636,24 @@ self: super:
)
);
# Overly strict bounds on postgresql-simple (< 0.7), tasty (< 1.5) and tasty-quickcheck (< 0.11)
# https://github.com/tdammers/migrant/pull/5
migrant-core = doJailbreak super.migrant-core;
migrant-sqlite-simple = doJailbreak super.migrant-sqlite-simple;
migrant-hdbc = doJailbreak super.migrant-hdbc;
migrant-postgresql-simple = lib.pipe super.migrant-postgresql-simple [
(overrideCabal {
preCheck = ''
postgresqlTestUserOptions="LOGIN SUPERUSER"
'';
})
(addTestToolDepends [
pkgs.postgresql
pkgs.postgresqlTestHook
])
doJailbreak
];
# https://github.com/froozen/kademlia/issues/2
kademlia = dontCheck super.kademlia;
@@ -715,6 +762,14 @@ self: super:
# https://github.com/alphaHeavy/lzma-conduit/issues/23
lzma-conduit = doJailbreak super.lzma-conduit;
# doctest suite needs adjustment with GHC 9.12
xml-conduit = appendPatch (pkgs.fetchpatch {
name = "xml-conduit-ghc-9.12.patch";
url = "https://github.com/snoyberg/xml/commit/73ce67029c61decaa6525536377a15581325fd9e.patch";
sha256 = "1gvdhwz7f6rw28xqm82h1kx2kwbdvigipfcb0y66520lvd544sm6";
stripLen = 1;
}) super.xml-conduit;
# 2020-06-05: HACK: does not pass own build suite - `dontCheck`
# 2024-01-15: too strict bound on free < 5.2
hnix = doJailbreak (
@@ -1088,9 +1143,11 @@ self: super:
}
sed -i ${name}.cabal \
-e 's/\(bytestring\) .*/\1/w c1' \
-e 's/\(text\) .*/\1/w c2'
-e 's/\(text\) .*/\1/w c2' \
-e 's/\(aeson\) .*/\1/w c3'
check_sed c1 'bytestring .*'
check_sed c2 'text .*'
${lib.optionalString (name == "selda-json") "check_sed c3 'aeson .*'"}
'';
}) super.${name};
in
@@ -1240,7 +1297,6 @@ self: super:
# 2025-02-10: Too strict bounds on text < 2.1
digestive-functors-blaze = doJailbreak super.digestive-functors-blaze;
digestive-functors = doJailbreak super.digestive-functors;
# Wrap the generated binaries to include their run-time dependencies in
# $PATH. Also, cryptol needs a version of sbl that's newer than what we have
@@ -1530,6 +1586,31 @@ self: super:
})
] super.servant-routes;
# Fix test suite with text >= 2.1.2
servant-client =
appendPatches
[
(pkgs.fetchpatch {
name = "servant-client-text-2.1.2.patch";
url = "https://github.com/haskell-servant/servant/commit/9cda0cfb356a01ad402ee949e0b0d5c0494eace2.patch";
sha256 = "19vpn7h108wra9b84r642zxg0mii66rq4vjbqhi7ackkdb0mx9yn";
relative = "servant-client";
# patch to servant-client.cabal doesn't apply on 0.20.2
includes = [ "README.md" ];
})
]
(
overrideCabal (drv: {
postPatch =
super.postPatch or ""
+ ''
# Restore the symlink (to the file we patch) which becomes a regular file
# in the hackage tarball
ln -sf README.md README.lhs
'';
}) super.servant-client
);
# it wants to build a statically linked binary by default
hledger-flow = overrideCabal (drv: {
postPatch =
@@ -1588,6 +1669,16 @@ self: super:
# https://github.com/NixOS/nixpkgs/issues/198495
(dontCheckIf (pkgs.postgresqlTestHook.meta.broken) super.persistent-postgresql);
# Downgrade persistent-test to a version that's compatible with
# persistent < 2.16 (which Stackage prescribed). Unfortunately, the
# bad version of persistent-test slipped into Stackage LTS because
# PVP allows it and LTS doesn't continuously run test suites (contrary
# to nightly).
# See also https://github.com/yesodweb/persistent/pull/1584#issuecomment-2939756529
# https://github.com/commercialhaskell/stackage/issues/7768
persistent-test_2_13_1_4 = dontDistribute super.persistent-test;
persistent-test = doDistribute self.persistent-test_2_13_1_3;
# Needs matching lsp-types
# Allow lens >= 5.3
lsp_2_4_0_0 = doDistribute (
@@ -1622,17 +1713,6 @@ self: super:
unmarkBroken
];
# Tests disabled because they assume to run in the whole jsaddle repo and not the hackage tarball of jsaddle-warp.
jsaddle-warp =
appendPatch
# https://github.com/ghcjs/jsaddle/pull/158
(fetchpatch {
url = "https://github.com/ghcjs/jsaddle/commit/3a5648dd2e326c589170b58af711c72ab2a10a84.patch";
relative = "jsaddle-warp";
sha256 = "sha256-Eqm/oFRvQsAWtmd/Q1m25lOlcYB+j4bJ27t43CzZpHo=";
})
(dontCheck super.jsaddle-warp);
# https://github.com/ghcjs/jsaddle/issues/151
jsaddle-webkit2gtk =
overrideCabal
@@ -1727,9 +1807,6 @@ self: super:
})
] (doJailbreak super.Spock-core);
# https://github.com/strake/filtrable.hs/issues/6
filtrable = doJailbreak super.filtrable;
hcoord = overrideCabal (drv: {
# Remove when https://github.com/danfran/hcoord/pull/8 is merged.
patches = [
@@ -1810,19 +1887,13 @@ self: super:
semver-range = dontCheck super.semver-range;
# 2024-03-02: vty <5.39 - https://github.com/reflex-frp/reflex-ghci/pull/33
reflex-ghci =
assert super.reflex-ghci.version == "0.2.0.1";
doJailbreak super.reflex-ghci;
reflex-ghci = warnAfterVersion "0.2.0.1" (doJailbreak super.reflex-ghci);
# 2024-09-18: transformers <0.5 https://github.com/reflex-frp/reflex-gloss/issues/6
reflex-gloss =
assert super.reflex-gloss.version == "0.2";
doJailbreak super.reflex-gloss;
reflex-gloss = warnAfterVersion "0.2" (doJailbreak super.reflex-gloss);
# 2024-09-18: primitive <0.8 https://gitlab.com/Kritzefitz/reflex-gi-gtk/-/merge_requests/20
reflex-gi-gtk =
assert super.reflex-gi-gtk.version == "0.2.0.1";
doJailbreak super.reflex-gi-gtk;
reflex-gi-gtk = warnAfterVersion "0.2.0.1" (doJailbreak super.reflex-gi-gtk);
# Due to tests restricting base in 0.8.0.0 release
http-media = doJailbreak super.http-media;
@@ -1978,6 +2049,10 @@ self: super:
# https://github.com/mpickering/hs-speedscope/issues/16
hs-speedscope = doJailbreak super.hs-speedscope;
# Missing test files in sdist tarball:
# https://gitlab.com/dpwiz/geomancy-layout/-/issues/1
geomancy-layout = dontCheck super.geomancy-layout;
# 2025-02-11: Too strict bounds on base < 4.19, bytestring < 0.12, tasty < 1.5, tasty-quickcheck < 0.11
blake2 = doJailbreak super.blake2;
@@ -2102,43 +2177,21 @@ self: super:
# 2024-09-18: Make compatible with haskell-gi 0.26.10
# https://github.com/owickstrom/gi-gtk-declarative/pull/118
gi-gtk-declarative = overrideCabal (
drv:
assert drv.version == "0.7.1";
{
gi-gtk-declarative = warnAfterVersion "0.7.1" (
overrideCabal (drv: {
jailbreak = true;
postPatch = ''
sed -i '1 i {-# LANGUAGE FlexibleContexts #-}' \
src/GI/Gtk/Declarative/Widget/Conversions.hs
'';
}
) super.gi-gtk-declarative;
}) super.gi-gtk-declarative
);
gi-gtk-declarative-app-simple = doJailbreak super.gi-gtk-declarative-app-simple;
# FIXME: These should be removed as gi-gtk4/gi-gdk4 become the standard
gi-gtk_4 = self.gi-gtk_4_0_12;
gi-gdk_4 = self.gi-gdk_4_0_10;
# Missing dependency on gi-gdkpixbuf
# https://github.com/haskell-gi/haskell-gi/commit/889f478456b38425eca7df42b01f85fae626f113
# Fixed in 2.91.35
gi-vte = overrideCabal (
oldAttrs:
assert lib.versionOlder oldAttrs.version "2.91.35";
{
# This is implemented as a sed expression instead of pulling a patch
# from upstream because the gi-vte repo doesn't actually contain a
# gi-vte.cabal file. The gi-vte.cabal file is generated from metadata in
# the repo.
postPatch =
(oldAttrs.postPatch or "")
+ ''
sed -i 's/\(gi-gtk == .*\),/\1, gi-gdkpixbuf == 2.0.*,/' ./gi-vte.cabal
'';
buildDepends = (oldAttrs.buildDepends or [ ]) ++ [ self.gi-gdkpixbuf ];
}
) super.gi-vte;
# 2023-04-09: haskell-ci needs Cabal-syntax 3.10
# 2024-03-21: pins specific version of ShellCheck
# 2025-03-10: jailbreak, https://github.com/haskell-CI/haskell-ci/issues/771
@@ -2199,9 +2252,6 @@ self: super:
testFlags = [ "-j1" ];
} super.libarchive;
# 2025-02-11: Too strict bounds on doclayout < 0.5
table-layout = doJailbreak super.table-layout;
# https://github.com/plow-technologies/hspec-golden-aeson/issues/17
hspec-golden-aeson = dontCheck super.hspec-golden-aeson;
@@ -2242,8 +2292,7 @@ self: super:
# https://github.com/kapralVV/Unique/issues/9
# Too strict bounds on hashable
# https://github.com/kapralVV/Unique/pull/10
Unique =
assert super.Unique.version == "0.4.7.9";
Unique = warnAfterVersion "0.4.7.9" (
overrideCabal (drv: {
testFlags = [
"--skip"
@@ -2253,17 +2302,18 @@ self: super:
"--skip"
"/Data.List.UniqueUnsorted.repeatedBy,repeated,unique/repeatedBy: simple test/"
] ++ drv.testFlags or [ ];
}) super.Unique;
}) super.Unique
);
# https://github.com/AndrewRademacher/aeson-casing/issues/8
aeson-casing =
assert super.aeson-casing.version == "0.2.0.0";
aeson-casing = warnAfterVersion "0.2.0.0" (
overrideCabal (drv: {
testFlags = [
"-p"
"! /encode train/"
] ++ drv.testFlags or [ ];
}) super.aeson-casing;
}) super.aeson-casing
);
# https://github.com/emc2/HUnit-Plus/issues/26
HUnit-Plus = dontCheck super.HUnit-Plus;
@@ -2380,9 +2430,6 @@ self: super:
# 2025-02-11: Too strict bounds on hedgehog < 1.5, hspec-hedgehog < 0.2
validation-selective = doJailbreak super.validation-selective;
# 2025-02-11: strict upper bounds on base < 4.18
shower = doJailbreak super.shower;
# Test suite isn't supposed to succeed yet, apparently…
# https://github.com/andrewufrank/uniform-error/blob/f40629ad119e90f8dae85e65e93d7eb149bddd53/test/Uniform/Error_test.hs#L124
# https://github.com/andrewufrank/uniform-error/issues/2
@@ -2549,6 +2596,24 @@ self: super:
'';
}) super.hermes-json;
# hexstring is not compatible with newer versions of base16-bytestring
# See https://github.com/solatis/haskell-hexstring/issues/3
hexstring = overrideCabal (old: {
# Prevent DOS line endings from Hackage from breaking a patch
prePatch =
old.prePatch or ""
+ ''
${pkgs.buildPackages.dos2unix}/bin/dos2unix src/Data/HexString.hs
'';
patches = old.patches or [ ] ++ [
(pkgs.fetchpatch {
name = "fix-base16-bytestring-compat";
url = "https://github.com/solatis/haskell-hexstring/commit/4f0a27c64ecb4a767eeea2efebebfd7edba18de0.patch";
hash = "sha256-DHT566Ov1D++1VNjUor9xSeOsuSi2LPiIAGT55gqr8s=";
})
];
}) super.hexstring;
# Disabling doctests.
regex-tdfa = overrideCabal {
testTargets = [ "regex-tdfa-unittest" ];
@@ -2722,8 +2787,7 @@ self: super:
# 2024-03-02: Apply unreleased changes necessary for compatibility
# with commonmark-extensions-0.2.5.3.
commonmark-simple =
assert super.commonmark-simple.version == "0.1.0.0";
commonmark-simple = warnAfterVersion "0.1.0.0" (
appendPatches (map
(
{ rev, hash }:
@@ -2744,7 +2808,8 @@ self: super:
hash = "sha256-9cpgRNFWhpSuSttAvnwPiLmi1sIoDSYbp0sMwcKWgDQ=";
}
]
) (doJailbreak super.commonmark-simple);
) (doJailbreak super.commonmark-simple)
);
# Test files missing from sdist
# https://github.com/tweag/webauthn/issues/166
@@ -2755,20 +2820,6 @@ self: super:
tasty-autocollect = dontCheck super.tasty-autocollect;
postgres-websockets = lib.pipe super.postgres-websockets [
(appendPatches [
(pkgs.fetchpatch {
# Needed for the patch below to apply.
name = "remove-protolude.patch";
url = "https://github.com/diogob/postgres-websockets/commit/8027c0f6dc0c5fe6bab4e3e7730db8653b2c51cc.patch";
hash = "sha256-gefVUR+tJLrmpwnc1hf4GjLbGVe1GwNmLn5YU7qW/HY=";
})
(pkgs.fetchpatch {
# Can be removed with the next update.
name = "fix-connection-closing-when-no-write-mode-is-present.patch";
url = "https://github.com/diogob/postgres-websockets/commit/577a2f0bf4750c682c2c3c63e37d90e0ec6f95eb.patch";
hash = "sha256-7PCVbfNiJhWfmQrEjaVqbmCL5jffhofOto1RF2FVYJo=";
})
])
(addTestToolDepends [
pkgs.postgresql
pkgs.postgresqlTestHook
@@ -2813,12 +2864,12 @@ self: super:
doJailbreak
# 2022-12-02: Hackage release lags behind actual releases: https://github.com/PostgREST/postgrest/issues/2275
(overrideSrc rec {
version = "13.0.0";
version = "13.0.4";
src = pkgs.fetchFromGitHub {
owner = "PostgREST";
repo = "postgrest";
rev = "v${version}";
hash = "sha256-j+WlY7D3hkPHIjiyCFenC5trF31L05gEPptCwOVil6U=";
hash = "sha256-Y9Nxfs2w3Iinx61Om7dd+R8TTsK12oWD+3vki3WUz9Y=";
};
})
];
@@ -2870,10 +2921,6 @@ self: super:
# Too strict bounds on base
kewar = doJailbreak super.kewar;
# Too strict bounds on aeson and text
# https://github.com/finn-no/unleash-client-haskell/issues/14
unleash-client-haskell = doJailbreak super.unleash-client-haskell;
# Tests rely on (missing) submodule
unleash-client-haskell-core = dontCheck super.unleash-client-haskell-core;
@@ -2972,25 +3019,8 @@ self: super:
doJailbreak
];
# 2024-08-09: Apply optparse-applicative compat fix from master branch
# https://github.com/NorfairKing/feedback/commit/9368468934a4d8bd94709bdcb1116210b162bab8
feedback = overrideCabal (
drv:
assert drv.version == "0.1.0.5";
{
postPatch =
drv.postPatch or ""
+ ''
substituteInPlace src/Feedback/Loop/OptParse.hs \
--replace-fail '(uncurry loopConfigLine)' '(pure . uncurry loopConfigLine)'
'';
}
) super.feedback;
testcontainers = lib.pipe super.testcontainers [
dontCheck # Tests require docker
doJailbreak # https://github.com/testcontainers/testcontainers-hs/pull/58
];
# Tests require docker
testcontainers = dontCheck super.testcontainers;
# https://bitbucket.org/echo_rm/hailgun/pull-requests/27
hailgun = appendPatches [
@@ -3030,7 +3060,7 @@ self: super:
http-client-tls = doJailbreak super.http-client-tls;
bsb-http-chunked = lib.pipe super.bsb-http-chunked [
(lib.warnIf (lib.versionOlder "0.0.0.4" super.bsb-http-chunked.version) "override for haskellPackages.bsb-http-chunked may no longer be needed")
(warnAfterVersion "0.0.0.4")
# Last released in 2018
# https://github.com/sjakobi/bsb-http-chunked/issues/38
# https://github.com/sjakobi/bsb-http-chunked/issues/45
@@ -3047,18 +3077,6 @@ self: super:
url = "https://github.com/sjakobi/bsb-http-chunked/commit/689bf9ce12b8301d0e13a68e4a515c2779b62947.patch";
sha256 = "sha256-ZdCXMhni+RGisRODiElObW5c4hKy2giWQmWnatqeRJo=";
}))
# blaze-builder's code is missing the following fix, causing it to produce
# incorrect chunking on 32 bit platforms:
# https://github.com/sjakobi/bsb-http-chunked/commit/dde7c9fa33bb6e55b44c5f3e3024215475f64d4c
(overrideCabal (drv: {
testFlags =
drv.testFlags or [ ]
++ lib.optionals pkgs.stdenv.hostPlatform.is32bit [
"-p"
"!/Identical output as Blaze/"
];
}))
];
# jailbreak to allow deepseq >= 1.5, https://github.com/jumper149/blucontrol/issues/3
@@ -3069,16 +3087,25 @@ self: super:
commonmark-pandoc = doDistribute self.commonmark-pandoc_0_2_2_3;
pandoc = lib.pipe super.pandoc [
dontCheck # test errors in "jats-writer" possibly fixed in newer release
# Test output changes with newer version of texmath
(appendPatch (fetchpatch {
name = "jats:update-for-texmath";
url = "https://github.com/jgm/pandoc/commit/e2a0cc9ddaf9e7d35cbd3c76f37e39737a79c2bf.patch";
sha256 = "sha256-qA9mfYS/VhWwYbB9yu7wbHwozz3cqequ361PxkbAt08=";
includes = [ "test/*" ];
}))
(appendPatch (fetchpatch {
name = "jats:update-for-mathml";
url = "https://github.com/jgm/pandoc/commit/4ba0bac5c118da4da1d44e3bbb38d7c7aef19e3b.patch";
sha256 = "sha256-ayRKeCqYKgZVA826xgAXxGhttm0Gx4ZrIRJlFlXPKhw=";
}))
(appendPatch (fetchpatch {
name = "jats:use-texmath-0.12.10.1";
url = "https://github.com/jgm/pandoc/commit/d3d5366e5197330e035f9f1700929c9b5a24d532.patch";
sha256 = "sha256-skG7LbKl4ypVnEYA9xMtDbUmHrjuXWfuchV8iMn8Yy0=";
includes = [ "test/*" ];
}))
];
HList = lib.pipe super.HList [
@@ -3091,19 +3118,13 @@ self: super:
];
# 2025-04-09: jailbreak to allow hedgehog >= 1.5
hw-int =
assert super.hw-int.version == "0.0.2.0";
doJailbreak super.hw-int;
hw-int = warnAfterVersion "0.0.2.0" (doJailbreak super.hw-int);
# 2025-04-09: jailbreak to allow tasty-quickcheck >= 0.11
chimera =
assert super.chimera.version == "0.4.1.0";
doJailbreak super.chimera;
chimera = warnAfterVersion "0.4.1.0" (doJailbreak super.chimera);
# 2025-04-09: jailbreak to allow tasty-quickcheck >= 0.11
bzlib =
assert super.bzlib.version == "0.5.2.0";
doJailbreak super.bzlib;
bzlib = warnAfterVersion "0.5.2.0" (doJailbreak super.bzlib);
inherit
(lib.mapAttrs (
@@ -3133,80 +3154,54 @@ self: super:
];
# 2025-04-09: jailbreak to allow mtl >= 2.3, template-haskell >= 2.17, text >= 1.3
egison-pattern-src-th-mode =
assert super.egison-pattern-src-th-mode.version == "0.2.1.2";
doJailbreak super.egison-pattern-src-th-mode;
egison-pattern-src-th-mode = warnAfterVersion "0.2.1.2" (
doJailbreak super.egison-pattern-src-th-mode
);
# 2025-04-09: jailbreak to allow base >= 4.17, hasql >= 1.6, hasql-transaction-io >= 0.2
hasql-streams-core =
assert super.hasql-streams-core.version == "0.1.0.0";
doJailbreak super.hasql-streams-core;
hasql-streams-core = warnAfterVersion "0.1.0.0" (doJailbreak super.hasql-streams-core);
# 2025-04-09: jailbreak to allow bytestring >= 0.12, text >= 2.1
pipes-text =
assert super.pipes-text.version == "1.0.1";
doJailbreak super.pipes-text;
pipes-text = warnAfterVersion "1.0.1" (doJailbreak super.pipes-text);
# 2025-04-09: jailbreak to allow bytestring >= 0.12
array-builder =
assert super.array-builder.version == "0.1.4.1";
doJailbreak super.array-builder;
array-builder = warnAfterVersion "0.1.4.1" (doJailbreak super.array-builder);
# 2025-04-09: missing dependency - somehow it's not listed on hackage
broadcast-chan = addExtraLibrary self.conduit super.broadcast-chan;
# 2025-04-09: jailbreak to allow template-haskell >= 2.21, th-abstraction >= 0.7
kind-generics-th =
assert super.kind-generics-th.version == "0.2.3.3";
doJailbreak super.kind-generics-th;
kind-generics-th = warnAfterVersion "0.2.3.3" (doJailbreak super.kind-generics-th);
# 2025-04-09: jailbreak to allow tasty >= 1.5
cvss =
assert super.cvss.version == "0.1";
doJailbreak super.cvss;
cvss = warnAfterVersion "0.1" (doJailbreak super.cvss);
# 2025-04-09: jailbreak to allow aeson >= 2.2, base >= 4.19, text >= 2.1
ebird-api =
assert super.ebird-api.version == "0.2.0.0";
doJailbreak super.ebird-api;
ebird-api = warnAfterVersion "0.2.0.0" (doJailbreak super.ebird-api);
# 2025-04-13: jailbreak to allow bytestring >= 0.12
strings =
assert super.strings.version == "1.1";
doJailbreak super.strings;
strings = warnAfterVersion "1.1" (doJailbreak super.strings);
# 2025-04-13: jailbreak to allow bytestring >= 0.12
twain =
assert super.twain.version == "2.2.0.1";
doJailbreak super.twain;
twain = warnAfterVersion "2.2.0.1" (doJailbreak super.twain);
# 2025-04-13: jailbreak to allow hedgehog >= 1.5
hw-bits =
assert super.hw-bits.version == "0.7.2.2";
doJailbreak super.hw-bits;
hw-bits = warnAfterVersion "0.7.2.2" (doJailbreak super.hw-bits);
# 2025-04-23: jailbreak to allow bytestring >= 0.12
brillo-rendering = lib.warnIf (
super.brillo-rendering.version != "1.13.3"
) "haskellPackages.brillo-rendering override can be dropped" doJailbreak super.brillo-rendering;
brillo-examples = lib.warnIf (
super.brillo-examples.version != "1.13.3"
) "haskellPackages.brillo-examples override can be dropped" doJailbreak super.brillo-examples;
brillo-juicy = lib.warnIf (
super.brillo-juicy.version != "0.2.4"
) "haskellPackages.brillo-juicy override can be dropped" doJailbreak super.brillo-juicy;
brillo = lib.warnIf (
super.brillo.version != "1.13.3"
) "haskellPackages.brillo override can be dropped" doJailbreak super.brillo;
brillo-rendering = warnAfterVersion "1.13.3" (doJailbreak super.brillo-rendering);
brillo-examples = warnAfterVersion "1.13.3" (doJailbreak super.brillo-examples);
brillo-juicy = warnAfterVersion "0.2.4" (doJailbreak super.brillo-juicy);
brillo = warnAfterVersion "1.13.3" (doJailbreak super.brillo);
# 2025-04-13: jailbreak to allow th-abstraction >= 0.7
crucible =
assert super.crucible.version == "0.7.2";
crucible = warnAfterVersion "0.7.2" (
doJailbreak (
super.crucible.override {
what4 = self.what4_1_7;
}
);
)
);
crucible-llvm = super.crucible-llvm.override {
what4 = self.what4_1_7;
@@ -3260,29 +3255,23 @@ self: super:
finitary = dontCheck super.finitary;
# 2025-04-13: jailbreak to allow bytestring >= 0.12, text >= 2.1
ktx-codec =
assert super.ktx-codec.version == "0.0.2.1";
doJailbreak super.ktx-codec;
# 2025-04-23: jailbreak to allow text >= 2.1
# https://github.com/wereHamster/haskell-css-syntax/issues/8
css-syntax = doJailbreak super.css-syntax;
ktx-codec = warnAfterVersion "0.0.2.1" (doJailbreak super.ktx-codec);
# 2025-04-13: jailbreak to allow template-haskell >= 2.17
sr-extra = overrideCabal (drv: {
version =
assert super.sr-extra.version == "1.88";
"1.88-unstable-2025-03-30";
# includes https://github.com/seereason/sr-extra/pull/7
src = pkgs.fetchFromGitHub {
owner = "seereason";
repo = "sr-extra";
rev = "2b18ced8d07aa8832168971842b20ea49369e4f0";
hash = "sha256-jInfHA1xkLjx5PfsgQVzeQIN3OjTUpEz7dpVNOGNo3g=";
};
editedCabalFile = null;
revision = null;
}) super.sr-extra;
sr-extra = warnAfterVersion "1.88" (
overrideCabal (drv: {
version = "1.88-unstable-2025-03-30";
# includes https://github.com/seereason/sr-extra/pull/7
src = pkgs.fetchFromGitHub {
owner = "seereason";
repo = "sr-extra";
rev = "2b18ced8d07aa8832168971842b20ea49369e4f0";
hash = "sha256-jInfHA1xkLjx5PfsgQVzeQIN3OjTUpEz7dpVNOGNo3g=";
};
editedCabalFile = null;
revision = null;
}) super.sr-extra
);
# Too strict bounds on base <4.19 and tasty <1.5
# https://github.com/maoe/ghc-prof/issues/25
@@ -3299,48 +3288,19 @@ self: super:
# 2025-5-15: Too strict bounds on base <4.19, see: https://github.com/zachjs/sv2v/issues/317
sv2v = doJailbreak super.sv2v;
# 2025-06-25: Upper bounds of transformers and bytestring too strict,
# as haskore 0.2.0.8 was released in 2016 and is quite outdated.
# Tests fail with:
# ### Error in: 11:comparison with MIDI files generated by former Haskore versions:23:Ssf:1
# src/Test/MIDI/Ssf.mid: openBinaryFile: does not exist (No such file or directory)
# Necessary files aren't listed in extra-source-files in the cabal file
# and therefore aren't uploaded to hackage
# Needs to be fixed upstream
haskore = dontCheck (doJailbreak super.haskore);
}
// import ./configuration-tensorflow.nix { inherit pkgs haskellLib; } self super
# Gogol Packages
# 2024-12-27: use latest source files from github, as the hackage release is outdated
// (
let
gogolSrc = pkgs.fetchFromGitHub {
owner = "brendanhay";
repo = "gogol";
rev = "a9d50bbd73d2cb9675bd9bff0f50fcd108f95608";
sha256 = "sha256-8ilQe/Z5MLFIDY8T68azFpYW5KkSyhy3c6pgWtsje9w=";
};
setGogolSourceRoot =
dir: drv:
(overrideCabal (drv: { src = gogolSrc; }) drv).overrideAttrs (_oldAttrs: {
sourceRoot = "${gogolSrc.name}/${dir}";
});
isGogolService = name: lib.hasPrefix "gogol-" name && name != "gogol-core";
gogolServices = lib.filter isGogolService (lib.attrNames super);
gogolServiceOverrides = (
lib.genAttrs gogolServices (name: setGogolSourceRoot "lib/services/${name}" super.${name})
);
in
{
gogol-core =
assert super.gogol-core.version == "0.5.0";
lib.pipe super.gogol-core [
(setGogolSourceRoot "lib/gogol-core")
(addBuildDepend self.base64)
(overrideCabal (drv: {
editedCabalFile = null;
revision = null;
}))
];
gogol =
assert super.gogol.version == "0.5.0";
setGogolSourceRoot "lib/gogol" super.gogol;
}
// gogolServiceOverrides
)
# Amazonka Packages
# 2025-01-24: use latest source files from github, as the hackage release is outdated, https://github.com/brendanhay/amazonka/issues/1001
// (
@@ -3358,7 +3318,8 @@ self: super:
src = amazonkaSrc + "/${dir}";
})
drv;
isAmazonkaService = name: lib.hasPrefix "amazonka-" name && name != "amazonka-test";
isAmazonkaService =
name: lib.hasPrefix "amazonka-" name && name != "amazonka-test" && name != "amazonka-s3-streaming";
amazonkaServices = lib.filter isAmazonkaService (lib.attrNames super);
amazonkaServiceOverrides = (
lib.genAttrs amazonkaServices (
@@ -3372,18 +3333,17 @@ self: super:
in
amazonkaServiceOverrides
// {
amazonka-core =
assert super.amazonka-core.version == "2.0";
lib.pipe super.amazonka-core [
(setAmazonkaSourceRoot "lib/amazonka-core")
(addBuildDepends [
self.microlens
self.microlens-contra
self.microlens-pro
])
];
amazonka =
assert super.amazonka.version == "2.0";
setAmazonkaSourceRoot "lib/amazonka" (doJailbreak super.amazonka);
amazonka-core = lib.pipe super.amazonka-core [
(warnAfterVersion "2.0")
(setAmazonkaSourceRoot "lib/amazonka-core")
(addBuildDepends [
self.microlens
self.microlens-contra
self.microlens-pro
])
];
amazonka = warnAfterVersion "2.0" (
setAmazonkaSourceRoot "lib/amazonka" (doJailbreak super.amazonka)
);
}
)
@@ -157,9 +157,6 @@ self: super: {
}
);
# Restrictive upper bound on base and containers
sv2v = doJailbreak super.sv2v;
# Later versions only support GHC >= 9.2
ghc-exactprint = self.ghc-exactprint_0_6_4;
@@ -1,13 +1,21 @@
{ pkgs, haskellLib }:
self: super:
with haskellLib;
let
inherit (pkgs) lib;
warnAfterVersion =
ver: pkg:
lib.warnIf (lib.versionOlder ver
super.${pkg.pname}.version
) "override for haskell.packages.ghc910.${pkg.pname} may no longer be needed" pkg;
in
self: super: {
{
llvmPackages = lib.dontRecurseIntoAttrs self.ghc.llvmPackages;
# Disable GHC core libraries
@@ -68,11 +76,12 @@ self: super: {
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 (doJailbreak self.ghc-lib_9_10_2_20250503);
ghc-lib-parser = doDistribute (doJailbreak self.ghc-lib-parser_9_10_2_20250503);
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;
@@ -88,7 +97,6 @@ self: super: {
#
# Jailbreaks
#
base64 = doJailbreak super.base64; # base <4.20
# 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";
@@ -98,15 +106,8 @@ self: super: {
haddock-library =
assert super.haddock-library.version == "1.11.0";
doJailbreak super.haddock-library;
spdx = doJailbreak super.spdx; # Cabal-syntax < 3.13
tasty-coverage = doJailbreak super.tasty-coverage; # base <4.20, filepath <1.5
tree-diff = doJailbreak super.tree-diff; # base <4.20
large-generics = doJailbreak super.large-generics; # base <4.20
tree-sitter = doJailbreak super.tree-sitter; # containers <0.7, filepath <1.5
time-compat = doJailbreak super.time-compat; # base <4.20
# https://github.com/haskell-party/feed/issues/73
feed = doJailbreak super.feed; # base
bitvec = doJailbreak super.bitvec; # primitive <0.9
hashable_1_5_0_0 = doJailbreak super.hashable_1_5_0_0; # relax bounds for QuickCheck, tasty, and tasty-quickcheck
@@ -118,17 +119,11 @@ self: super: {
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 = disableCabalFlag "retrie" (
disableCabalFlag "hlint" (
disableCabalFlag "stylishhaskel" (
super.haskell-language-server.override {
stylish-haskell = null;
retrie = null;
apply-refact = null;
hlint = null;
}
)
)
);
haskell-language-server = super.haskell-language-server.override {
floskell = null;
retrie = null;
hlint = null;
apply-refact = null;
};
}
@@ -5,19 +5,11 @@ self: super:
let
inherit (pkgs) lib;
versionAtMost = a: b: lib.versionAtLeast b a;
warnVersion =
predicate: ver: pkg:
let
pname = pkg.pname;
in
lib.warnIf (predicate ver
super.${pname}.version
) "override for haskell.packages.ghc912.${pname} may no longer be needed" pkg;
warnAfterVersion = warnVersion lib.versionOlder;
warnFromVersion = warnVersion versionAtMost;
warnAfterVersion =
ver: pkg:
lib.warnIf (lib.versionOlder ver
super.${pkg.pname}.version
) "override for haskell.packages.ghc912.${pkg.pname} may no longer be needed" pkg;
in
@@ -93,20 +85,17 @@ with haskellLib;
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 = doDistribute self.fourmolu_0_18_0_0;
# 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
#
lucid = doJailbreak super.lucid; # base <4.21
extensions_0_1_0_3 = doJailbreak super.extensions_0_1_0_3; # hedgehog >=1.0 && <1.5, hspec-hedgehog >=0.0.1 && <0.2
hie-compat = doJailbreak super.hie-compat; # base <4.21
hiedb = doJailbreak super.hiedb; # base >=4.12 && <4.21, ghc >=8.6 && <9.11
ed25519 = doJailbreak super.ed25519; # https://github.com/thoughtpolice/hs-ed25519/issues/39
ghc-trace-events = doJailbreak super.ghc-trace-events; # base <4.21
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
@@ -115,10 +104,7 @@ with haskellLib;
'';
}) super.cpphs;
vector = doJailbreak super.vector; # doctest >=0.15 && <0.24
binary-instances = doJailbreak super.binary-instances; # base >=4.6.0.1 && <4.21, tagged >=0.8.8 && <0.8.9
cabal-install-parsers = doJailbreak super.cabal-install-parsers; # base, Cabal-syntax, etc.
http-api-data = doJailbreak super.http-api-data; # base < 4.21
servant = doJailbreak super.servant; # base < 4.21
ghc-exactprint_1_12_0_0 = addBuildDepends [
# somehow buildDepends was missing
self.Diff
@@ -128,7 +114,6 @@ with haskellLib;
self.syb
self.HUnit
] super.ghc-exactprint_1_12_0_0;
co-log-core = doJailbreak super.co-log-core; # doctest >=0.16.0 && <0.24
#
# Test suite issues
@@ -173,13 +158,6 @@ with haskellLib;
# Multiple issues
#
fourmolu_0_18_0_0 = dontCheck (
super.fourmolu_0_18_0_0.override {
# Diff >=1 && <2
Diff = super.Diff_1_0_2;
}
);
doctest-parallel = overrideCabal (drv: {
patches = drv.patches or [ ] ++ [
(pkgs.fetchpatch {
@@ -191,15 +169,10 @@ with haskellLib;
];
}) (dontCheck (doJailbreak super.doctest-parallel)); # Cabal >=2.4 && <3.13
haskell-language-server = disableCabalFlag "retrie" (
disableCabalFlag "stylishhaskel" (
super.haskell-language-server.override {
stylish-haskell = null;
floskell = null;
retrie = null;
}
)
);
haskell-language-server = super.haskell-language-server.override {
floskell = null;
retrie = null;
};
# Allow Cabal 3.14
hpack = doDistribute self.hpack_0_38_0;
@@ -2,20 +2,10 @@
let
inherit (pkgs) fetchpatch lib;
checkAgainAfter =
pkg: ver: msg: act:
if builtins.compareVersions pkg.version ver <= 0 then
act
else
builtins.throw "Check if '${msg}' was resolved in ${pkg.pname} ${pkg.version} and update or remove this";
in
with haskellLib;
self: super:
let
jailbreakForCurrentVersion = p: v: checkAgainAfter p v "bad bounds" (doJailbreak p);
in
{
self: super: {
llvmPackages = lib.dontRecurseIntoAttrs self.ghc.llvmPackages;
# Disable GHC core libraries.
@@ -149,6 +139,12 @@ in
stylish-haskell
;
# directory-ospath-streaming requires the ospath API in core packages
# filepath, directory and unix.
stan = super.stan.override {
directory-ospath-streaming = null;
};
# Packages which need compat library for GHC < 9.6
inherit (lib.mapAttrs (_: addBuildDepends [ self.foldable1-classes-compat ]) super)
indexed-traversable
@@ -1,28 +1,20 @@
{ pkgs, haskellLib }:
self: super:
with haskellLib;
let
inherit (pkgs) lib;
jailbreakWhileRevision =
rev:
overrideCabal (old: {
jailbreak =
assert old.revision or "0" == toString rev;
true;
});
checkAgainAfter =
pkg: ver: msg: act:
if builtins.compareVersions pkg.version ver <= 0 then
act
else
builtins.throw "Check if '${msg}' was resolved in ${pkg.pname} ${pkg.version} and update or remove this";
jailbreakForCurrentVersion = p: v: checkAgainAfter p v "bad bounds" (doJailbreak p);
warnAfterVersion =
ver: pkg:
lib.warnIf (lib.versionOlder ver
super.${pkg.pname}.version
) "override for haskell.packages.ghc96.${pkg.pname} may no longer be needed" pkg;
in
self: super:
{
llvmPackages = lib.dontRecurseIntoAttrs self.ghc.llvmPackages;
@@ -102,7 +94,7 @@ self: super:
cabal-install = doJailbreak super.cabal-install;
# Forbids base >= 4.18, fix proposed: https://github.com/sjakobi/newtype-generics/pull/25
newtype-generics = jailbreakForCurrentVersion super.newtype-generics "0.6.2";
newtype-generics = warnAfterVersion "0.6.2" (doJailbreak super.newtype-generics);
# Jailbreaks for servant <0.20
servant-lucid = doJailbreak super.servant-lucid;
@@ -1,13 +1,22 @@
{ pkgs, haskellLib }:
self: super:
with haskellLib;
let
inherit (pkgs.stdenv.hostPlatform) isDarwin;
inherit (pkgs) lib;
warnAfterVersion =
ver: pkg:
lib.warnIf (lib.versionOlder ver
super.${pkg.pname}.version
) "override for haskell.packages.ghc912.${pkg.pname} may no longer be needed" pkg;
in
self: super: {
{
llvmPackages = pkgs.lib.dontRecurseIntoAttrs self.ghc.llvmPackages;
@@ -88,12 +97,12 @@ self: super: {
# 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 =
assert super.ghc-lib-parser.version == "9.8.5.20250214";
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;
} super.ghc-lib-parser
);
}
@@ -64,7 +64,6 @@ broken-packages:
- adaptive-containers # failure in job https://hydra.nixos.org/build/233243181 at 2023-09-02
- adaptive-tuple # failure in job https://hydra.nixos.org/build/233244881 at 2023-09-02
- adb # failure in job https://hydra.nixos.org/build/233193888 at 2023-09-02
- adblock2privoxy # failure in job https://hydra.nixos.org/build/295091236 at 2025-04-22
- addy # failure in job https://hydra.nixos.org/build/233240594 at 2023-09-02
- adhoc-fixtures-hspec # failure in job https://hydra.nixos.org/build/252725981 at 2024-03-16
- adjunction # failure in job https://hydra.nixos.org/build/233237774 at 2023-09-02
@@ -160,13 +159,11 @@ broken-packages:
- amazonka-iam-policy # failure in job https://hydra.nixos.org/build/233233098 at 2023-09-02
- amazonka-mtl # failure in job https://hydra.nixos.org/build/295091544 at 2025-04-22
- amazonka-s3-encryption # failure in job https://hydra.nixos.org/build/295091601 at 2025-04-22
- amazonka-s3-streaming # failure in job https://hydra.nixos.org/build/295091587 at 2025-04-22
- AMI # failure in job https://hydra.nixos.org/build/233232505 at 2023-09-02
- amqp-conduit # failure in job https://hydra.nixos.org/build/233228080 at 2023-09-02
- amqp-streamly # failure in job https://hydra.nixos.org/build/295091669 at 2025-04-22
- amqp-worker # failure in job https://hydra.nixos.org/build/236675859 at 2023-10-04
- amrun # failure in job https://hydra.nixos.org/build/295091655 at 2025-04-22
- anagrep # failure in job https://hydra.nixos.org/build/295091652 at 2025-04-22
- analyze # failure in job https://hydra.nixos.org/build/233251441 at 2023-09-02
- anansi # failure in job https://hydra.nixos.org/build/273451545 at 2024-10-01
- anansi-pandoc # failure in job https://hydra.nixos.org/build/233252389 at 2023-09-02
@@ -198,7 +195,6 @@ broken-packages:
- antisplice # failure in job https://hydra.nixos.org/build/233238144 at 2023-09-02
- antlr-haskell # failure in job https://hydra.nixos.org/build/233208196 at 2023-09-02
- anydbm # failure in job https://hydra.nixos.org/build/233195447 at 2023-09-02
- aoc # failure in job https://hydra.nixos.org/build/295091701 at 2025-04-22
- Aoide # failure in job https://hydra.nixos.org/build/233239286 at 2023-09-02
- aop-prelude # failure in job https://hydra.nixos.org/build/295091671 at 2025-04-22
- aosd # failure in job https://hydra.nixos.org/build/233207331 at 2023-09-02
@@ -436,7 +432,6 @@ broken-packages:
- binary-derive # failure in job https://hydra.nixos.org/build/233201950 at 2023-09-02
- binary-ext # failure in job https://hydra.nixos.org/build/233247463 at 2023-09-02
- binary-indexed-tree # failure in job https://hydra.nixos.org/build/233204069 at 2023-09-02
- binary-parsers # failure in job https://hydra.nixos.org/build/233194579 at 2023-09-02
- binary-protocol # failure in job https://hydra.nixos.org/build/233206098 at 2023-09-02
- binary-strict # failure in job https://hydra.nixos.org/build/233231473 at 2023-09-02
- binary-tree # failure in job https://hydra.nixos.org/build/233211047 at 2023-09-02
@@ -529,7 +524,6 @@ broken-packages:
- blubber-server # failure in job https://hydra.nixos.org/build/233199530 at 2023-09-02
- bludigon # failure in job https://hydra.nixos.org/build/233248190 at 2023-09-02
- Blueprint # failure in job https://hydra.nixos.org/build/233252987 at 2023-09-02
- bluesky-tools # failure in job https://hydra.nixos.org/build/295092042 at 2025-04-22
- bluetileutils # failure in job https://hydra.nixos.org/build/233197334 at 2023-09-02
- blunk-hask-tests # failure in job https://hydra.nixos.org/build/233240288 at 2023-09-02
- bogocopy # failure in job https://hydra.nixos.org/build/233232322 at 2023-09-02
@@ -654,7 +648,6 @@ broken-packages:
- cabal-install-bundle # failure in job https://hydra.nixos.org/build/233194629 at 2023-09-02
- cabal-install-ghc72 # failure in job https://hydra.nixos.org/build/233246160 at 2023-09-02
- cabal-install-ghc74 # failure in job https://hydra.nixos.org/build/233226625 at 2023-09-02
- cabal-lenses # failure in job https://hydra.nixos.org/build/233247565 at 2023-09-02
- cabal-meta # failure in job https://hydra.nixos.org/build/233194466 at 2023-09-02
- cabal-mon # failure in job https://hydra.nixos.org/build/233217320 at 2023-09-02
- cabal-nirvana # failure in job https://hydra.nixos.org/build/233222083 at 2023-09-02
@@ -1259,8 +1252,8 @@ broken-packages:
- definitive-base # failure in job https://hydra.nixos.org/build/233255489 at 2023-09-02
- deiko-config # failure in job https://hydra.nixos.org/build/233210895 at 2023-09-02
- deka # failure in job https://hydra.nixos.org/build/233206540 at 2023-09-02
- delivery-status-notification # failure in job https://hydra.nixos.org/build/295092814 at 2025-04-22
- Delta-Lambda # failure in job https://hydra.nixos.org/build/233239406 at 2023-09-02
- delta-store # failure in job https://hydra.nixos.org/build/299186683 at 2025-06-23
- delude # failure in job https://hydra.nixos.org/build/233231224 at 2023-09-02
- demangler # failure in job https://hydra.nixos.org/build/295092777 at 2025-04-22
- demarcate # failure in job https://hydra.nixos.org/build/233194005 at 2023-09-02
@@ -1582,7 +1575,6 @@ broken-packages:
- enummapmap # failure in job https://hydra.nixos.org/build/233228525 at 2023-09-02
- enummaps # failure in job https://hydra.nixos.org/build/233251965 at 2023-09-02
- enummapset-th # failure in job https://hydra.nixos.org/build/233225322 at 2023-09-02
- env-extra # failure in job https://hydra.nixos.org/build/296519026 at 2025-05-14
- env-parser # failure in job https://hydra.nixos.org/build/233237933 at 2023-09-02
- envelope # failure in job https://hydra.nixos.org/build/233199309 at 2023-09-02
- envstatus # failure in job https://hydra.nixos.org/build/233257940 at 2023-09-02
@@ -1722,7 +1714,6 @@ broken-packages:
- FastxPipe # failure in job https://hydra.nixos.org/build/233232889 at 2023-09-02
- fathead-util # failure in job https://hydra.nixos.org/build/233255882 at 2023-09-02
- fay # failure in job https://hydra.nixos.org/build/233197122 at 2023-09-02
- fb # failure in job https://hydra.nixos.org/build/295093236 at 2025-04-22
- fb-persistent # failure in job https://hydra.nixos.org/build/233193999 at 2023-09-02
- fb-util # failure in job https://hydra.nixos.org/build/296519228 at 2025-05-14
- fbmessenger-api # failure in job https://hydra.nixos.org/build/233247641 at 2023-09-02
@@ -1881,8 +1872,6 @@ broken-packages:
- franchise # failure in job https://hydra.nixos.org/build/233256790 at 2023-09-02
- franz # failure in job https://hydra.nixos.org/build/252725109 at 2024-03-16
- fraxl # failure in job https://hydra.nixos.org/build/233219345 at 2023-09-02
- freckle-env # failure in job https://hydra.nixos.org/build/295093368 at 2025-04-22
- freckle-kafka # failure in job https://hydra.nixos.org/build/269673466 at 2024-08-19
- freddy # failure in job https://hydra.nixos.org/build/233208999 at 2023-09-02
- free-alacarte # failure in job https://hydra.nixos.org/build/275141793 at 2024-10-21
- free-applicative-t # failure in job https://hydra.nixos.org/build/252715728 at 2024-03-16
@@ -1895,6 +1884,7 @@ broken-packages:
- free-theorems-webui # failure in job https://hydra.nixos.org/build/233255034 at 2023-09-02
- free-v-bucks-generator-no-survey # failure in job https://hydra.nixos.org/build/233208419 at 2023-09-02
- free-v-bucks-generator-ps4-no-survey # failure in job https://hydra.nixos.org/build/233190747 at 2023-09-02
- free-vector-spaces # failure in job https://hydra.nixos.org/build/299137660 at 2025-06-23
- freenect # failure in job https://hydra.nixos.org/build/233196105 at 2023-09-02
- freer-effects # failure in job https://hydra.nixos.org/build/233214270 at 2023-09-02
- freer-simple-catching # failure in job https://hydra.nixos.org/build/295122831 at 2025-04-22
@@ -1915,6 +1905,7 @@ broken-packages:
- frown # failure in job https://hydra.nixos.org/build/233208462 at 2023-09-02
- frp-arduino # failure in job https://hydra.nixos.org/build/233192216 at 2023-09-02
- frpnow # failure in job https://hydra.nixos.org/build/233236056 at 2023-09-02
- fs-api # failure in job https://hydra.nixos.org/build/299137683 at 2025-06-23
- fs-events # failure in job https://hydra.nixos.org/build/233218231 at 2023-09-02
- fsh-csv # failure in job https://hydra.nixos.org/build/233220196 at 2023-09-02
- FSM # failure in job https://hydra.nixos.org/build/233247343 at 2023-09-02
@@ -1979,7 +1970,6 @@ broken-packages:
- gearhash # failure in job https://hydra.nixos.org/build/252728216 at 2024-03-16
- gelatin # failure in job https://hydra.nixos.org/build/233249394 at 2023-09-02
- gemcap # failure in job https://hydra.nixos.org/build/233202506 at 2023-09-02
- gemini-server # failure in job https://hydra.nixos.org/build/295093453 at 2025-04-22
- gemmula-altera # failure in job https://hydra.nixos.org/build/252721416 at 2024-03-16
- gemstone # failure in job https://hydra.nixos.org/build/233202246 at 2023-09-02
- gen-imports # failure in job https://hydra.nixos.org/build/233216588 at 2023-09-02
@@ -2020,6 +2010,7 @@ broken-packages:
- gentlemark # failure in job https://hydra.nixos.org/build/233202158 at 2023-09-02
- genvalidity-appendful # failure in job https://hydra.nixos.org/build/295093519 at 2025-04-22
- genvalidity-mergeful # failure in job https://hydra.nixos.org/build/295093508 at 2025-04-22
- genvalidity-network-uri # failure in job https://hydra.nixos.org/build/299137822 at 2025-06-23
- geo-resolver # failure in job https://hydra.nixos.org/build/233206563 at 2023-09-02
- geo-uk # failure in job https://hydra.nixos.org/build/233221284 at 2023-09-02
- geocode-google # failure in job https://hydra.nixos.org/build/233191594 at 2023-09-02
@@ -2121,6 +2112,7 @@ broken-packages:
- gitlab-api # failure in job https://hydra.nixos.org/build/233256639 at 2023-09-02
- gitlib-cmdline # failure in job https://hydra.nixos.org/build/233230857 at 2023-09-02
- gitlib-utils # failure in job https://hydra.nixos.org/build/233190826 at 2023-09-02
- gitrev-typed # failure in job https://hydra.nixos.org/build/299137966 at 2025-06-23
- gitter # failure in job https://hydra.nixos.org/build/233210040 at 2023-09-02
- glade # failure in job https://hydra.nixos.org/build/233229566 at 2023-09-02
- glambda # failure in job https://hydra.nixos.org/build/252728236 at 2024-03-16
@@ -2421,6 +2413,7 @@ broken-packages:
- haskell-formatter # failure in job https://hydra.nixos.org/build/233237167 at 2023-09-02
- haskell-generate # failure in job https://hydra.nixos.org/build/233197927 at 2023-09-02
- haskell-go-checkers # failure in job https://hydra.nixos.org/build/234459896 at 2023-09-13
- haskell-halogen-core # failure in job https://hydra.nixos.org/build/299138362 at 2025-06-23
- haskell-holes-th # failure in job https://hydra.nixos.org/build/233238457 at 2023-09-02
- haskell-igraph # failure in job https://hydra.nixos.org/build/233201209 at 2023-09-02
- haskell-import-graph # failure in job https://hydra.nixos.org/build/233225328 at 2023-09-02
@@ -2476,9 +2469,10 @@ broken-packages:
- haskhol-core # failure in job https://hydra.nixos.org/build/233232550 at 2023-09-02
- haskmon # failure in job https://hydra.nixos.org/build/233228390 at 2023-09-02
- haskoin # failure in job https://hydra.nixos.org/build/233201668 at 2023-09-02
- haskoin-store # failure in job https://hydra.nixos.org/build/299138382 at 2025-06-23
- haskoin-util # failure in job https://hydra.nixos.org/build/233222171 at 2023-09-02
- haskoin-wallet # failure in job https://hydra.nixos.org/build/233206922 at 2023-09-02
- haskore # failure in job https://hydra.nixos.org/build/233238668 at 2023-09-02
- haskore-realtime # failure in job https://hydra.nixos.org/build/301391170 at 2025-07-01
- haskore-vintage # failure in job https://hydra.nixos.org/build/233230742 at 2023-09-02
- HaskRel # failure in job https://hydra.nixos.org/build/295090970 at 2025-04-22
- hasktorch-codegen # failure in job https://hydra.nixos.org/build/233232876 at 2023-09-02
@@ -2613,7 +2607,6 @@ broken-packages:
- hexpr # failure in job https://hydra.nixos.org/build/233198146 at 2023-09-02
- hexpress # failure in job https://hydra.nixos.org/build/233219047 at 2023-09-02
- hexquote # failure in job https://hydra.nixos.org/build/233230240 at 2023-09-02
- hexstring # failure in job https://hydra.nixos.org/build/233193009 at 2023-09-02
- hext # failure in job https://hydra.nixos.org/build/233221345 at 2023-09-02
- hextra # failure in job https://hydra.nixos.org/build/233238071 at 2023-09-02
- hextream # failure in job https://hydra.nixos.org/build/252712270 at 2024-03-16
@@ -3242,7 +3235,6 @@ broken-packages:
- io-capture # failure in job https://hydra.nixos.org/build/233196311 at 2023-09-02
- io-choice # failure in job https://hydra.nixos.org/build/233218388 at 2023-09-02
- io-reactive # failure in job https://hydra.nixos.org/build/233205095 at 2023-09-02
- io-sim # failure in job https://hydra.nixos.org/build/295094727 at 2025-04-22
- ioctl # failure in job https://hydra.nixos.org/build/233191634 at 2023-09-02
- IOR # failure in job https://hydra.nixos.org/build/233206346 at 2023-09-02
- iostring # failure in job https://hydra.nixos.org/build/233195232 at 2023-09-02
@@ -3481,7 +3473,6 @@ broken-packages:
- language-elm # failure in job https://hydra.nixos.org/build/233214012 at 2023-09-02
- language-fortran # failure in job https://hydra.nixos.org/build/233205480 at 2023-09-02
- language-gcl # failure in job https://hydra.nixos.org/build/233218957 at 2023-09-02
- language-gemini # failure in job https://hydra.nixos.org/build/295094938 at 2025-04-22
- language-go # failure in job https://hydra.nixos.org/build/233194866 at 2023-09-02
- language-guess # failure in job https://hydra.nixos.org/build/233257420 at 2023-09-02
- language-hcl # failure in job https://hydra.nixos.org/build/233212998 at 2023-09-02
@@ -3572,7 +3563,6 @@ broken-packages:
- lhslatex # failure in job https://hydra.nixos.org/build/233246375 at 2023-09-02
- LibClang # failure in job https://hydra.nixos.org/build/233194732 at 2023-09-02
- libexpect # failure in job https://hydra.nixos.org/build/233226545 at 2023-09-02
- libfuse3 # failure in job https://hydra.nixos.org/build/295095036 at 2025-04-22
- libGenI # failure in job https://hydra.nixos.org/build/233240857 at 2023-09-02
- libgit # failure in job https://hydra.nixos.org/build/252729283 at 2024-03-16
- libhbb # failure in job https://hydra.nixos.org/build/233232186 at 2023-09-02
@@ -3663,6 +3653,7 @@ broken-packages:
- LiterateMarkdown # failure in job https://hydra.nixos.org/build/233233229 at 2023-09-02
- little-earley # failure in job https://hydra.nixos.org/build/233197880 at 2023-09-02
- ll-picosat # failure in job https://hydra.nixos.org/build/233206257 at 2023-09-02
- llama-cpp-hs # failure in job https://hydra.nixos.org/build/299139409 at 2025-06-23
- llsd # failure in job https://hydra.nixos.org/build/233241590 at 2023-09-02
- llvm-base # failure in job https://hydra.nixos.org/build/233244366 at 2023-09-02
- llvm-codegen # failure in job https://hydra.nixos.org/build/295095119 at 2025-04-22
@@ -3888,8 +3879,6 @@ broken-packages:
- midisurface # failure in job https://hydra.nixos.org/build/233224559 at 2023-09-02
- mig-swagger-ui # failure in job https://hydra.nixos.org/build/295095369 at 2025-04-22
- mighttpd2 # failure in job https://hydra.nixos.org/build/233213125 at 2023-09-02
- migrant-core # failure in job https://hydra.nixos.org/build/295095347 at 2025-04-22
- migrant-postgresql-simple # failure in job https://hydra.nixos.org/build/233191795 at 2023-09-02
- mikmod # failure in job https://hydra.nixos.org/build/233247364 at 2023-09-02
- mikrokosmos # failure in job https://hydra.nixos.org/build/233232143 at 2023-09-02
- miku # failure in job https://hydra.nixos.org/build/233212186 at 2023-09-02
@@ -4088,7 +4077,6 @@ broken-packages:
- my-package-testing # failure in job https://hydra.nixos.org/build/233201843 at 2023-09-02
- my-test-docs # failure in job https://hydra.nixos.org/build/233191840 at 2023-09-02
- myanimelist-export # failure in job https://hydra.nixos.org/build/233255510 at 2023-09-02
- myers-diff # failure in job https://hydra.nixos.org/build/295095575 at 2025-04-22
- myo # failure in job https://hydra.nixos.org/build/233251998 at 2023-09-02
- MyPrimes # failure in job https://hydra.nixos.org/build/233247934 at 2023-09-02
- mysnapsession # failure in job https://hydra.nixos.org/build/252732102 at 2024-03-16
@@ -4598,6 +4586,7 @@ broken-packages:
- phasechange # failure in job https://hydra.nixos.org/build/233254293 at 2023-09-02
- phaser # failure in job https://hydra.nixos.org/build/233250604 at 2023-09-02
- phash # We cannot build this package w/o the C library from <http://www.phash.org/>.
- phino # failure in job https://hydra.nixos.org/build/299140266 at 2025-06-23
- phladiprelio-general-datatype # failure in job https://hydra.nixos.org/build/275139962 at 2024-10-21
- phoityne # failure in job https://hydra.nixos.org/build/233195238 at 2023-09-02
- phoityne-vscode # failure in job https://hydra.nixos.org/build/233190938 at 2023-09-02
@@ -4745,6 +4734,7 @@ broken-packages:
- pomohoro # failure in job https://hydra.nixos.org/build/233244601 at 2023-09-02
- ponder # failure in job https://hydra.nixos.org/build/233223646 at 2023-09-02
- pong-server # failure in job https://hydra.nixos.org/build/233194974 at 2023-09-02
- pontarius-xmpp-extras # failure in job https://hydra.nixos.org/build/301059892 at 2025-07-01
- pontarius-xpmn # failure in job https://hydra.nixos.org/build/233217546 at 2023-09-02
- pool # failure in job https://hydra.nixos.org/build/233205364 at 2023-09-02
- pool-conduit # failure in job https://hydra.nixos.org/build/233246643 at 2023-09-02
@@ -5042,11 +5032,13 @@ broken-packages:
- rational-list # failure in job https://hydra.nixos.org/build/233197144 at 2023-09-02
- rattle # failure in job https://hydra.nixos.org/build/233234335 at 2023-09-02
- rattletrap # failure in job https://hydra.nixos.org/build/233206840 at 2023-09-02
- rawlock # failure in job https://hydra.nixos.org/build/299186718 at 2025-06-23
- rawr # fails to build after unbreaking ghc-datasize at 2025-01-19
- raylib-imgui # failure in job https://hydra.nixos.org/build/233222471 at 2023-09-02
- raz # failure in job https://hydra.nixos.org/build/233218482 at 2023-09-02
- rbst # failure in job https://hydra.nixos.org/build/233238184 at 2023-09-02
- rclient # failure in job https://hydra.nixos.org/build/233239290 at 2023-09-02
- rds-data # failure in job https://hydra.nixos.org/build/299186719 at 2025-06-23
- rds-data-codecs # failure in job https://hydra.nixos.org/build/253696582 at 2024-03-31
- react # failure in job https://hydra.nixos.org/build/257372364 at 2024-04-27
- react-flux # failure in job https://hydra.nixos.org/build/233246819 at 2023-09-02
@@ -5188,6 +5180,7 @@ broken-packages:
- resource-effectful # failure in job https://hydra.nixos.org/build/252712267 at 2024-03-16
- resource-embed # failure in job https://hydra.nixos.org/build/233209109 at 2023-09-02
- resource-pool-monad # failure in job https://hydra.nixos.org/build/233204199 at 2023-09-02
- resource-registry # failure in job https://hydra.nixos.org/build/299350536 at 2025-06-23
- resourcet-pool # failure in job https://hydra.nixos.org/build/233213894 at 2023-09-02
- resp # failure in job https://hydra.nixos.org/build/295096632 at 2025-04-22
- respond # failure in job https://hydra.nixos.org/build/295096626 at 2025-04-22
@@ -5373,7 +5366,6 @@ broken-packages:
- SecureHash-SHA3 # failure in job https://hydra.nixos.org/build/233216866 at 2023-09-02
- secureUDP # failure in job https://hydra.nixos.org/build/233215410 at 2023-09-02
- SegmentTree # failure in job https://hydra.nixos.org/build/233216161 at 2023-09-02
- sel # failure in job https://hydra.nixos.org/build/255671988 at 2024-04-16
- selda-postgresql # failure in job https://hydra.nixos.org/build/245539286 at 2024-01-02
- selectors # failure in job https://hydra.nixos.org/build/233227433 at 2023-09-02
- selenium # failure in job https://hydra.nixos.org/build/233214276 at 2023-09-02
@@ -5530,6 +5522,7 @@ broken-packages:
- signable # failure in job https://hydra.nixos.org/build/259979871 at 2024-05-19
- signable-haskell-protoc # failure in job https://hydra.nixos.org/build/252734188 at 2024-03-16
- signal-messaging-dbus # failure in job https://hydra.nixos.org/build/252723131 at 2024-03-16
- signature # failure in job https://hydra.nixos.org/build/301391178 at 2025-07-01
- significant-figures # failure in job https://hydra.nixos.org/build/295097004 at 2025-04-22
- silero-vad # failure in job https://hydra.nixos.org/build/295096978 at 2025-04-22
- simd # failure in job https://hydra.nixos.org/build/233206642 at 2023-09-02
@@ -5933,7 +5926,6 @@ broken-packages:
- supply-chain-core # failure in job https://hydra.nixos.org/build/252715612 at 2024-03-16
- surjective # failure in job https://hydra.nixos.org/build/233242908 at 2023-09-02
- sv-core # failure in job https://hydra.nixos.org/build/233217245 at 2023-09-02
- sv2v # failure in job https://hydra.nixos.org/build/295097359 at 2025-04-22
- SVD2HS # failure in job https://hydra.nixos.org/build/233248575 at 2023-09-02
- svfactor # failure in job https://hydra.nixos.org/build/233256743 at 2023-09-02
- svg-builder-fork # failure in job https://hydra.nixos.org/build/233224461 at 2023-09-02
@@ -5967,7 +5959,6 @@ broken-packages:
- symantic-xml # failure in job https://hydra.nixos.org/build/233230860 at 2023-09-02
- symbolic-link # failure in job https://hydra.nixos.org/build/233255331 at 2023-09-02
- symengine # failure in job https://hydra.nixos.org/build/233203977 at 2023-09-02
- symtegration # failure in job https://hydra.nixos.org/build/296523016 at 2025-05-14
- sync # failure in job https://hydra.nixos.org/build/233254114 at 2023-09-02
- sync-mht # failure in job https://hydra.nixos.org/build/233236022 at 2023-09-02
- syntactic # failure in job https://hydra.nixos.org/build/233210123 at 2023-09-02
@@ -6115,6 +6106,7 @@ broken-packages:
- text-all # failure in job https://hydra.nixos.org/build/233229321 at 2023-09-02
- text-and-plots # failure in job https://hydra.nixos.org/build/233205250 at 2023-09-02
- text-ascii # failure in job https://hydra.nixos.org/build/233247653 at 2023-09-02
- text-builder-lawful-conversions # failure in job https://hydra.nixos.org/build/299141710 at 2025-06-23
- text-builder-time # failure in job https://hydra.nixos.org/build/295458315 at 2025-05-02
- text-compression # failure in job https://hydra.nixos.org/build/233202733 at 2023-09-02
- text-containers # failure in job https://hydra.nixos.org/build/233253948 at 2023-09-02
@@ -6432,6 +6424,7 @@ broken-packages:
- unicode-prelude # failure in job https://hydra.nixos.org/build/233241723 at 2023-09-02
- unicode-symbols # failure in job https://hydra.nixos.org/build/233241639 at 2023-09-02
- unicode-tricks # failure in job https://hydra.nixos.org/build/233258238 at 2023-09-02
- unimap # failure in job https://hydra.nixos.org/build/299141969 at 2025-06-23
- union-find # failure in job https://hydra.nixos.org/build/233245476 at 2023-09-02
- union-map # failure in job https://hydra.nixos.org/build/233222765 at 2023-09-02
- uniprot-kb # failure in job https://hydra.nixos.org/build/233209692 at 2023-09-02
@@ -6560,6 +6553,7 @@ broken-packages:
- verdict # failure in job https://hydra.nixos.org/build/233238835 at 2023-09-02
- verify # failure in job https://hydra.nixos.org/build/233239874 at 2023-09-02
- verilog # failure in job https://hydra.nixos.org/build/233211999 at 2023-09-02
- verismith # failure in job https://hydra.nixos.org/build/299186734 at 2025-06-23
- versioning # failure in job https://hydra.nixos.org/build/233205892 at 2023-09-02
- vformat # failure in job https://hydra.nixos.org/build/233222840 at 2023-09-02
- vgrep # failure in job https://hydra.nixos.org/build/233210982 at 2023-09-02
@@ -6705,6 +6699,7 @@ broken-packages:
- willow # failure in job https://hydra.nixos.org/build/233215807 at 2023-09-02
- windns # failure in job https://hydra.nixos.org/build/233242724 at 2023-09-02
- winerror # failure in job https://hydra.nixos.org/build/233196100 at 2023-09-02
- wire-streams # failure in job https://hydra.nixos.org/build/299186735 at 2025-06-23
- wireguard-hs # failure in job https://hydra.nixos.org/build/233218722 at 2023-09-02
- wires # failure in job https://hydra.nixos.org/build/233192321 at 2023-09-02
- wiring # failure in job https://hydra.nixos.org/build/233191683 at 2023-09-02
@@ -6754,6 +6749,7 @@ broken-packages:
- writer-cps-mtl # failure in job https://hydra.nixos.org/build/252713593 at 2024-03-16
- wsdl # failure in job https://hydra.nixos.org/build/233208187 at 2023-09-02
- wsedit # failure in job https://hydra.nixos.org/build/233232333 at 2023-09-02
- wsjtx-udp # failure in job https://hydra.nixos.org/build/299186736 at 2025-06-23
- wss-client # timeout
- wtk # failure in job https://hydra.nixos.org/build/233220668 at 2023-09-02
- wumpus-core # failure in job https://hydra.nixos.org/build/233244405 at 2023-09-02
@@ -6799,7 +6795,6 @@ broken-packages:
- xml-prettify # failure in job https://hydra.nixos.org/build/233225974 at 2023-09-02
- xml-prettify-text # failure in job https://hydra.nixos.org/build/233202586 at 2023-09-02
- xml-query # failure in job https://hydra.nixos.org/build/233194795 at 2023-09-02
- xml-syntax # failure in job https://hydra.nixos.org/build/233245678 at 2023-09-02
- xml-to-json # failure in job https://hydra.nixos.org/build/233197489 at 2023-09-02
- xml-tydom-core # failure in job https://hydra.nixos.org/build/233206253 at 2023-09-02
- xml-verify # failure in job https://hydra.nixos.org/build/233237302 at 2023-09-02
@@ -37,6 +37,8 @@ default-package-overrides:
- 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
# keep-sorted end
# keep-sorted start skip_lines=1 case=no numeric=yes
@@ -107,6 +109,7 @@ extra-packages:
- 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
- persistent-test < 2.13.1.4 # 2025-06-04: incompatible with persistent < 2.16, see conf*-common.nix
- 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
@@ -115,6 +118,7 @@ extra-packages:
- simple-get-opt < 0.5 # 2025-05-01: for crux-0.7.2
- stylish-haskell == 0.14.4.0 # 2022-09-19: preserve for ghc 9.0
- 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)
- text == 2.0.2 # 2023-09-14: Needed for elm (which is currently on ghc-8.10)
- text-metrics < 0.3.3 # 2025-02-08: >= 0.3.3 uses GHC2021
@@ -332,7 +336,6 @@ package-maintainers:
- optics
- pandoc
- pandoc-cli
- pandoc-crossref
- postgresql-simple
- purebred-email
- reflex-dom
@@ -1,4 +1,4 @@
# Stackage LTS 23.21
# Stackage LTS 23.24
# This file is auto-generated by
# maintainers/scripts/haskell/update-stackage.sh
default-package-overrides:
@@ -123,7 +123,7 @@ default-package-overrides:
- autodocodec-servant-multipart ==0.0.0.1
- autodocodec-swagger2 ==0.1.0.0
- autodocodec-yaml ==0.4.0.1
- autoexporter ==2.0.0.13
- autoexporter ==2.0.0.15
- automaton ==1.5
- avro ==0.6.2.1
- aws ==0.24.4
@@ -211,7 +211,7 @@ default-package-overrides:
- blas-ffi ==0.1
- blas-hs ==0.1.1.0
- blaze-bootstrap ==0.1.0.1
- blaze-builder ==0.4.2.3
- blaze-builder ==0.4.3
- blaze-colonnade ==1.2.3.0
- blaze-html ==0.9.2.0
- blaze-markup ==0.8.3.0
@@ -219,7 +219,7 @@ default-package-overrides:
- blaze-textual ==0.2.3.1
- bloodhound ==0.23.0.1
- bloomfilter ==2.0.1.2
- bluefin ==0.0.15.0
- bluefin ==0.0.16.0
- bluefin-internal ==0.0.15.0
- bm ==0.2.0.0
- bmp ==1.2.6.4
@@ -257,7 +257,7 @@ default-package-overrides:
- bugsnag-wai ==1.0.0.1
- bugsnag-yesod ==1.0.1.0
- bugzilla-redhat ==1.0.1.1
- burrito ==2.0.1.11
- burrito ==2.0.1.13
- bv ==0.5
- bv-little ==1.3.2
- bv-sized ==1.0.6
@@ -436,7 +436,7 @@ default-package-overrides:
- conduit-aeson ==0.1.1.0
- conduit-algorithms ==0.0.14.0
- conduit-combinators ==1.3.0
- conduit-concurrent-map ==0.1.3
- conduit-concurrent-map ==0.1.4
- conduit-extra ==1.3.7
- conduit-parse ==0.2.1.1
- conduit-zstd ==0.0.2.0
@@ -519,7 +519,7 @@ default-package-overrides:
- csp ==1.4.0
- css-text ==0.1.3.0
- csv ==0.1.2
- csv-conduit ==1.0.1.0
- csv-conduit ==1.0.1.1
- ctrie ==0.2
- cubicbezier ==0.6.0.7
- cubicspline ==0.1.2
@@ -817,7 +817,7 @@ default-package-overrides:
- feature-flags ==0.1.0.1
- fedora-krb ==0.1.0
- fedora-releases ==0.2.1
- fedora-repoquery ==0.7.1
- fedora-repoquery ==0.7.2
- feed ==1.3.2.1
- FenwickTree ==0.1.2.1
- fft ==0.1.8.7
@@ -840,7 +840,7 @@ default-package-overrides:
- filtrable ==0.1.6.0
- fin ==0.3.2
- FindBin ==0.0.5
- fingertree ==0.1.5.0
- fingertree ==0.1.6.1
- finite-typelits ==0.2.1.0
- first-class-families ==0.8.1.0
- fits-parse ==0.4.2
@@ -859,7 +859,7 @@ default-package-overrides:
- flexible-defaults ==0.0.3
- FloatingHex ==0.5
- floatshow ==0.2.4
- flow ==2.0.0.7
- flow ==2.0.0.9
- flush-queue ==1.0.0
- fmlist ==0.9.4
- fmt ==0.6.3.0
@@ -896,7 +896,7 @@ default-package-overrides:
- frisby ==0.2.5
- from-sum ==0.2.3.0
- frontmatter ==0.1.0.2
- fsnotify ==0.4.2.0
- fsnotify ==0.4.3.0
- ftp-client ==0.5.1.6
- funcmp ==1.9
- function-builder ==0.3.0.1
@@ -943,7 +943,7 @@ default-package-overrides:
- genvalidity-case-insensitive ==0.0.0.1
- genvalidity-containers ==1.0.0.2
- genvalidity-criterion ==1.1.0.0
- genvalidity-hspec ==1.0.0.3
- genvalidity-hspec ==1.0.0.4
- genvalidity-hspec-aeson ==1.0.0.0
- genvalidity-hspec-binary ==1.0.0.0
- genvalidity-hspec-cereal ==1.0.0.0
@@ -1035,7 +1035,7 @@ default-package-overrides:
- git-mediate ==1.1.0
- githash ==0.1.7.0
- github ==0.29
- github-release ==2.0.0.12
- github-release ==2.0.0.14
- github-rest ==1.2.1
- github-types ==0.2.1
- github-webhooks ==0.17.0
@@ -1045,7 +1045,7 @@ default-package-overrides:
- gitlib-test ==3.1.2
- gitrev ==1.3.1
- gl ==0.9.1
- glabrous ==2.0.6.3
- glabrous ==2.0.6.4
- glasso ==0.1.0
- GLFW-b ==3.3.9.1
- glib ==0.13.12.0
@@ -1088,7 +1088,7 @@ default-package-overrides:
- gtk3 ==0.15.10
- guarded-allocation ==0.0.1
- hackage-cli ==0.1.0.2
- hackage-security ==0.6.2.6
- hackage-security ==0.6.3.0
- hackage-security-HTTP ==0.1.1.2
- haddock-library ==1.11.0
- haha ==0.3.1.1
@@ -1127,7 +1127,7 @@ default-package-overrides:
- haskey-btree ==0.3.0.1
- haskintex ==0.8.0.3
- haskoin-core ==1.1.0
- haskoin-node ==1.1.3
- haskoin-node ==1.1.4
- haskoin-store-data ==1.4.0
- hasktags ==0.73.0
- hasql ==1.8.1.4
@@ -1188,7 +1188,7 @@ default-package-overrides:
- histogram-fill ==0.9.1.0
- hjsmin ==0.2.1
- hkd-default ==1.1.0.0
- hkgr ==0.4.7
- hkgr ==0.4.8
- hledger ==1.40
- hledger-iadd ==1.3.21
- hledger-interest ==1.6.7
@@ -1258,7 +1258,7 @@ default-package-overrides:
- hslua-marshalling ==2.3.1
- hslua-module-doclayout ==1.2.0
- hslua-module-path ==1.1.1
- hslua-module-system ==1.1.2
- hslua-module-system ==1.1.3
- hslua-module-text ==1.1.1
- hslua-module-version ==1.1.1
- hslua-module-zip ==1.1.3
@@ -1381,7 +1381,7 @@ default-package-overrides:
- Imlib ==0.1.2
- immortal ==0.3
- immortal-queue ==0.1.0.1
- imp ==1.0.3.1
- imp ==1.0.3.3
- inbox ==0.2.0
- incipit-base ==0.6.1.1
- incipit-core ==0.6.1.1
@@ -1404,7 +1404,7 @@ default-package-overrides:
- inline-c ==0.9.1.10
- inline-c-cpp ==0.5.0.2
- input-parsers ==0.3.0.2
- insert-ordered-containers ==0.2.6
- insert-ordered-containers ==0.2.7
- inspection-testing ==0.5.0.3
- int-cast ==0.2.0.0
- int-supply ==1.0.0
@@ -1464,8 +1464,8 @@ default-package-overrides:
- jsaddle ==0.9.9.3
- jsaddle-dom ==0.9.9.2
- json ==0.11
- json-feed ==2.0.0.13
- json-rpc ==1.1.1
- json-feed ==2.0.0.15
- json-rpc ==1.1.2
- json-spec ==1.1.1.2
- json-spec-elm ==0.4.0.6
- json-spec-elm-servant ==0.4.3.0
@@ -1473,7 +1473,7 @@ default-package-overrides:
- json-stream ==0.4.6.0
- jsonifier ==0.2.1.3
- jsonpath ==0.3.0.0
- JuicyCairo ==0.1.0.0
- JuicyCairo ==0.1.0.1
- JuicyPixels ==3.3.9
- JuicyPixels-extra ==0.6.0
- JuicyPixels-scale-dct ==0.1.2
@@ -1505,7 +1505,7 @@ default-package-overrides:
- koji-tool ==1.2
- kvitable ==1.1.0.1
- labels ==0.3.3
- lackey ==2.0.0.9
- lackey ==2.0.0.11
- lame ==0.2.2
- language-avro ==0.1.4.0
- language-c ==0.10.0
@@ -1532,14 +1532,14 @@ default-package-overrides:
- latex ==0.1.0.4
- lattices ==2.2.1
- lawful ==0.1.0.0
- lawful-conversions ==0.1.6.1
- lawful-conversions ==0.1.7
- lazy-csv ==0.5.1
- lazyio ==0.1.0.4
- lazyppl ==1.0
- lazysmallcheck ==0.6
- lca ==0.4
- leancheck ==1.0.2
- leancheck-instances ==0.0.5
- leancheck-instances ==0.0.8
- leapseconds-announced ==2017.1.0.1
- learn-physics ==0.6.7
- leb128-cereal ==1.2
@@ -1787,14 +1787,14 @@ default-package-overrides:
- multiset ==0.3.4.3
- multistate ==0.8.0.4
- murmur-hash ==0.1.0.11
- murmur3 ==1.0.5
- murmur3 ==1.0.6
- MusicBrainz ==0.4.1
- mustache ==2.4.2
- mustache ==2.4.3.1
- mutable-containers ==0.3.4.1
- mwc-probability ==2.3.1
- mwc-random ==0.15.2.0
- mx-state-codes ==1.0.0.0
- myers-diff ==0.3.0.0
- myers-diff ==0.3.0.2
- mysql ==0.2.1
- mysql-haskell ==1.1.6
- mysql-haskell-nem ==0.1.0.0
@@ -1831,7 +1831,7 @@ default-package-overrides:
- network-bsd ==2.8.1.0
- network-byte-order ==0.1.7
- network-conduit-tls ==1.4.0.1
- network-control ==0.1.6
- network-control ==0.1.7
- network-info ==0.2.1
- network-ip ==0.3.0.3
- network-messagepack-rpc ==0.1.2.0
@@ -1860,13 +1860,13 @@ default-package-overrides:
- non-negative ==0.1.2
- nonce ==1.0.7
- nondeterminism ==1.5
- nonempty-containers ==0.3.4.5
- nonempty-containers ==0.3.5.0
- nonempty-vector ==0.2.4
- nonempty-zipper ==1.0.1.1
- normaldistribution ==1.1.0.3
- nothunks ==0.3.0.0
- nowdoc ==0.1.1.0
- nqe ==0.6.5
- nqe ==0.6.6
- nsis ==0.3.3
- numbers ==3000.2.0.2
- numeric-extras ==0.1
@@ -1893,7 +1893,7 @@ default-package-overrides:
- old-locale ==1.0.0.7
- old-time ==1.1.0.4
- ollama-haskell ==0.1.3.0
- om-elm ==2.0.0.8
- om-elm ==2.0.1.0
- om-show ==0.1.2.11
- once ==0.4
- one-liner ==2.1
@@ -1950,7 +1950,7 @@ default-package-overrides:
- pandoc-lua-engine ==0.4.1.1
- pandoc-lua-marshal ==0.3.0
- pandoc-plot ==1.9.1
- pandoc-server ==0.1.0.10
- pandoc-server ==0.1.0.11
- pandoc-throw ==0.1.0.0
- pandoc-types ==1.23.1
- pango ==0.13.12.0
@@ -1987,10 +1987,10 @@ default-package-overrides:
- pathtype ==0.8.1.3
- pathwalk ==0.3.1.2
- patience ==0.3
- patrol ==1.0.0.9
- patrol ==1.0.0.11
- pava ==0.1.1.4
- pcg-random ==0.1.4.0
- pcre-heavy ==1.0.0.3
- pcre-heavy ==1.0.0.4
- pcre-light ==0.4.1.3
- pcre-utils ==0.1.9
- pcre2 ==2.2.2
@@ -2019,7 +2019,7 @@ default-package-overrides:
- persistent-redis ==2.13.0.2
- persistent-sqlite ==2.13.3.0
- persistent-template ==2.12.0.0
- persistent-test ==2.13.1.3
- persistent-test ==2.13.1.4
- persistent-typed-db ==0.1.0.7
- pfile ==0.1.0.1
- pg-harness-client ==0.6.0
@@ -2129,7 +2129,7 @@ default-package-overrides:
- prometheus-metrics-ghc ==1.0.1.2
- promises ==0.3
- prospect ==0.1.0.0
- proto-lens ==0.7.1.5
- proto-lens ==0.7.1.6
- proto-lens-arbitrary ==0.1.2.14
- proto-lens-optparse ==0.1.1.13
- proto-lens-protobuf-types ==0.7.2.1
@@ -2140,7 +2140,7 @@ default-package-overrides:
- protobuf-simple ==0.1.1.1
- protocol-radius ==0.0.1.2
- protocol-radius-test ==0.1.0.1
- protolude ==0.3.4
- protolude ==0.3.5
- proxied ==0.3.2
- psql-helpers ==0.1.0.0
- PSQueue ==1.2.1
@@ -2185,7 +2185,7 @@ default-package-overrides:
- rainbow ==0.34.2.2
- rainbox ==0.26.0.0
- ral ==0.2.2
- rampart ==2.0.0.9
- rampart ==2.0.0.11
- ramus ==0.1.2
- rando ==0.0.0.4
- random ==1.2.1.3
@@ -2203,15 +2203,15 @@ default-package-overrides:
- Rasterific ==0.7.5.4
- rasterific-svg ==0.3.3.2
- rate-limit ==1.4.3
- ratel ==2.0.0.13
- ratel-wai ==2.0.0.8
- ratel ==2.0.0.15
- ratel-wai ==2.0.0.10
- ratio-int ==0.1.2
- rattle ==0.2
- rattletrap ==14.1.1
- rattletrap ==14.1.3
- Rattus ==0.5.1.1
- raw-strings-qq ==1.1
- rawfilepath ==1.1.1
- rawstring-qm ==0.2.3.0
- rawstring-qm ==0.2.3.1
- rcu ==0.2.7
- rdf ==0.1.0.8
- rdtsc ==1.3.0.1
@@ -2249,12 +2249,12 @@ default-package-overrides:
- regex-pcre-builtin ==0.95.2.3.8.44
- regex-posix ==0.96.0.2
- regex-posix-clib ==2.7
- regex-tdfa ==1.3.2.3
- regex-tdfa ==1.3.2.4
- regex-with-pcre ==1.1.0.2
- registry ==0.6.3.1
- registry-aeson ==0.3.1.1
- registry-hedgehog ==0.8.2.1
- registry-hedgehog-aeson ==0.3.1.1
- registry ==0.6.3.2
- registry-aeson ==0.3.1.2
- registry-hedgehog ==0.8.2.2
- registry-hedgehog-aeson ==0.3.1.2
- regression-simple ==0.2.1
- reinterpret-cast ==0.1.0
- relapse ==1.0.0.1
@@ -2268,7 +2268,7 @@ default-package-overrides:
- reorder-expression ==0.1.0.2
- replace-attoparsec ==1.5.0.0
- replace-megaparsec ==1.5.0.1
- repline ==0.4.2.0
- repline ==0.4.3.0
- req ==3.13.4
- req-conduit ==1.0.2
- rerebase ==1.21.2
@@ -2278,12 +2278,12 @@ default-package-overrides:
- resolv ==0.2.0.2
- resource-pool ==0.4.0.0
- resourcet ==1.3.0
- rest-rewrite ==0.4.4
- rest-rewrite ==0.4.5
- result ==0.2.6.0
- retry ==0.9.3.1
- rev-state ==0.2.0.1
- rex ==0.6.2
- rfc1751 ==0.1.3
- rfc1751 ==0.1.4
- rfc5051 ==0.2
- rg ==1.4.0.0
- rhine ==1.5
@@ -2298,8 +2298,8 @@ default-package-overrides:
- rng-utils ==0.3.1
- roc-id ==0.2.0.4
- rocksdb-haskell ==1.0.1
- rocksdb-haskell-jprupp ==2.1.6
- rocksdb-query ==0.4.2
- rocksdb-haskell-jprupp ==2.1.7
- rocksdb-query ==0.4.3
- roles ==0.2.1.0
- rollbar ==1.1.3
- rope-utf16-splay ==0.4.0.0
@@ -2336,7 +2336,7 @@ default-package-overrides:
- safecopy ==0.10.4.2
- safeio ==0.0.6.0
- SafeSemaphore ==0.10.1
- salve ==2.0.0.6
- salve ==2.0.0.8
- sample-frame ==0.0.4
- sample-frame-np ==0.0.5
- sampling ==0.3.5
@@ -2348,7 +2348,7 @@ default-package-overrides:
- sandwich-quickcheck ==0.1.0.7
- sandwich-slack ==0.1.2.0
- sandwich-webdriver ==0.3.0.0
- saturn ==1.0.0.6
- saturn ==1.0.0.8
- say ==0.1.0.1
- sayable ==1.2.5.0
- sbp ==6.2.1
@@ -2364,7 +2364,7 @@ default-package-overrides:
- scotty ==0.22
- scrypt ==0.5.0
- search-algorithms ==0.3.3
- secp256k1-haskell ==1.4.2
- secp256k1-haskell ==1.4.6
- securemem ==0.1.10
- select-rpms ==0.2.0
- selections ==0.3.0.0
@@ -2510,6 +2510,7 @@ default-package-overrides:
- sourcemap ==0.1.7
- sox ==0.2.3.2
- soxlib ==0.0.3.2
- special-values ==0.1.0.0
- speculate ==0.4.20
- specup ==0.2.0.5
- speedy-slice ==0.3.2
@@ -2549,7 +2550,7 @@ default-package-overrides:
- stm-chans ==3.0.0.9
- stm-conduit ==4.0.1
- stm-containers ==1.2.1.1
- stm-delay ==0.1.1.1
- stm-delay ==0.1.1.2
- stm-extras ==0.1.0.3
- stm-hamt ==1.2.1.1
- stm-split ==0.0.2.1
@@ -2603,7 +2604,7 @@ default-package-overrides:
- svg-builder ==0.1.1
- svg-tree ==0.6.2.4
- SVGFonts ==1.8.0.1
- swagger2 ==2.8.9
- swagger2 ==2.8.10
- swish ==0.10.10.0
- syb ==0.7.2.4
- sydtest ==0.19.0.0
@@ -2636,7 +2637,7 @@ default-package-overrides:
- synthesizer-midi ==0.6.1.2
- sysinfo ==0.1.1
- system-argv0 ==0.1.1
- system-fileio ==0.3.16.6
- system-fileio ==0.3.16.7
- system-filepath ==0.4.14.1
- system-info ==0.5.2
- system-linux-proc ==0.1.1.1
@@ -2689,7 +2690,7 @@ default-package-overrides:
- tce-conf ==1.3
- tdigest ==0.3.1
- teardown ==0.5.0.1
- telegram-bot-api ==7.4.4
- telegram-bot-api ==7.4.5
- telegram-bot-simple ==0.14.4
- tempgres-client ==1.0.0
- template ==0.2.0.10
@@ -2717,7 +2718,7 @@ default-package-overrides:
- test-fun ==0.1.0.0
- testing-feat ==1.1.1.1
- testing-type-modifiers ==0.1.0.1
- texmath ==0.12.10
- texmath ==0.12.10.1
- text-ansi ==0.3.0.1
- text-binary ==0.2.1.1
- text-builder ==0.6.10
@@ -2781,7 +2782,7 @@ default-package-overrides:
- time-lens ==0.4.0.2
- time-locale-compat ==0.1.1.5
- time-locale-vietnamese ==1.0.0.0
- time-manager ==0.2.2
- time-manager ==0.2.3
- time-units ==1.0.0
- time-units-types ==0.2.0.1
- timeit ==2.0
@@ -2809,7 +2810,7 @@ default-package-overrides:
- toml-reader ==0.2.2.0
- toml-reader-parse ==0.1.1.1
- tomland ==1.3.3.3
- tools-yj ==0.1.0.23
- tools-yj ==0.1.0.27
- tophat ==1.0.8.0
- topograph ==1.0.1
- torrent ==10000.1.3
@@ -2860,7 +2861,7 @@ default-package-overrides:
- typecheck-plugin-nat-simple ==0.1.0.9
- typed-process ==0.2.13.0
- typed-uuid ==0.2.0.0
- typelevel-tools-yj ==0.1.0.8
- typelevel-tools-yj ==0.1.0.9
- typelits-witnesses ==0.4.1.0
- typenums ==0.1.4
- typography-geometry ==1.0.1.0
@@ -2977,7 +2978,7 @@ default-package-overrides:
- vector-split ==1.0.0.3
- vector-stream ==0.1.0.1
- vector-th-unbox ==0.2.2
- verset ==0.0.1.9
- verset ==0.0.1.11
- versions ==6.0.8
- vformat ==0.14.1.0
- vformat-time ==0.1.0.0
@@ -136,11 +136,13 @@ dont-distribute-packages:
- atlassian-connect-core
- atmos-dimensional-tf
- atom-msp430
- atomic-css
- atomic-primops-foreign
- atp
- attenuation-profunctors
- AttoJson
- attoparsec-enumerator
- attoparsec-isotropic
- attoparsec-iteratee
- attoparsec-text-enumerator
- atuin
@@ -267,7 +269,6 @@ dont-distribute-packages:
- birch-beer
- bird
- BirdPP
- bisc
- biscuit-servant
- bishbosh
- bit-array
@@ -276,7 +277,6 @@ dont-distribute-packages:
- bitcoin-api-extra
- bitcoin-block
- bitcoin-tx
- bitcoin-types
- bitcoind-regtest
- Bitly
- bitly-cli
@@ -339,9 +339,7 @@ dont-distribute-packages:
- bytestring-read
- bytetrie
- ca
- cabal-bounds
- cabal-cache
- cabal-cargs
- cabal-query
- cabal-test
- cabal2arch
@@ -470,6 +468,7 @@ dont-distribute-packages:
- clod
- cloud-haskell
- cloud-seeder
- cloudevents-haskell
- cloudyfs
- clr-bindings
- clr-inline
@@ -682,6 +681,7 @@ dont-distribute-packages:
- ddc-tools
- ddc-war
- ddci-core
- dde
- debug
- decimal-arithmetic
- dedukti
@@ -700,7 +700,6 @@ dont-distribute-packages:
- delimiter-separated
- delta
- delta-h
- delta-store
- dep-t-advice
- dep-t-dynamic
- dep-t-value
@@ -1027,6 +1026,7 @@ dont-distribute-packages:
- frpnow-gtk
- frpnow-gtk3
- frpnow-vty
- fs-sim
- ftdi
- ftp-client-conduit
- FTPLine
@@ -1065,8 +1065,6 @@ dont-distribute-packages:
- gelatin-gl
- gelatin-sdl2
- gelatin-shaders
- gemini-router
- gemini-textboard
- Genbank
- gencheck
- Gene-CluEDO
@@ -1085,6 +1083,7 @@ dont-distribute-packages:
- geodetic
- geolite-csv
- getemx
- ghc-debugger
- ghc-dump-util
- ghc-experimental
- ghc-imported-from
@@ -1377,7 +1376,6 @@ dont-distribute-packages:
- haskoon
- haskoon-httpspec
- haskoon-salvia
- haskore-realtime
- haskore-supercollider
- haskore-synthesizer
- hasktorch-ffi-thc
@@ -1612,7 +1610,6 @@ dont-distribute-packages:
- hs-functors
- hs-gen-iface
- hs-ix
- hs-pkpass
- hs-profunctors
- hs-sdl-term-emulator
- hs2ats
@@ -1636,6 +1633,7 @@ dont-distribute-packages:
- hsdev
- hsec-core
- Hsed
- hsendxmpp
- hsfacter
- HSGEP
- HSHHelpers
@@ -1752,7 +1750,6 @@ dont-distribute-packages:
- igrf
- ihaskell-inline-r
- ihaskell-rlangqq
- ihaskell-symtegration
- ihttp
- imap
- imbib
@@ -2211,12 +2208,11 @@ dont-distribute-packages:
- Michelangelo
- micro-gateway
- microformats2-types
- MicroHs
- MicrosoftTranslator
- midimory
- mig-server
- mighttpd
- migrant-hdbc
- migrant-sqlite-simple
- minecraft-data
- minesweeper
- minilight
@@ -2471,7 +2467,6 @@ dont-distribute-packages:
- ollama-holes-plugin
- olwrapper
- om-kubernetes
- one-time-password
- online-csv
- OnRmt
- oops-examples
@@ -2761,6 +2756,7 @@ dont-distribute-packages:
- queryparser-presto
- queryparser-vertica
- queuelike
- quick-process
- quickcheck-poly
- quickcheck-regex
- quickcheck-relaxng
@@ -2815,12 +2811,10 @@ dont-distribute-packages:
- rasa-ext-vim
- rascal
- raw-feldspar
- rawlock
- razom-text-util
- rbr
- rc
- rdioh
- rds-data
- react-flux-servant
- reactive
- reactive-banana-sdl
@@ -2890,7 +2884,6 @@ dont-distribute-packages:
- reserve
- resin
- resource-pool-catchio
- resource-registry
- resource-simple
- rest-client
- rest-core
@@ -3156,7 +3149,6 @@ dont-distribute-packages:
- sibe
- sigma-ij
- signals
- signature
- signify-hs
- silvi
- simgi
@@ -3550,6 +3542,7 @@ dont-distribute-packages:
- TypeClass
- typed-encoding-encoding
- typed-gui
- typed-protocols-doc
- typed-streams
- typedflow
- TypeIlluminator
@@ -3647,7 +3640,6 @@ dont-distribute-packages:
- venzone
- verdict-json
- verifiable-expressions
- verismith
- versioning-servant
- vertexenum
- vflow-types
@@ -3732,7 +3724,6 @@ dont-distribute-packages:
- windowslive
- winery
- winio
- wire-streams
- Wired
- wl-pprint-ansiterm
- wl-pprint-terminfo
@@ -3751,7 +3742,6 @@ dont-distribute-packages:
- WringTwistree
- write-buffer-stm
- writer-cps-full
- wsjtx-udp
- wstunnel
- wtk-gtk
- wu-wei
@@ -3829,7 +3819,6 @@ dont-distribute-packages:
- yesod-continuations
- yesod-examples
- yesod-fay
- yesod-fb
- yesod-mangopay
- yesod-paypal-rest
- yesod-platform
@@ -158,6 +158,9 @@ builtins.intersectAttrs super {
threadscope = enableSeparateBinOutput super.threadscope;
# Binary may be used separately for e.g. editor integrations
cabal-cargs = enableSeparateBinOutput super.cabal-cargs;
# Use the default version of mysql to build this package (which is actually mariadb).
# test phase requires networking
mysql = dontCheck super.mysql;
@@ -599,6 +602,11 @@ builtins.intersectAttrs super {
];
}) super.fltkhs;
# Select dependency discovery method and provide said dependency
jpeg-turbo = enableCabalFlag "pkgconfig" (
addPkgconfigDepends [ pkgs.libjpeg_turbo ] super.jpeg-turbo
);
# https://github.com/skogsbaer/hscurses/pull/26
hscurses = addExtraLibrary pkgs.ncurses super.hscurses;
@@ -1435,6 +1443,7 @@ builtins.intersectAttrs super {
fourmolu
fourmolu_0_14_0_0
fourmolu_0_16_0_0
fourmolu_0_18_0_0
;
# Test suite needs to execute 'disco' binary
@@ -1668,6 +1677,8 @@ builtins.intersectAttrs super {
(overrideCabal { __onlyPropagateKnownPkgConfigModules = true; })
];
jsaddle-warp = addTestToolDepends [ pkgs.nodejs ] super.jsaddle-warp;
# Makes the mpi-hs package respect the choice of mpi implementation in Nixpkgs.
# Also adds required test dependencies for checks to pass
mpi-hs =
@@ -82,7 +82,10 @@ in
profilingDetail ? "exported-functions",
# TODO enable shared libs for cross-compiling
enableSharedExecutables ? false,
enableSharedLibraries ? !stdenv.hostPlatform.isStatic && (ghc.enableShared or false),
enableSharedLibraries ?
!stdenv.hostPlatform.isStatic
&& (ghc.enableShared or false)
&& !stdenv.hostPlatform.useAndroidPrebuilt,
enableDeadCodeElimination ? (!stdenv.hostPlatform.isDarwin), # TODO: use -dead_strip for darwin
# Disabling this for ghcjs prevents this crash: https://gitlab.haskell.org/ghc/ghc/-/issues/23235
enableStaticLibraries ?
File diff suppressed because it is too large Load Diff
+24 -19
View File
@@ -23,6 +23,7 @@ let
# Binary GHCs
"ghc865Binary"
"ghc8107Binary"
"ghc902Binary"
"ghc924Binary"
"ghc963Binary"
"ghc984Binary"
@@ -91,6 +92,10 @@ in
llvmPackages = pkgs.llvmPackages_12;
};
ghc902Binary = callPackage ../development/compilers/ghc/9.0.2-binary.nix {
llvmPackages = pkgs.llvmPackages_12;
};
ghc924Binary = callPackage ../development/compilers/ghc/9.2.4-binary.nix {
llvmPackages = pkgs.llvmPackages_12;
};
@@ -137,10 +142,14 @@ in
ghc90 = compiler.ghc902;
ghc928 = callPackage ../development/compilers/ghc/9.2.8.nix {
bootPkgs =
if stdenv.buildPlatform.isPower64 && stdenv.buildPlatform.isLittleEndian then
bb.packages.ghc810
# GHC >= 9.0 removed the armv7l bindist
if stdenv.buildPlatform.isAarch32 then
bb.packages.ghc8107Binary
# No suitable bindists for powerpc64le
else if stdenv.buildPlatform.isPower64 && stdenv.buildPlatform.isLittleEndian then
bb.packages.ghc902
else
bb.packages.ghc8107Binary;
bb.packages.ghc902Binary;
inherit (buildPackages.python311Packages) sphinx; # a distutils issue with 3.12
python3 = buildPackages.python311; # so that we don't have two of them
# Need to use apple's patched xattr until
@@ -155,17 +164,12 @@ in
bootPkgs =
# Building with 9.2 is broken due to
# https://gitlab.haskell.org/ghc/ghc/-/issues/21914
# Use 8.10 as a workaround where possible to keep bootstrap path short.
# On ARM text won't build with GHC 8.10.*
if stdenv.buildPlatform.isAarch then
# TODO(@sternenseemann): package bindist
bb.packages.ghc902
# No suitable bindists for powerpc64le
else if stdenv.buildPlatform.isPower64 && stdenv.buildPlatform.isLittleEndian then
if stdenv.buildPlatform.isPower64 && stdenv.buildPlatform.isLittleEndian then
bb.packages.ghc902
else
bb.packages.ghc8107Binary;
bb.packages.ghc902Binary;
inherit (buildPackages.python3Packages) sphinx;
# Need to use apple's patched xattr until
# https://github.com/xattr/xattr/issues/44 and
@@ -179,17 +183,12 @@ in
bootPkgs =
# Building with 9.2 is broken due to
# https://gitlab.haskell.org/ghc/ghc/-/issues/21914
# Use 8.10 as a workaround where possible to keep bootstrap path short.
# On ARM text won't build with GHC 8.10.*
if stdenv.buildPlatform.isAarch then
# TODO(@sternenseemann): package bindist
bb.packages.ghc902
# No suitable bindists for powerpc64le
else if stdenv.buildPlatform.isPower64 && stdenv.buildPlatform.isLittleEndian then
if stdenv.buildPlatform.isPower64 && stdenv.buildPlatform.isLittleEndian then
bb.packages.ghc902
else
bb.packages.ghc8107Binary;
bb.packages.ghc902Binary;
inherit (buildPackages.python3Packages) sphinx;
# Need to use apple's patched xattr until
# https://github.com/xattr/xattr/issues/44 and
@@ -416,7 +415,7 @@ in
buildTargetLlvmPackages = pkgsBuildTarget.llvmPackages_15;
llvmPackages = pkgs.llvmPackages_15;
};
ghc910 = compiler.ghc9101;
ghc910 = compiler.ghc9102;
ghc9121 = callPackage ../development/compilers/ghc/9.12.1.nix {
bootPkgs =
# No suitable bindist packaged yet
@@ -521,6 +520,12 @@ in
compilerConfig = callPackage ../development/haskell-modules/configuration-ghc-8.10.x.nix { };
packageSetConfig = bootstrapPackageSet;
};
ghc902Binary = callPackage ../development/haskell-modules {
buildHaskellPackages = bh.packages.ghc902Binary;
ghc = bh.compiler.ghc902Binary;
compilerConfig = callPackage ../development/haskell-modules/configuration-ghc-9.0.x.nix { };
packageSetConfig = bootstrapPackageSet;
};
ghc924Binary = callPackage ../development/haskell-modules {
buildHaskellPackages = bh.packages.ghc924Binary;
ghc = bh.compiler.ghc924Binary;
@@ -625,7 +630,7 @@ in
ghc = bh.compiler.ghc9102;
compilerConfig = callPackage ../development/haskell-modules/configuration-ghc-9.10.x.nix { };
};
ghc910 = packages.ghc9101;
ghc910 = packages.ghc9102;
ghc9121 = callPackage ../development/haskell-modules {
buildHaskellPackages = bh.packages.ghc9121;
ghc = bh.compiler.ghc9121;
+13 -3
View File
@@ -345,7 +345,6 @@ let
nix-output-monitor
nix-script
nix-tree
nixfmt
nixfmt-classic
nixfmt-rfc-style
nota
@@ -393,8 +392,6 @@ let
inherit (pkgsPlatforms.elmPackages)
elm
elm-format
elm-instrument
elmi-to-json
;
};
@@ -515,6 +512,14 @@ let
;
};
haskell.packages.ghc910 = {
inherit (packagePlatforms pkgs.pkgsCross.aarch64-android-prebuilt.haskell.packages.ghc910)
ghc
hello
microlens
;
};
haskell.packages.ghcHEAD = {
inherit (packagePlatforms pkgs.pkgsCross.ghcjs.haskell.packages.ghcHEAD)
ghc
@@ -579,6 +584,11 @@ let
cabal2nix = released;
cabal2nix-unstable = released;
funcmp = released;
git-annex = [
# for 9.10, test that using filepath (instead of filepath-bytestring) works.
compilerNames.ghc9101
compilerNames.ghc9102
];
haskell-language-server = lib.subtractLists [
# Support ceased as of 2.3.0.0
compilerNames.ghc8107