Merge haskell-updates PR #371032 into staging

This commit is contained in:
sternenseemann 2025-04-22 12:02:16 +02:00
commit b35c701857
79 changed files with 19704 additions and 27192 deletions

View file

@ -58,7 +58,7 @@ Each of those compiler versions has a corresponding attribute set `packages` bui
it. However, the non-standard package sets are not tested regularly and, as a
result, contain fewer working packages. The corresponding package set for GHC
9.4.8 is `haskell.packages.ghc948`. In fact `haskellPackages` (at the time of writing) is just an alias
for `haskell.packages.ghc966`:
for `haskell.packages.ghc984`:
Every package set also re-exposes the GHC used to build its packages as `haskell.packages.*.ghc`.
@ -297,8 +297,8 @@ Defaults to `false`.
: Whether to build (HTML) documentation using [haddock][haddock].
Defaults to `true` if supported.
`testTarget`
: Name of the test suite to build and run. If unset, all test suites will be executed.
`testTargets`
: Names of the test suites to build and run. If unset, all test suites will be executed.
`preCompileBuildDriver`
: Shell code to run before compiling `Setup.hs`.
@ -621,6 +621,12 @@ environment. This means you can reuse Nix expressions of packages included in
nixpkgs, but also use local Nix expressions like this: `hpkgs: [
(hpkgs.callPackage ./my-project.nix { }) ]`.
`extraDependencies`
: Extra dependencies, in the form of cabal2nix build attributes. An example use
case is when you have Haskell scripts that use libraries that don't occur in
your packages' dependencies. Example: `hpkgs: {libraryHaskellDepends =
[ hpkgs.releaser ]}`. Defaults to `hpkgs: { }`.
`nativeBuildInputs`
: Expects a list of derivations to add as build tools to the build environment.
This is the place to add packages like `cabal-install`, `doctest` or `hlint`.
@ -773,7 +779,7 @@ that depend on that library, you may want to use:
```nix
haskellPackages.haskell-ci.overrideScope (self: super: {
Cabal = self.Cabal_3_14_1_0;
Cabal = self.Cabal_3_14_1_1;
})
```

View file

@ -15,6 +15,9 @@
- GCC has been updated from GCC 13 to GCC 14.
This introduces some backwardsincompatible changes; see the [upstream porting guide](https://gcc.gnu.org/gcc-14/porting_to.html) for details.
- The default GHC version has been updated from 9.6 to 9.8.
`haskellPackages` also uses Stackage LTS 23 (instead of LTS 22) as a baseline.
- LLVM has been updated from LLVM 16 (on Darwin) and LLVM 18 (on other platforms) to LLVM 19.
This introduces some backwardsincompatible changes; see the [upstream release notes](https://releases.llvm.org/) for details.
@ -405,6 +408,10 @@
- `lib.types.coercedTo`
- `lib.types.either`
- The `testTarget` argument of `haskellPackages.mkDerivation` has been deprecated in favour of `testTargets`.
`testTarget` took a space separated string of targets, whereas the new `testTargets` argument takes a list of targets.
For instance, `testTarget = "foo bar baz"` should become `testTargets = [ "foo" "bar" "baz" ]`.
- Plasma 5 and Qt 5 based versions of associated software are deprecated in NixOS 25.05, and will be removed in NixOS 25.11. Users are encouraged to upgrade to Plasma 6.
- `rustPlatform.buildRustPackage` stops handling the deprecated argument `cargoSha256`. Out-of-tree packages that haven't migrated from `cargoSha256` to `cargoHash` now receive errors.

View file

@ -1,8 +1,8 @@
#! /usr/bin/env nix-shell
#! nix-shell -i bash -p git gh -I nixpkgs=.
#
# Script to merge the currently open haskell-updates PR into master, bump the
# Stackage version and Hackage versions, and open the next haskell-updates PR.
# Script to merge the currently open haskell-updates PR , bump the Stackage
# version and Hackage versions, and open the next haskell-updates PR.
set -eu -o pipefail
@ -79,10 +79,6 @@ fi
echo "Merging https://github.com/NixOS/nixpkgs/pull/${curr_haskell_updates_pr_num}..."
gh pr merge --repo NixOS/nixpkgs --merge "$curr_haskell_updates_pr_num"
# Update the list of Haskell package versions in NixOS on Hackage.
echo "Updating list of Haskell package versions in NixOS on Hackage..."
./maintainers/scripts/haskell/upload-nixos-package-list-to-hackage.sh
# Update stackage, Hackage hashes, and regenerate Haskell package set
echo "Updating Stackage..."
./maintainers/scripts/haskell/update-stackage.sh --do-commit
@ -100,7 +96,7 @@ git push "$push_remote" haskell-updates
new_pr_body=$(cat <<EOF
### This Merge
This PR is the regular merge of the \`haskell-updates\` branch into \`master\`.
This PR is the regular merge of the \`haskell-updates\` branch into \`staging\`.
This branch is being continually built and tested by hydra at https://hydra.nixos.org/jobset/nixpkgs/haskell-updates. You may be able to find an up-to-date Hydra build report at [cdepillabout/nix-haskell-updates-status](https://github.com/cdepillabout/nix-haskell-updates-status).
@ -113,7 +109,7 @@ Our workflow is currently described in [\`pkgs/development/haskell-modules/HACKI
The short version is this:
* We regularly update the Stackage and Hackage pins on \`haskell-updates\` (normally at the beginning of a merge window).
* The community fixes builds of Haskell packages on that branch.
* We aim at at least one merge of \`haskell-updates\` into \`master\` every two weeks.
* We aim at at least one merge of \`haskell-updates\` into \`staging\` every two weeks.
* We only do the merge if the [\`mergeable\`](https://hydra.nixos.org/job/nixpkgs/haskell-updates/mergeable) job is succeeding on hydra.
* If a [\`maintained\`](https://hydra.nixos.org/job/nixpkgs/haskell-updates/maintained) package is still broken at the time of merge, we will only merge if the maintainer has been pinged 7 days in advance. (If you care about a Haskell package, become a maintainer!)
@ -126,4 +122,4 @@ EOF
)
echo "Opening a PR for the next haskell-updates merge cycle..."
gh pr create --repo NixOS/nixpkgs --base master --head haskell-updates --title "haskellPackages: update stackage and hackage" --body "$new_pr_body"
gh pr create --repo NixOS/nixpkgs --base staging --head haskell-updates --title "haskellPackages: update stackage and hackage" --body "$new_pr_body"

View file

@ -1,5 +1,5 @@
#! /usr/bin/env nix-shell
#! nix-shell -i bash -p coreutils haskellPackages.cabal2nix-unstable git nix -I nixpkgs=.
#! nix-shell -i bash -p coreutils haskellPackages.cabal2nix-unstable git nix nixfmt-rfc-style -I nixpkgs=.
set -euo pipefail
@ -102,6 +102,7 @@ run_hackage2nix
fi
nixfmt pkgs/development/haskell-modules/hackage-packages.nix
if [[ "$DO_COMMIT" -eq 1 ]]; then
git add pkgs/development/haskell-modules/configuration-hackage2nix/transitive-broken.yaml

View file

@ -0,0 +1,31 @@
#! /usr/bin/env nix-shell
#! nix-shell -i nu -p nushell flock gnused -I nixpkgs=.
# This script tests to build all packages listed in broken.yaml, expecting a build failure.
# It will remove all packages that build fine from the list.
# Attention: For unknown reasons, the script can't be easily cancelled and needs to be killed manually if it shouldn't run to completion.
use std log
let broken_config = "pkgs/development/haskell-modules/configuration-hackage2nix/broken.yaml"
def is-broken [package : string]: nothing -> bool {
let res = with-env { NIXPKGS_ALLOW_BROKEN: "1" } {
# rather high timeout of half an hour, just to prevent never-ending builds
^nix-build --no-out-link -j 1 --cores 1 --timeout 1800 -A $"haskellPackages.($package)" | complete
}
if $res.exit_code == 0 {
log warning $"($package) is not broken anymore!"
return false
} else {
log info $"($package) is still broken."
log debug $"($package) build log:\n($res.stderr)"
return true
}
}
def main [] {
$broken_config | open | get broken-packages
| par-each {|package| if not (is-broken $package) { ^flock -x $broken_config -c $"sed -i -e '/^ - ($package) /d' ($broken_config)" }}
}

View file

@ -8,7 +8,7 @@ set -eu -o pipefail
# (should be capitalized like the display name)
SOLVER=LTS
# Stackage solver verson, if any. Use latest if empty
VERSION=22
VERSION=
TMP_TEMPLATE=update-stackage.XXXXXXX
readonly SOLVER
readonly VERSION

View file

@ -1,6 +1,5 @@
{
haskellPackages,
mkDerivation,
fetchFromGitHub,
lib,
stdenv,
@ -13,6 +12,8 @@
}:
let
inherit (haskellPackages) mkDerivation;
version = "1.10.0";
src = fetchFromGitHub {
owner = "tamarin-prover";

View file

@ -0,0 +1,120 @@
{
lib,
stdenv,
makeWrapper,
haskellPackages,
fetchFromGitHub,
# dependencies
slither-analyzer,
}:
haskellPackages.mkDerivation rec {
pname = "echidna";
version = "2.2.6";
src = fetchFromGitHub {
owner = "crytic";
repo = "echidna";
tag = "v${version}";
sha256 = "sha256-5nzis7MXOqs0bhx2jrEexjZYZI2qY6D0D7AWO+SPs+A=";
};
isExecutable = true;
buildTools = with haskellPackages; [
hpack
];
executableHaskellDepends = with haskellPackages; [
# base dependencies
aeson
base
containers
directory
hevm
MonadRandom
mtl
text
# library dependencies
ansi-terminal
async
base16-bytestring
binary
brick
bytestring
data-bword
data-dword
deepseq
exceptions
extra
filepath
hashable
html-conduit
html-entities
http-conduit
ListLike
optics
optics-core
process
random
rosezipper
semver
signal
split
strip-ansi-escape
time
unliftio
utf8-string
vector
vty
vty-crossplatform
wai-extra
warp
word-wrap
xml-conduit
yaml
# executable dependencies
code-page
filepath
hashable
optparse-applicative
time
with-utf8
];
executableToolDepends = [
makeWrapper
];
preConfigure = ''
hpack
'';
postInstall =
with haskellPackages;
# https://github.com/NixOS/nixpkgs/pull/304352
lib.optionalString (stdenv.hostPlatform.isDarwin && stdenv.hostPlatform.isAarch64) ''
remove-references-to -t ${warp.out} "$out/bin/echidna"
remove-references-to -t ${wreq.out} "$out/bin/echidna"
''
# make slither-analyzer a runtime dependency
+ ''
wrapProgram $out/bin/echidna \
--prefix PATH : ${lib.makeBinPath [ slither-analyzer ]}
'';
doHaddock = false;
# tests depend on a specific version of solc
doCheck = false;
homepage = "https://github.com/crytic/echidna";
description = "Ethereum smart contract fuzzer";
license = lib.licenses.agpl3Plus;
maintainers = with lib.maintainers; [
arturcygan
hellwolf
];
platforms = lib.platforms.unix;
mainProgram = "echidna";
}

View file

@ -12,7 +12,7 @@ let
# nom has unit-tests and golden-tests
# golden-tests call nix and thus cant be run in a nix build.
testTarget = "unit-tests";
testTargets = [ "unit-tests" ];
buildTools = [ installShellFiles ];
postInstall = ''

View file

@ -41,9 +41,6 @@ in
remove-references-to \
-t ${pandoc-cli.scope.pandoc} \
$out/bin/pandoc
''
# https://github.com/jgm/typst-hs/commit/9707b74ce60d71c2ba0f35249ffbd01dea197a6e
+ lib.optionalString (lib.versionAtLeast pandoc-cli.scope.typst.version "0.6.1") ''
remove-references-to \
-t ${pandoc-cli.scope.typst} \
$out/bin/pandoc

View file

@ -1,6 +1,6 @@
{
"commit": "c9ce1cc4a029220ec3582fbcf69e082d245d78b6",
"url": "https://github.com/commercialhaskell/all-cabal-hashes/archive/c9ce1cc4a029220ec3582fbcf69e082d245d78b6.tar.gz",
"sha256": "02x3z4rg4dwarzb6p88z7sff40bkbq41gxnczvzph8s3s8jq9iw1",
"msg": "Update from Hackage at 2024-12-23T18:27:47Z"
"commit": "6fc5e0d20fed4a6e8ec26f6956786d0077f028b4",
"url": "https://github.com/commercialhaskell/all-cabal-hashes/archive/6fc5e0d20fed4a6e8ec26f6956786d0077f028b4.tar.gz",
"sha256": "08vkrfn4s1jb680rq1flxas8hv04f5l715z0kh8sv909k3psbfak",
"msg": "Update from Hackage at 2025-03-30T11:13:14Z"
}

View file

@ -22,8 +22,8 @@ let
# Haskell packages that require ghc 8.10
hs810Pkgs = import ./packages/ghc8_10 { inherit pkgs lib; };
# Haskell packages that require ghc 9.2
hs92Pkgs = import ./packages/ghc9_2 { 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 {
@ -38,7 +38,7 @@ let
assembleScope =
self: basics:
(hs96Pkgs self).elmPkgs
// (hs92Pkgs self).elmPkgs
// (hs94Pkgs self).elmPkgs
// (hs810Pkgs self).elmPkgs
// (patchedNodePkgs self)
// basics;

View file

@ -1,7 +1,7 @@
{ pkgs, lib }:
self:
pkgs.haskell.packages.ghc92.override {
pkgs.haskell.packages.ghc94.override {
overrides =
self: super:
let
@ -49,12 +49,5 @@ pkgs.haskell.packages.ghc92.override {
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 { });
# elm-format requires text >= 2.0
text = self.text_2_0_2;
# unordered-container's tests indirectly depend on text < 2.0
unordered-containers = overrideCabal (drv: { doCheck = false; }) super.unordered-containers;
# relude-1.1.0.0's tests depend on hedgehog < 1.2, which indirectly depends on text < 2.0
relude = overrideCabal (drv: { doCheck = false; }) super.relude;
};
}

View file

@ -299,6 +299,20 @@ stdenv.mkDerivation (
sha256 = "0kmhfamr16w8gch0lgln2912r8aryjky1hfcda3jkcwa5cdzgjdv";
})
# Determine size of time related types using hsc2hs instead of assuming CLong.
# Prevents failures when e.g. stat(2)ing on 32bit systems with 64bit time_t etc.
# https://github.com/haskell/ghcup-hs/issues/1107
# https://gitlab.haskell.org/ghc/ghc/-/issues/25095
# Note that in normal situations this shouldn't be the case since nixpkgs
# doesn't set -D_FILE_OFFSET_BITS=64 and friends (yet).
(fetchpatch {
name = "unix-fix-ctimeval-size-32-bit.patch";
url = "https://github.com/haskell/unix/commit/8183e05b97ce870dd6582a3677cc82459ae566ec.patch";
sha256 = "17q5yyigqr5kxlwwzb95sx567ysfxlw6bp3j4ji20lz0947aw6gv";
stripLen = 1;
extraPrefix = "libraries/unix/";
})
# See upstream patch at
# https://gitlab.haskell.org/ghc/ghc/-/merge_requests/4885. Since we build
# from source distributions, the auto-generated configure script needs to be

View file

@ -0,0 +1,4 @@
import ./common-hadrian.nix rec {
version = "9.12.2";
sha256 = "0e49cd5dde43f348c5716e5de9a5d7a0f8d68d945dc41cf75dfdefe65084f933";
}

View file

@ -1,4 +0,0 @@
import ./common-make-native-bignum.nix {
version = "9.2.5";
sha256 = "0606797d1b38e2d88ee2243f38ec6b9a1aa93e9b578e95f0de9a9c0a4144021c";
}

View file

@ -1,4 +0,0 @@
import ./common-make-native-bignum.nix {
version = "9.2.6";
sha256 = "7a54cf0398ad488b4ed219e15d1d1e64c0b6876c43a0564550dd11f0540d7305";
}

View file

@ -1,4 +0,0 @@
import ./common-make-native-bignum.nix {
version = "9.2.7";
sha256 = "a253567a17b734a4c0dd0ffa296d33c2a5b5a54a77df988806a2a1e1ca7e88b8";
}

View file

@ -0,0 +1,4 @@
import ./common-hadrian.nix {
version = "9.6.7";
sha256 = "sha256-0FO/bOHViKdc/oyTFiaUhunY+4nc32/ZKDb6Lj32EwU=";
}

View file

@ -181,9 +181,42 @@
in
# Fix docs build with Sphinx >= 7 https://gitlab.haskell.org/ghc/ghc/-/issues/24129
lib.optionals (lib.versionOlder version "9.8") [
lib.optionals (lib.versionOlder version "9.6.7") [
./docs-sphinx-7.patch
]
++ lib.optionals (lib.versionAtLeast version "9.6" && lib.versionOlder version "9.6.5") [
# Fix aarch64-linux builds of 9.6.0 - 9.6.4.
# Fixes a pointer type mismatch in the RTS.
# https://gitlab.haskell.org/ghc/ghc/-/issues/24348
(fetchpatch {
name = "fix-incompatible-pointer-types.patch";
url = "https://gitlab.haskell.org/ghc/ghc/-/commit/1e48c43483693398001bfb0ae644a3558bf6a9f3.diff";
hash = "sha256-zUlzpX7J1n+MCEv9AWpj69FTy2uzJH8wrQDkTexGbgM=";
})
]
++
lib.optionals
(
# 2025-01-16: unix >= 2.8.6.0 is unaffected which is shipped by GHC 9.12.1 and 9.8.4
lib.versionOlder version "9.11"
&& !(lib.versionAtLeast version "9.6.7" && lib.versionOlder version "9.8")
&& !(lib.versionAtLeast version "9.8.4" && lib.versionOlder version "9.9")
)
[
# Determine size of time related types using hsc2hs instead of assuming CLong.
# Prevents failures when e.g. stat(2)ing on 32bit systems with 64bit time_t etc.
# https://github.com/haskell/ghcup-hs/issues/1107
# https://gitlab.haskell.org/ghc/ghc/-/issues/25095
# Note that in normal situations this shouldn't be the case since nixpkgs
# doesn't set -D_FILE_OFFSET_BITS=64 and friends (yet).
(fetchpatch {
name = "unix-fix-ctimeval-size-32-bit.patch";
url = "https://github.com/haskell/unix/commit/8183e05b97ce870dd6582a3677cc82459ae566ec.patch";
sha256 = "17q5yyigqr5kxlwwzb95sx567ysfxlw6bp3j4ji20lz0947aw6gv";
stripLen = 1;
extraPrefix = "libraries/unix/";
})
]
++ lib.optionals (lib.versionAtLeast version "9.6" && lib.versionOlder version "9.6.6") [
(fetchpatch {
name = "fix-fully_static.patch";

View file

@ -283,7 +283,22 @@ stdenv.mkDerivation (
];
patches =
lib.optionals (lib.versionOlder version "9.4") [
[
# Determine size of time related types using hsc2hs instead of assuming CLong.
# Prevents failures when e.g. stat(2)ing on 32bit systems with 64bit time_t etc.
# https://github.com/haskell/ghcup-hs/issues/1107
# https://gitlab.haskell.org/ghc/ghc/-/issues/25095
# Note that in normal situations this shouldn't be the case since nixpkgs
# doesn't set -D_FILE_OFFSET_BITS=64 and friends (yet).
(fetchpatch {
name = "unix-fix-ctimeval-size-32-bit.patch";
url = "https://github.com/haskell/unix/commit/8183e05b97ce870dd6582a3677cc82459ae566ec.patch";
sha256 = "17q5yyigqr5kxlwwzb95sx567ysfxlw6bp3j4ji20lz0947aw6gv";
stripLen = 1;
extraPrefix = "libraries/unix/";
})
]
++ lib.optionals (lib.versionOlder version "9.4") [
# fix hyperlinked haddock sources: https://github.com/haskell/haddock/pull/1482
(fetchpatch {
url = "https://patch-diff.githubusercontent.com/raw/haskell/haddock/pull/1482.patch";

View file

@ -1,5 +1,5 @@
import ./common-hadrian.nix {
version = "9.13.20241031";
rev = "0b11cdc022ce33d089db95b2b2e7c1f4bb326d37";
sha256 = "0kqnpcgv49ricbr950lffs8gx7jrcg6anzc0qvwy5pb518w0d37i";
version = "9.13.20250205";
rev = "5622a14a7a036ab36e28963a4fba826a5ac798a7";
sha256 = "1djhs67gz136xvky7wsv44ic60j7xk4fzabr5why2jh312r4vlr4";
}

View file

@ -34,6 +34,8 @@ self: super: {
# Allow transformers-compat >= 0.7
optparse-applicative = doJailbreak self.optparse-applicative_0_15_1_0;
ansi-wl-pprint = self.ansi-wl-pprint_0_6_9;
ansi-terminal = self.ansi-terminal_1_0_2;
ansi-terminal-types = self.ansi-terminal-types_0_11_5;
}
)
);

View file

@ -7,28 +7,30 @@ there are no Haskell-related evaluation errors or build errors that get into
the Nixpkgs `master` branch.
We do this by periodically merging an updated set of Haskell packages on the
`haskell-updates` branch into the `master` branch. Each member of the team
`haskell-updates` branch into the `staging` branch. Each member of the team
takes a two week period where they are in charge of merging the
`haskell-updates` branch into `master`. This is the documentation for this
`haskell-updates` branch into `staging`. This is the documentation for this
workflow.
The workflow generally proceeds in three main steps:
1. create the initial `haskell-updates` PR, and update Stackage and Hackage snapshots
1. wait for contributors to fix newly broken Haskell packages
1. merge `haskell-updates` into `master`
1. merge `haskell-updates` into `staging`
Each of these steps is described in a separate section.
There is a script that automates the workflow for merging the currently open
`haskell-updates` PR into `master` and opening the next PR. It is described
`haskell-updates` PR into `staging` and opening the next PR. It is described
at the end of this document.
## Initial `haskell-updates` PR
In this section we create the PR for merging `haskell-updates` into `master`.
In this section we create the PR for merging `haskell-updates` into `staging`.
1. Make sure the `haskell-updates` branch is up-to-date with `master`.
1. Make sure the `haskell-updates` branch is up-to-date with a _merge base_ of
`staging` and `master`. `haskell-updates` is not based _on_ `staging`,
so that it can share binary cache with `master`.
1. Update the Stackage Nightly resolver used by Nixpkgs and create a commit:
@ -50,7 +52,7 @@ In this section we create the PR for merging `haskell-updates` into `master`.
1. Push these commits to the `haskell-updates` branch of the NixOS/nixpkgs repository.
1. Open a PR on Nixpkgs for merging `haskell-updates` into `master`. The recommended
1. Open a PR on Nixpkgs for merging `haskell-updates` into `staging`. The recommended
PR title and body text are described in the `merge-and-open-pr.sh` section.
## Notify Maintainers and Fix Broken Packages
@ -85,7 +87,7 @@ most recent build report.
Maintainers should be given at least 7 days to fix up their packages when they
break. If maintainers don't fix up their packages within 7 days, then they
may be marked broken before merging `haskell-updates` into `master`.
may be marked broken before merging `haskell-updates` into `staging`.
### Fix Broken Packages
@ -153,7 +155,7 @@ following will happen:
- All updated files will be committed.
## Merge `haskell-updates` into `master`
## Merge `haskell-updates` into `staging`
Now it is time to merge the `haskell-updates` PR you opened above.
@ -168,33 +170,12 @@ Before doing this, make sure of the following:
have been pinged on GitHub and given at least a week to fix their packages.
This is especially important for widely-used packages like `cachix`.
- Make sure you first merge the `master` branch into `haskell-updates`. Wait
for Hydra to evaluate the new `haskell-updates` jobset. Make sure you only
merge `haskell-updates` into `master` when there are no evaluation errors.
- Due to Hydra having only a small number of Darwin build machines, the
`haskell-updates` jobset on Hydra often has many queued Darwin jobs.
In order to not have these queued Darwin jobs prevent the `haskell-updates`
branch from being merged to `master` in a timely manner, we have special
rules for Darwin jobs.
- It is alright to merge the `haskell-updates` branch to `master` if
there are remaining queued Darwin jobs on Hydra.
- We would like to keep GHC and the `mergeable` job building on Darwin.
Do not merge the `haskell-updates` branch to `master` if GHC is failing
to build, or the `mergeable` job has failing Darwin constituent jobs.
If GHC and the `mergeable` job are not failing, but merely queued,
it is alright to merge the `haskell-updates` branch to `master`.
- We do not need to keep the `maintained` job building on Darwin.
If `maintained` packages are failing on Darwin, it is helpful to
mark them as broken on that platform.
When you've double-checked these points, go ahead and merge the `haskell-updates` PR.
After merging, **make sure not to delete the `haskell-updates` branch**, since it
causes all currently open Haskell-related pull-requests to be automatically closed on GitHub.
- Keep an eye on the next `staging-next` iteration (which is branched off
from `staging`) to confirm that there are no show stopping issues stemming
from interactions between changes on `staging` and `haskell-updates`.
Also be aware that build or eval regressions from a `haskell-updates`
iteration may only become apparent on `staging-next`, especially when the
`haskell-updates` jobset had e.g. Darwin builds disabled.
## Script for Merging `haskell-updates` and Opening a New PR
@ -233,10 +214,6 @@ opening the next one. When you want to merge the currently open
$ ./maintainers/scripts/haskell/mark-broken.sh --do-commit
```
1. Merge `master` into `haskell-updates` and make sure to push to the
`haskell-updates` branch. (This can be skipped if `master` has recently
been merged into `haskell-updates`.)
1. Go to https://hydra.nixos.org/jobset/nixpkgs/haskell-updates and force an
evaluation of the `haskell-updates` jobset. See one of the following
sections for how to do this. Make sure there are no evaluation errors. If
@ -270,11 +247,14 @@ opening the next one. When you want to merge the currently open
## Update Hackage Version Information
After merging into `master` you can update what Hackage displays as the current
Remember to regularly update what Hackage displays as the current
version in NixOS for every individual package. To do this you run
`maintainers/scripts/haskell/upload-nixos-package-list-to-hackage.sh`. See the
script for how to provide credentials. Once you have configured credentials,
running this takes only a few seconds.
`maintainers/scripts/haskell/upload-nixos-package-list-to-hackage.sh` on a checkout
of `master` (or `nixpkgs-unstable`). See the script for how to provide credentials.
Once you have configured credentials, running this takes only a few seconds.
The best time to do this is after `staging-next` has been merged since this is
the way Haskell package updates propagate to `master`.
## Additional Info

View file

@ -2,6 +2,7 @@
{
mkDerivation,
aeson,
ansi-terminal,
ansi-wl-pprint,
base,
bytestring,
@ -34,16 +35,17 @@
}:
mkDerivation {
pname = "cabal2nix";
version = "unstable-2024-12-31";
version = "unstable-2025-04-22";
src = fetchzip {
url = "https://github.com/NixOS/cabal2nix/archive/e290b906f056dd1414ede71b4bb6375be2d0aa5d.tar.gz";
sha256 = "0x94w4dfjfxp3f5h7w5738znkyb8barzjki0xsf94asiffiqsgxn";
url = "https://github.com/NixOS/cabal2nix/archive/e6ed81965def7775aabdda7456d0c13f626295ee.tar.gz";
sha256 = "1fh428r4wfrqjj77dxy1l3d9scm4ywz89rp7dhp07y3bq5yr7hs4";
};
postUnpack = "sourceRoot+=/cabal2nix; echo source root reset to $sourceRoot";
isLibrary = true;
isExecutable = true;
libraryHaskellDepends = [
aeson
ansi-terminal
ansi-wl-pprint
base
bytestring

File diff suppressed because it is too large Load diff

View file

@ -243,40 +243,12 @@ self: super:
# Otherwise impure gcc is used, which is Apple's weird wrapper
c2hsc = addTestToolDepends [ pkgs.gcc ] super.c2hsc;
http-client-tls = overrideCabal (drv: {
postPatch =
''
# This comment has been inserted, so the derivation hash changes, forcing
# a rebuild of this derivation which has succeeded to build on Hydra before,
# but apparently been corrupted, causing reverse dependencies to fail.
#
# This workaround can be removed upon the next darwin stdenv rebuild,
# presumably https://github.com/NixOS/nixpkgs/pull/152850 or the next
# full haskellPackages rebuild.
''
+ drv.postPatch or "";
}) super.http-client-tls;
http2 = super.http2.overrideAttrs (drv: {
# Allow access to local networking when the Darwin sandbox is enabled, so http2 can run tests
# that access localhost.
__darwinAllowLocalNetworking = true;
});
foldl = overrideCabal (drv: {
postPatch =
''
# This comment has been inserted, so the derivation hash changes, forcing
# a rebuild of this derivation which has succeeded to build on Hydra before,
# but apparently been corrupted, causing reverse dependencies to fail.
#
# This workaround can be removed upon the next darwin stdenv rebuild,
# presumably https://github.com/NixOS/nixpkgs/pull/152850 or the next
# full haskellPackages rebuild.
''
+ drv.postPatch or "";
}) super.foldl;
# https://hydra.nixos.org/build/230964714/nixlog/1
inline-c-cpp = appendPatch (pkgs.fetchpatch {
url = "https://github.com/fpco/inline-c/commit/e8dc553b13bb847409fdced649a6a863323cff8a.patch";
@ -362,6 +334,8 @@ self: super:
http-reverse-proxy = dontCheck super.http-reverse-proxy;
servant-auth-server = dontCheck super.servant-auth-server;
sysinfo = dontCheck super.sysinfo;
}
// lib.optionalAttrs pkgs.stdenv.hostPlatform.isAarch64 {
# aarch64-darwin

View file

@ -46,7 +46,7 @@ self: super: {
if pkgs.stdenv.hostPlatform == pkgs.stdenv.buildPlatform then
null
else
doDistribute self.terminfo_0_4_1_6;
doDistribute self.terminfo_0_4_1_7;
text = null;
time = null;
transformers = null;
@ -61,6 +61,20 @@ self: super: {
# their existence to callPackages, but their is no shim for lower GHC versions.
system-cxx-std-lib = null;
# Becomes a core package in GHC >= 9.8
semaphore-compat = doDistribute self.semaphore-compat_1_0_0;
# only broken for >= 9.6
calligraphy = doDistribute (unmarkBroken super.calligraphy);
# Only required for ghc >= 9.2
nothunks = super.nothunks.override {
wherefrom-compat = null;
};
# Tests require nothunks < 0.3 (conflicting with Stackage) for GHC < 9.8
aeson = dontCheck super.aeson;
# For GHC < 9.4, some packages need data-array-byte as an extra dependency
# For GHC < 9.2, os-string is not required.
primitive = addBuildDepends [ self.data-array-byte ] super.primitive;
@ -77,6 +91,9 @@ self: super: {
);
hashable-time = doDistribute (unmarkBroken super.hashable-time);
# Needs base-orphans for GHC < 9.8 / base < 4.19
some = addBuildDepend self.base-orphans super.some;
# Too strict lower bounds on base
primitive-addr = doJailbreak super.primitive-addr;
@ -84,7 +101,7 @@ self: super: {
ghc-api-compat = doDistribute (unmarkBroken self.ghc-api-compat_8_10_7);
# Needs to use ghc-lib due to incompatible GHC
ghc-tags = doDistribute (addBuildDepend self.ghc-lib self.ghc-tags_1_5);
ghc-tags = doDistribute self.ghc-tags_1_5;
# Jailbreak to fix the build.
base-noprelude = doJailbreak super.base-noprelude;
@ -133,8 +150,16 @@ self: super: {
# bundled with GHC < 9.0.
wai-extra = dontHaddock super.wai-extra;
# Overly-strict bounds introduced by a revision in version 0.3.2.
text-metrics = doJailbreak super.text-metrics;
# tar > 0.6 requires os-string which can't be built with bytestring < 0.11
tar = overrideCabal (drv: {
jailbreak = true;
buildDepends = drv.buildDepends or [ ] ++ [
self.bytestring-handle
];
}) self.tar_0_6_0_0;
# text-metrics >= 0.3.3 requires GHC2021
text-metrics = doDistribute (doJailbreak self.text-metrics_0_3_2);
bytestring-handle = unmarkBroken (doDistribute super.bytestring-handle);
# Doesn't build with 9.0, see https://github.com/yi-editor/yi/issues/1125
yi-core = doDistribute (markUnbroken super.yi-core);

View file

@ -8,8 +8,12 @@ in
self: super: {
# Should be llvmPackages_6 which has been removed from nixpkgs
llvmPackages = null;
# Should be llvmPackages_6 which has been removed from nixpkgs,
# create attribute set to prevent eval errors.
llvmPackages = {
llvm = null;
clang = null;
};
# Disable GHC 8.6.x core libraries.
array = null;
@ -43,7 +47,7 @@ self: super: {
if pkgs.stdenv.hostPlatform == pkgs.stdenv.buildPlatform then
null
else
doDistribute self.terminfo_0_4_1_6;
doDistribute self.terminfo_0_4_1_7;
text = null;
time = null;
transformers = null;
@ -58,6 +62,9 @@ self: super: {
# their existence to callPackages, but their is no shim for lower GHC versions.
system-cxx-std-lib = null;
# Becomes a core package in GHC >= 9.8
semaphore-compat = doDistribute self.semaphore-compat_1_0_0;
# Needs Cabal 3.0.x.
jailbreak-cabal = super.jailbreak-cabal.overrideScope (cself: _: { Cabal = cself.Cabal_3_2_1_0; });
@ -93,6 +100,9 @@ self: super: {
# ghc versions prior to 8.8.x needs additional dependency to compile successfully.
ghc-lib-parser-ex = addBuildDepend self.ghc-lib-parser super.ghc-lib-parser-ex;
# Needs base-orphans for GHC < 9.8 / base < 4.19
some = addBuildDepend self.base-orphans super.some;
# This became a core library in ghc 8.10., so we dont have an "exception" attribute anymore.
exceptions = self.exceptions_0_10_9;

View file

@ -45,7 +45,7 @@ self: super: {
if pkgs.stdenv.hostPlatform == pkgs.stdenv.buildPlatform then
null
else
doDistribute self.terminfo_0_4_1_6;
doDistribute self.terminfo_0_4_1_7;
text = null;
time = null;
transformers = null;
@ -60,8 +60,24 @@ self: super: {
# their existence to callPackages, but their is no shim for lower GHC versions.
system-cxx-std-lib = null;
# Becomes a core package in GHC >= 9.8
semaphore-compat = doDistribute self.semaphore-compat_1_0_0;
# Only required for ghc >= 9.2
nothunks = super.nothunks.override {
wherefrom-compat = null;
};
# Needs base-orphans for GHC < 9.8 / base < 4.19
some = addBuildDepend self.base-orphans super.some;
# Jailbreaks & Version Updates
# tar > 0.6 requires os-string which can't be built with bytestring < 0.11
tar = doDistribute (doJailbreak self.tar_0_6_0_0);
# text-metrics >= 0.3.3 requires GHC2021
text-metrics = doDistribute self.text-metrics_0_3_2;
# For GHC < 9.4, some packages need data-array-byte as an extra dependency
primitive = addBuildDepends [ self.data-array-byte ] super.primitive;
# For GHC < 9.2, os-string is not required.
@ -95,7 +111,7 @@ self: super: {
haskell-language-server = throw "haskell-language-server has dropped support for ghc 9.0 in version 2.4.0.0, please use a newer ghc version or an older nixpkgs version";
# Needs to use ghc-lib due to incompatible GHC
ghc-tags = doDistribute (addBuildDepend self.ghc-lib self.ghc-tags_1_5);
ghc-tags = doDistribute self.ghc-tags_1_5;
# ghc-lib >= 9.6 and friends no longer build with GHC 9.0
ghc-lib-parser = doDistribute self.ghc-lib-parser_9_2_8_20230729;
@ -121,6 +137,9 @@ self: super: {
# https://github.com/lspitzner/butcher/issues/7
butcher = doJailbreak super.butcher;
# Tests require nothunks < 0.3 (conflicting with Stackage) for GHC < 9.8
aeson = dontCheck super.aeson;
# We use a GHC patch to support the fix for https://github.com/fpco/inline-c/issues/127
# which means that the upstream cabal file isn't allowed to add the flag.
inline-c-cpp =

View file

@ -51,7 +51,7 @@ self: super: {
if pkgs.stdenv.hostPlatform == pkgs.stdenv.buildPlatform then
null
else
doDistribute self.terminfo_0_4_1_6;
doDistribute self.terminfo_0_4_1_7;
text = null;
time = null;
transformers = null;
@ -64,35 +64,14 @@ self: super: {
# Upgrade to accommodate new core library versions, where the authors have
# already made the relevant changes.
aeson = doDistribute self.aeson_2_2_3_0;
attoparsec-aeson = doDistribute self.attoparsec-aeson_2_2_2_0;
auto-update = doDistribute self.auto-update_0_2_6;
dependent-sum-template = doJailbreak self.dependent-sum-template_0_2_0_1; # template-haskell < 2.22
extensions = doDistribute self.extensions_0_1_0_2;
fourmolu = doDistribute self.fourmolu_0_16_2_0;
hashable = doDistribute self.hashable_1_4_7_0;
integer-conversion = doDistribute self.integer-conversion_0_1_1;
ghc-lib = doDistribute self.ghc-lib_9_10_1_20241103;
ghc-lib-parser = doDistribute self.ghc-lib-parser_9_10_1_20241103;
# 2025-04-09: jailbreak to allow hedgehog >= 1.5, hspec-hedgehog >=0.2
extensions = doJailbreak (doDistribute self.extensions_0_1_0_2);
fourmolu = doDistribute self.fourmolu_0_16_0_0;
ghc-lib = doDistribute self.ghc-lib_9_10_1_20250103;
ghc-lib-parser = doDistribute self.ghc-lib-parser_9_10_1_20250103;
ghc-lib-parser-ex = doDistribute self.ghc-lib-parser-ex_9_10_0_0;
http2 = doDistribute self.http2_5_3_9;
http-semantics = doDistribute self.http-semantics_0_3_0;
htree = doDistribute self.htree_0_2_0_0;
lens = doDistribute self.lens_5_3_2;
lukko = doDistribute self.lukko_0_1_2;
network-control = super.network-control_0_1_3;
network-run = super.network-run_0_4_0;
ormolu = doDistribute self.ormolu_0_7_7_0;
primitive = doDistribute self.primitive_0_9_0_0;
quickcheck-instances = doDistribute self.quickcheck-instances_0_3_32;
rebase = doDistribute self.rebase_1_21_1;
rerebase = doDistribute self.rerebase_1_21_1;
scientific = doDistribute self.scientific_0_3_8_0;
semirings = doDistribute self.semirings_0_7;
time-manager = doDistribute self.time-manager_0_2_2;
th-abstraction = doDistribute self.th-abstraction_0_7_1_0;
uuid-types = doDistribute self.uuid-types_1_0_6;
warp = pkgs.haskell.lib.dontCheck super.warp_3_4_7; # test suite assumes it can freely call curl
# A given major version of ghc-exactprint only supports one version of GHC.
ghc-exactprint = doDistribute self.ghc-exactprint_1_9_0_0;
@ -109,32 +88,34 @@ self: super: {
# Jailbreaks
#
base64 = doJailbreak super.base64; # base <4.20
commutative-semigroups = doJailbreak super.commutative-semigroups; # base <4.20
dejafu = doJailbreak super.dejafu; # containers <0.7
# 2025-04-09: base <4.20, containers <0.7, filepath <1.5, Cabal-syntax <3.11
cabal-install-parsers =
assert super.cabal-install-parsers.version == "0.6.1.1";
doJailbreak super.cabal-install-parsers;
floskell = doJailbreak super.floskell; # base <4.20
lucid = doJailbreak super.lucid; # base <4.20
tar = doJailbreak super.tar; # base <4.20
# 2025-04-09: filepath <1.5
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
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_4_7_0 = doJailbreak super.hashable_1_4_7_0; # relax bounds for QuickCheck, tasty, and tasty-quickcheck
hashable_1_5_0_0 = doJailbreak super.hashable_1_5_0_0; # relax bounds for QuickCheck, tasty, and tasty-quickcheck
broadcast-chan = doJailbreak super.broadcast-chan; # base <4.19 https://github.com/merijn/broadcast-chan/pull/19
#
# Test suite issues
#
call-stack = dontCheck super.call-stack; # https://github.com/sol/call-stack/issues/19
lifted-base = dontCheck super.lifted-base; # doesn't compile with transformers ==0.6.*
lukko_0_1_2 = dontCheck super.lukko_0_1_2; # doesn't compile with tasty ==1.4.*
resolv = dontCheck super.resolv; # doesn't compile with filepath ==1.5.*
primitive-unlifted = dontCheck super.primitive-unlifted; # doesn't compile with primitive ==0.9.*
bsb-http-chunked = pkgs.haskell.lib.dontCheck super.bsb-http-chunked; # https://github.com/sjakobi/bsb-http-chunked/issues/45
fsnotify = dontCheck super.fsnotify; # https://github.com/haskell-fswatch/hfsnotify/issues/115
hinotify = pkgs.haskell.lib.dontCheck super.hinotify; # https://github.com/kolmodin/hinotify/issues/38
monad-dijkstra = dontCheck super.monad-dijkstra; # needs hlint 3.10
haskell-language-server = disableCabalFlag "retrie" (
disableCabalFlag "hlint" (

View file

@ -1,12 +1,29 @@
{ pkgs, haskellLib }:
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;
in
with haskellLib;
self: super: {
{
llvmPackages = lib.dontRecurseIntoAttrs self.ghc.llvmPackages;
# Disable GHC core libraries
@ -20,6 +37,7 @@ self: super: {
deepseq = null;
directory = null;
exceptions = null;
file-io = null;
filepath = null;
ghc-bignum = null;
ghc-boot = null;
@ -32,6 +50,8 @@ self: super: {
ghc-prim = null;
ghc-toolchain = null;
ghci = null;
haddock-api = null;
haddock-library = null;
haskeline = null;
hpc = null;
integer-gmp = null;
@ -50,29 +70,138 @@ self: super: {
if pkgs.stdenv.hostPlatform == pkgs.stdenv.buildPlatform then
null
else
haskellLib.doDistribute self.terminfo_0_4_1_6;
haskellLib.doDistribute self.terminfo_0_4_1_7;
text = null;
time = null;
transformers = null;
unix = null;
xhtml = null;
# Version upgrades
jailbreak-cabal = overrideCabal {
# Manually update jailbreak-cabal to 1.4.1 (which supports Cabal >= 3.14)
# since Hackage bump containing it is tied up in the update to Stackage LTS 23.
version = "1.4.1";
sha256 = "0q6l608m965s6932xabm7v2kav5cxrihb5qcbrwz0c4xiwrz4l5x";
#
# Hand pick versions that are compatible with ghc 9.12 and base 4.21
#
revision = null;
editedCabalFile = null;
} super.jailbreak-cabal;
extra = doDistribute self.extra_1_8;
htree = doDistribute self.htree_0_2_0_0;
primitive = doDistribute self.primitive_0_9_0_0;
splitmix = doDistribute self.splitmix_0_1_1;
tagged = doDistribute self.tagged_0_8_9;
tar = doDistribute self.tar_0_6_3_0;
time-compat = doDistribute self.time-compat_1_9_8;
extensions = doDistribute self.extensions_0_1_0_3;
doctest = doDistribute self.doctest_0_24_0;
ghc-syntax-highlighter = doDistribute self.ghc-syntax-highlighter_0_0_13_0;
ghc-lib = doDistribute self.ghc-lib_9_12_2_20250320;
ghc-exactprint = doDistribute self.ghc-exactprint_1_12_0_0;
ghc-lib-parser = doDistribute self.ghc-lib-parser_9_12_2_20250320;
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;
ormolu = doDistribute self.ormolu_0_8_0_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
time-compat_1_9_8 = doJailbreak super.time-compat_1_9_8; # too strict lower bound on QuickCheck
cpphs = overrideCabal (drv: {
# jail break manually the conditional dependencies
postPatch = ''
sed -i 's/time >=1.5 \&\& <1.13/time >=1.5 \&\& <=1.14/g' cpphs.cabal
'';
}) super.cpphs;
vector = doJailbreak super.vector; # doctest >=0.15 && <0.24
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
self.extra
self.ghc-paths
self.silently
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
#
call-stack = dontCheck super.call-stack; # https://github.com/sol/call-stack/issues/19
relude = dontCheck super.relude;
doctest_0_24_0 = overrideCabal (drv: {
testFlags = drv.testFlags or [ ] ++ [
# These tests require cabal-install (would cause infinite recursion)
"--skip=/Cabal.Options"
"--skip=/Cabal.Paths/paths"
"--skip=/Cabal.ReplOptions" # >= 0.23
];
}) super.doctest_0_24_0;
# https://github.com/typeable/generic-arbitrary/issues/18
generic-arbitrary = overrideCabal (drv: {
patches = drv.patches or [ ] ++ [
(pkgs.fetchpatch {
name = "hellwolf:fix-recursive-test-hidding-unit";
url = "https://github.com/typeable/generic-arbitrary/commit/133b80be93e6744f21e0e5ed4180a24c589f92e4.patch";
sha256 = "sha256-z9EVcD1uNAYUOVTwmCCnrEFFOvFB7lD94Y6BwGVwVRQ=";
})
];
}) super.generic-arbitrary;
# https://gitlab.haskell.org/ghc/ghc/-/issues/25930
generic-lens = dontCheck super.generic-lens;
# Cabal 3.14 regression (incorrect datadir in tests): https://github.com/haskell/cabal/issues/10717
alex = overrideCabal (drv: {
preCheck =
drv.preCheck or ""
+ ''
export alex_datadir="$(pwd)/data"
'';
}) super.alex;
# https://github.com/sjakobi/newtype-generics/pull/28/files
newtype-generics = warnAfterVersion "0.6.2" (doJailbreak super.newtype-generics);
#
# 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 {
name = "doctest-0.23.0-ghc-9.12.patch";
url = "https://github.com/martijnbastiaan/doctest-parallel/commit/d3df7aa5d223f3daeb676c8a7efe093ee743d54f.patch";
sha256 = "sha256-92CtqBCulfOTjLAeC205cIrqL/2CBP1YFLijTVcTD2M=";
includes = [ "src/Test/DocTest/Helpers.hs" ];
})
];
}) (dontCheck (doJailbreak super.doctest-parallel)); # Cabal >=2.4 && <3.13
haskell-language-server = disableCabalFlag "retrie" (
disableCabalFlag "stylishhaskel" (
super.haskell-language-server.override {
stylish-haskell = null;
floskell = null;
retrie = null;
}
)
);
}

View file

@ -52,7 +52,7 @@ self: super: {
if pkgs.stdenv.hostPlatform == pkgs.stdenv.buildPlatform then
null
else
haskellLib.doDistribute self.terminfo_0_4_1_6;
haskellLib.doDistribute self.terminfo_0_4_1_7;
text = null;
time = null;
transformers = null;

View file

@ -45,7 +45,7 @@ self: super: {
if pkgs.stdenv.hostPlatform == pkgs.stdenv.buildPlatform then
null
else
doDistribute self.terminfo_0_4_1_6;
doDistribute self.terminfo_0_4_1_7;
text = null;
time = null;
transformers = null;
@ -60,6 +60,9 @@ self: super: {
# their existence to callPackages, but their is no shim for lower GHC versions.
system-cxx-std-lib = null;
# Becomes a core package in GHC >= 9.8
semaphore-compat = doDistribute self.semaphore-compat_1_0_0;
# weeder >= 2.5 requires GHC 9.4
weeder = doDistribute self.weeder_2_4_1;
# Allow dhall 1.42.*
@ -71,20 +74,7 @@ self: super: {
}
);
haskell-language-server = lib.pipe super.haskell-language-server [
(disableCabalFlag "fourmolu")
(disableCabalFlag "ormolu")
(disableCabalFlag "cabal")
(disableCabalFlag "stylishHaskell")
(
d:
d.override {
ormolu = null;
fourmolu = null;
stan = null;
}
)
];
haskell-language-server = throw "haskell-language-server has dropped support for ghc 9.2 in version 2.10.0.0, please use a newer ghc version or an older nixpkgs version";
# For GHC < 9.4, some packages need data-array-byte as an extra dependency
hashable = addBuildDepends [ self.data-array-byte ] super.hashable;
@ -93,6 +83,9 @@ self: super: {
# Too strict lower bound on base
primitive-addr = doJailbreak super.primitive-addr;
# Needs base-orphans for GHC < 9.8 / base < 4.19
some = addBuildDepend self.base-orphans super.some;
# Jailbreaks & Version Updates
hashable-time = doJailbreak super.hashable-time;
@ -101,17 +94,30 @@ self: super: {
# https://mail.haskell.org/pipermail/haskell-cafe/2022-October/135613.html
language-javascript_0_7_0_0 = dontCheck super.language-javascript_0_7_0_0;
# Needs to match ghc version
ghc-tags = doDistribute self.ghc-tags_1_5;
# Needs to match ghc-lib version
ghc-tags = doDistribute (doJailbreak self.ghc-tags_1_7);
# For "ghc-lib" flag see https://github.com/haskell/haskell-language-server/issues/3185#issuecomment-1250264515
hlint = enableCabalFlag "ghc-lib" super.hlint;
# Needs to match ghc-lib
hlint = doDistribute self.hlint_3_6_1;
# ghc-lib >= 9.8 and friends no longer build with GHC 9.2 since they require semaphore-compat
ghc-lib-parser = doDistribute (
self.ghc-lib-parser_9_6_7_20250325.override {
happy = self.happy_1_20_1_1; # wants happy < 1.21
}
);
ghc-lib-parser-ex = doDistribute self.ghc-lib-parser-ex_9_6_0_2;
ghc-lib = doDistribute (
self.ghc-lib_9_6_7_20250325.override {
happy = self.happy_1_20_1_1; # wants happy < 1.21
}
);
# 0.2.2.3 requires Cabal >= 3.8
shake-cabal = doDistribute self.shake-cabal_0_2_2_2;
# https://github.com/sjakobi/bsb-http-chunked/issues/38
bsb-http-chunked = dontCheck super.bsb-http-chunked;
# Tests require nothunks < 0.3 (conflicting with Stackage) for GHC < 9.8
aeson = dontCheck super.aeson;
# https://github.com/NixOS/cabal2nix/issues/554
# https://github.com/clash-lang/clash-compiler/blob/f0f6275e19b8c672f042026c478484c5fd45191d/README.md#ghc-compatibility
@ -129,6 +135,9 @@ self: super: {
# A given major version of ghc-exactprint only supports one version of GHC.
ghc-exactprint = super.ghc-exactprint_1_5_0;
# only broken for >= 9.6
calligraphy = doDistribute (unmarkBroken super.calligraphy);
# Packages which need compat library for GHC < 9.6
inherit (lib.mapAttrs (_: addBuildDepends [ self.foldable1-classes-compat ]) super)
indexed-traversable

View file

@ -54,7 +54,7 @@ in
if pkgs.stdenv.hostPlatform == pkgs.stdenv.buildPlatform then
null
else
doDistribute self.terminfo_0_4_1_6;
doDistribute self.terminfo_0_4_1_7;
text = null;
time = null;
transformers = null;
@ -63,6 +63,12 @@ in
# still the case when updating: https://gitlab.haskell.org/ghc/ghc/-/blob/0198841877f6f04269d6050892b98b5c3807ce4c/ghc.mk#L463
xhtml = if self.ghc.hasHaddock or true then null else doDistribute self.xhtml_3000_4_0_0;
# Becomes a core package in GHC >= 9.8
semaphore-compat = doDistribute self.semaphore-compat_1_0_0;
# only broken for >= 9.6
calligraphy = doDistribute (unmarkBroken super.calligraphy);
# Jailbreaks & Version Updates
hashable-time = doJailbreak super.hashable-time;
@ -74,6 +80,9 @@ in
self.base-orphans
] super.generically;
# Needs base-orphans for GHC < 9.8 / base < 4.19
some = addBuildDepend self.base-orphans super.some;
# the dontHaddock is due to a GHC panic. might be this bug, not sure.
# https://gitlab.haskell.org/ghc/ghc/-/issues/21619
hedgehog = dontHaddock super.hedgehog;
@ -86,16 +95,26 @@ in
] ++ drv.testFlags or [ ];
}) (doJailbreak super.hpack);
# https://github.com/sjakobi/bsb-http-chunked/issues/38
bsb-http-chunked = dontCheck super.bsb-http-chunked;
# 2022-08-01: Tests are broken on ghc 9.2.4: https://github.com/wz1000/HieDb/issues/46
hiedb = dontCheck super.hiedb;
# 2022-10-06: https://gitlab.haskell.org/ghc/ghc/-/issues/22260
ghc-check = dontHaddock super.ghc-check;
ghc-tags = self.ghc-tags_1_6;
ghc-tags = doDistribute (doJailbreak self.ghc-tags_1_7); # aeson < 2.2
# ghc-lib >= 9.8 and friends no longer build with GHC 9.4 since they require semaphore-compat
ghc-lib-parser = doDistribute (
self.ghc-lib-parser_9_6_7_20250325.override {
happy = self.happy_1_20_1_1; # wants happy < 1.21
}
);
ghc-lib-parser-ex = doDistribute self.ghc-lib-parser-ex_9_6_0_2;
ghc-lib = doDistribute (
self.ghc-lib_9_6_7_20250325.override {
happy = self.happy_1_20_1_1; # wants happy < 1.21
}
);
# A given major version of ghc-exactprint only supports one version of GHC.
ghc-exactprint = super.ghc-exactprint_1_6_1_3;
@ -112,14 +131,15 @@ in
let
hls_overlay = lself: lsuper: {
Cabal-syntax = lself.Cabal-syntax_3_10_3_0;
Cabal = lself.Cabal_3_10_3_0;
};
in
lib.mapAttrs (_: pkg: doDistribute (pkg.overrideScope hls_overlay)) {
haskell-language-server = allowInconsistentDependencies super.haskell-language-server;
fourmolu = super.fourmolu;
ormolu = super.ormolu;
hlint = super.hlint;
stylish-haskell = super.stylish-haskell;
fourmolu = doJailbreak self.fourmolu_0_14_0_0; # ansi-terminal, Diff
ormolu = doJailbreak self.ormolu_0_7_2_0; # ansi-terminal
hlint = self.hlint_3_6_1;
stylish-haskell = self.stylish-haskell_0_14_5_0;
}
)
haskell-language-server
@ -140,6 +160,9 @@ in
self.OneTuple
] super.base-compat-batteries;
# Tests require nothunks < 0.3 (conflicting with Stackage) for GHC < 9.8
aeson = dontCheck super.aeson;
# Too strict lower bound on base
primitive-addr = doJailbreak super.primitive-addr;
}

View file

@ -62,13 +62,19 @@ self: super:
if pkgs.stdenv.hostPlatform == pkgs.stdenv.buildPlatform then
null
else
doDistribute self.terminfo_0_4_1_6;
doDistribute self.terminfo_0_4_1_7;
text = null;
time = null;
transformers = null;
unix = null;
xhtml = null;
# Becomes a core package in GHC >= 9.8
semaphore-compat = doDistribute self.semaphore-compat_1_0_0;
# Needs base-orphans for GHC < 9.8 / base < 4.19
some = addBuildDepend self.base-orphans super.some;
#
# Version deviations from Stackage LTS
#
@ -78,7 +84,8 @@ self: super:
th-extras = doJailbreak super.th-extras;
# not in Stackage, needs to match ghc-lib
ghc-tags = doDistribute self.ghc-tags_1_7;
# since expression is generated for 9.8, ghc-lib dep needs to be added manually
ghc-tags = doDistribute (addBuildDepends [ self.ghc-lib ] self.ghc-tags_1_8);
#
# Too strict bounds without upstream fix
@ -100,8 +107,6 @@ self: super:
# Jailbreaks for servant <0.20
servant-lucid = doJailbreak super.servant-lucid;
lifted-base = dontCheck super.lifted-base;
hw-prim = dontCheck (doJailbreak super.hw-prim);
stm-containers = dontCheck super.stm-containers;
regex-tdfa = dontCheck super.regex-tdfa;
hiedb = dontCheck super.hiedb;
@ -124,9 +129,6 @@ self: super:
# A factor of 100 is insufficient, 200 seems seems to work.
hip = appendConfigureFlag "--ghc-options=-fsimpl-tick-factor=200" super.hip;
# Doctest comments have bogus imports.
bsb-http-chunked = dontCheck super.bsb-http-chunked;
# This can be removed once https://github.com/typeclasses/ascii-predicates/pull/1
# is merged and in a release that's being tracked.
ascii-predicates = appendPatch (pkgs.fetchpatch {
@ -145,6 +147,9 @@ self: super:
sha256 = "sha256-buw1UeW57CFefEfqdDUraSyQ+H/NvCZOv6WF2ORiYQg=";
}) super.ascii-numbers;
# Tests require nothunks < 0.3 (conflicting with Stackage) for GHC < 9.8
aeson = dontCheck super.aeson;
# Apply patch from PR with mtl-2.3 fix.
ConfigFile = overrideCabal (drv: {
editedCabalFile = null;
@ -159,6 +164,9 @@ self: super:
];
}) super.ConfigFile;
# https://github.com/NixOS/nixpkgs/pull/367998#issuecomment-2598941240
libtorch-ffi-helper = unmarkBroken (doDistribute super.libtorch-ffi-helper);
# Compatibility with core libs of GHC 9.6
# Jailbreak to lift bound on time
kqueue = doJailbreak (
@ -187,6 +195,9 @@ self: super:
;
singletons-base = dontCheck super.singletons-base;
# A given major version of ghc-exactprint only supports one version of GHC.
ghc-exactprint = addBuildDepend self.extra super.ghc-exactprint_1_7_1_0;
}
# super.ghc is required to break infinite recursion as Nix is strict in the attrNames
//

View file

@ -41,6 +41,7 @@ self: super:
process = null;
rts = null;
stm = null;
semaphore-compat = null;
system-cxx-std-lib = null;
template-haskell = null;
# GHC only builds terminfo if it is a native compiler
@ -48,7 +49,7 @@ self: super:
if pkgs.stdenv.hostPlatform == pkgs.stdenv.buildPlatform then
null
else
doDistribute self.terminfo_0_4_1_6;
doDistribute self.terminfo_0_4_1_7;
text = null;
time = null;
transformers = null;
@ -58,79 +59,25 @@ self: super:
#
# Version upgrades
#
th-abstraction = doDistribute self.th-abstraction_0_7_1_0;
ghc-lib-parser = doDistribute self.ghc-lib-parser_9_8_4_20241130;
ghc-lib-parser-ex = doDistribute self.ghc-lib-parser-ex_9_8_0_2;
ghc-lib = doDistribute self.ghc-lib_9_8_4_20241130;
megaparsec = doDistribute self.megaparsec_9_7_0;
# aeson 2.2.3.0 seemingly unnecessesarily bumped the lower bound on hashable
# https://github.com/haskell/aeson/commit/1a666febd0775d8e88d315ece1b97cd20602fb5f
aeson = doJailbreak (doDistribute self.aeson_2_2_3_0);
attoparsec-aeson = doDistribute self.attoparsec-aeson_2_2_2_0;
dependent-sum-template = self.dependent-sum-template_0_2_0_1; # template-haskell < 2.22
xmonad = doDistribute self.xmonad_0_18_0;
apply-refact = self.apply-refact_0_14_0_0;
ormolu = self.ormolu_0_7_4_0;
fourmolu = self.fourmolu_0_15_0_0;
stylish-haskell = self.stylish-haskell_0_14_6_0;
hlint = self.hlint_3_8;
ghc-syntax-highlighter = self.ghc-syntax-highlighter_0_0_12_0;
websockets = self.websockets_0_13_0_0;
th-desugar = doJailbreak self.th-desugar_1_16; # th-abstraction >=0.6 && <0.7
singletons-th = self.singletons-th_3_3;
singletons-base = self.singletons-base_3_3;
ghc-tags = self.ghc-tags_1_8;
# A given major version of ghc-exactprint only supports one version of GHC.
ghc-exactprint = self.ghc-exactprint_1_8_0_0;
ghc-exactprint_1_8_0_0 = addBuildDepends [
self.Diff
self.HUnit
self.data-default
self.extra
self.free
self.ghc-paths
self.ordered-containers
self.silently
self.syb
] super.ghc-exactprint_1_8_0_0;
#
# Jailbreaks
#
blaze-svg = doJailbreak super.blaze-svg; # base <4.19
commutative-semigroups = doJailbreak super.commutative-semigroups; # base < 4.19
diagrams-lib = doJailbreak super.diagrams-lib; # base <4.19, text <2.1
diagrams-postscript = doJailbreak super.diagrams-postscript; # base <4.19, bytestring <0.12
diagrams-svg = doJailbreak super.diagrams-svg; # base <4.19, text <2.1
generics-sop = doJailbreak super.generics-sop_0_5_1_4; # th-abstraction >=0.6 && <0.7
ghc-trace-events = doJailbreak super.ghc-trace-events; # text < 2.1, bytestring < 0.12, base < 4.19
hashing = doJailbreak super.hashing; # bytestring <0.12
json-sop = doJailbreak super.json-sop; # aeson <2.2, base <4.19, text <2.1
primitive-unlifted = doJailbreak super.primitive-unlifted; # bytestring < 0.12
statestack = doJailbreak super.statestack; # base < 4.19
newtype-generics = doJailbreak super.newtype-generics; # base < 4.19
hw-prim = doJailbreak super.hw-prim; # doctest < 0.22, ghc-prim < 0.11, hedgehog < 1.4
svg-builder = doJailbreak super.svg-builder; # base <4.19, bytestring <0.12, text <2.1
# Too strict bound on base, believe it or not.
# https://github.com/judah/terminfo/pull/55#issuecomment-1876894232
terminfo_0_4_1_6 = doJailbreak super.terminfo_0_4_1_6;
hevm = appendPatch (pkgs.fetchpatch {
url = "https://github.com/hellwolf/hevm/commit/338674d1fe22d46ea1e8582b24c224d76d47d0f3.patch";
name = "release-0.54.2-ghc-9.8.4-patch";
sha256 = "sha256-Mo65FfP1nh7QTY+oLia22hj4eV2v9hpXlYsrFKljA3E=";
}) super.hevm;
HaskellNet-SSL = doJailbreak super.HaskellNet-SSL; # bytestring >=0.9 && <0.12
raven-haskell = doJailbreak super.raven-haskell; # aeson <2.2
saltine = doJailbreak super.saltine; # bytestring && <0.12, deepseq <1.5, text > 1.2 && <1.3 || >=2.0 && <2.1
stripe-concepts = doJailbreak super.stripe-concepts; # text >=1.2.5 && <1.3 || >=2.0 && <2.1
stripe-signature = doJailbreak super.stripe-signature; # text >=1.2.5 && <1.3 || >=2.0 && <2.1
string-random = doJailbreak super.string-random; # text >=1.2.2.1 && <2.1
inflections = doJailbreak super.inflections; # text >=0.2 && <2.1
universe-some = doJailbreak super.universe-some; # th-abstraction < 0.7
broadcast-chan = doJailbreak super.broadcast-chan; # base <4.19 https://github.com/merijn/broadcast-chan/pull/19
#
# Test suite issues
#
unordered-containers = dontCheck super.unordered-containers; # ChasingBottoms doesn't support base 4.20
lifted-base = dontCheck super.lifted-base; # doesn't compile with transformers == 0.6.*
bsb-http-chunked = dontCheck super.bsb-http-chunked; # umaintained, test suite doesn't compile anymore
pcre-heavy = dontCheck super.pcre-heavy; # GHC warnings cause the tests to fail
#
@ -140,6 +87,17 @@ self: super:
# 2023-12-23: It needs this to build under ghc-9.6.3.
# A factor of 100 is insufficient, 200 seems seems to work.
hip = appendConfigureFlag "--ghc-options=-fsimpl-tick-factor=200" super.hip;
# 2025-04-21: "flavor" for GHC 9.8.5 is missing a fix introduced for 9.8.4. See:
# https://github.com/digital-asset/ghc-lib/pull/571#discussion_r2052684630
ghc-lib-parser =
assert super.ghc-lib-parser.version == "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;
}
// lib.optionalAttrs (lib.versionAtLeast super.ghc.version "9.8.3") {
# Breakage related to GHC 9.8.3 / deepseq 1.5.1.0

View file

@ -1,5 +1,9 @@
{ pkgs, haskellLib }:
let
inherit (pkgs) lib;
in
with haskellLib;
# cabal2nix doesn't properly add dependencies conditional on arch(javascript)
@ -20,17 +24,41 @@ with haskellLib;
ghcjs-dom-javascript = addBuildDepend self.ghcjs-base super.ghcjs-dom-javascript;
jsaddle = addBuildDepend self.ghcjs-base super.jsaddle;
jsaddle-dom = addBuildDepend self.ghcjs-base super.jsaddle-dom;
jsaddle-warp = overrideCabal (drv: {
libraryHaskellDepends = [ ];
testHaskellDepends = [ ];
}) super.jsaddle-warp;
entropy = addBuildDepend self.ghcjs-dom super.entropy;
reflex-dom = super.reflex-dom.override (drv: {
# https://gitlab.haskell.org/ghc/ghc/-/issues/25083#note_578275
patch = haskellLib.disableParallelBuilding super.patch;
reflex-dom-core = haskellLib.disableParallelBuilding super.reflex-dom-core;
reflex-dom =
lib.warn "reflex-dom builds with JS backend but it is missing fixes for working at runtime"
super.reflex-dom.override
(drv: {
jsaddle-webkit2gtk = null;
});
patch = pkgs.lib.pipe super.patch (
with haskellLib;
miso-examples = pkgs.lib.pipe super.miso-examples [
(addBuildDepends (
with self;
[
disableParallelBuilding # https://gitlab.haskell.org/ghc/ghc/-/issues/25083#note_578275
doJailbreak
aeson
ghcjs-base
jsaddle-warp
miso
servant
]
);
))
];
# https://github.com/haskellari/splitmix/pull/75
splitmix = appendPatch (pkgs.fetchpatch {
url = "https://github.com/haskellari/splitmix/commit/7ffb3158f577c48ab5de774abea47767921ef3e9.patch";
sha256 = "sha256-n2q4FGf/pPcI1bhb9srHjHLzaNVehkdN6kQgL0F4MMg=";
}) super.splitmix;
})

View file

@ -24,106 +24,108 @@
# tracked in stackage.yaml. Adding conflicting overrides with stackage here will
# not work.
default-package-overrides:
# gi-gdkx11-4.x requires gtk-4.x, but stackage still restricts gi-gtk to 3.*
- gi-gdkx11 < 4
# 2021-11-09: ghc-bignum is bundled starting with 9.0.1; only 1.0 builds with GHCs prior to 9.2.1
- ghc-bignum == 1.0
- extensions < 0.1.0.2 # Incompatible with Cabal < 3.12, the newest extensions version is only needed on ghc 9.10
# 2024-05-10: need to match hlegder from stackage
- hledger-ui < 1.33
- chs-cabal < 0.1.1.2 # Incompatible with Cabal < 3.12
# 2024-08-17: Stackage doesn't contain hnix-store-core >= 0.8 yet, so we need to restrict hnix-store-remote
- hnix-store-remote < 0.7
# 2024-09-12: match xmonad 0.17.* from Stackage LTS
- xmonad-contrib < 0.18.1
# 2024-11-01: no release version of http2/3 supports http-semantics >= 0.3.0 at the moment
- http-semantics < 0.3.0
# 2024-12-23: last version to be compatible with Stackage LTS 22/23 (due to data-default)
- diagrams-input < 0.1.4
# 2024-12-31: last version that's compatible with GHC < 9.9
- htree < 0.2.0.0
# 2025-01-17: need to match stackage version of hosc
- hsc3 < 0.21
extra-packages:
- Cabal == 3.2.* # Used for packages needing newer Cabal on ghc 8.6 and 8.8
- Cabal-syntax == 3.6.* # Dummy package that ensures packages depending on Cabal-syntax can work for Cabal < 3.8
- Cabal-syntax == 3.8.* # version required for ormolu and fourmolu on ghc 9.2 and 9.0
- Cabal-syntax == 3.10.*
- Cabal == 3.10.*
- Cabal == 3.12.* # version required for cabal-install and other packages
- Cabal-syntax == 3.6.* # Dummy package that ensures packages depending on Cabal-syntax can work for Cabal < 3.8
- Cabal-syntax == 3.8.* # version required for ormolu and fourmolu on ghc 9.0
- Cabal-syntax == 3.10.*
- Cabal-syntax == 3.12.* # version required for cabal-install and other packages
- ShellCheck == 0.9.0 # 2024-03-21: pinned by haskell-ci
- aeson < 2 # required by pantry-0.5.2
- algebraic-graphs < 0.7 # 2023-08-14: Needed for building weeder < 2.6.0
- ansi-terminal < 1.1 # 2025-02-27: required for ghcjs
- ansi-terminal-types == 0.11.5 # 2025-02-27: required for ghcjs
- ansi-wl-pprint >= 0.6 && < 0.7 # 2024-03-23: required for ghcjs
- apply-refact == 0.9.* # 2022-12-12: needed for GHC < 9.2
- apply-refact == 0.11.* # 2023-02-02: needed for hls-hlint-plugin on GHC 9.2
- attoparsec == 0.13.* # 2022-02-23: Needed to compile elm for now
- commonmark-pandoc < 0.2.3 # 2025-04-06: Needed for pandoc 3.6
- extensions == 0.1.0.2 # 2024-10-20: for GHC 9.10/Cabal 3.12
- fourmolu == 0.14.0.0 # 2023-11-13: for ghc-lib-parser 9.6 compat
- fourmolu == 0.16.0.0 # 2025-01-27: for ghc 9.10 compat
- fsnotify < 0.4 # 2024-04-22: required by spago-0.21
- fuzzyset == 0.2.4 # 2023-12-20: Needed for building postgrest > 10
- ghc-api-compat == 8.10.7 # 2022-02-17: preserve for GHC 8.10.7
- ghc-exactprint == 0.6.* # 2022-12-12: needed for GHC < 9.2
- ghc-exactprint == 1.5.* # 2023-03-30: needed for GHC == 9.2
- ghc-exactprint == 1.6.* # 2023-03-30: needed for GHC == 9.4
- ghc-exactprint == 1.7.* # 2025-03-09: needed for GHC == 9.6
- ghc-exactprint == 1.8.* # 2024-05-20: needed for GHC == 9.8
- ghc-exactprint == 1.9.* # 2024-08-27: needed for GHC == 9.10
- ghc-lib == 9.2.* # 2022-02-17: preserve for GHC 8.10, 9.0
- ghc-lib == 9.8.* # 2024-05-19: preserve for GHC 9.8
- ghc-lib-parser == 9.2.* # 2022-02-17: preserve for GHC 8.10, 9.0
- ghc-lib-parser == 9.8.* # 2024-05-19: preserve for GHC 9.8
- ghc-lib == 9.6.* # 2022-02-17: preserve for GHC 9.2, 9.4
- ghc-lib == 9.10.* # 2024-12-30: preserve for GHC 9.10/ghc-tags 1.9
- ghc-lib-parser == 9.10.* # 2024-12-26: preserve for ghc-syntax-highlighter == 0.0.12.0
- ghc-lib-parser-ex == 9.10.* # 2024-12-26: preserve for 9.10 HLS
- ghc-lib-parser == 9.2.* # 2022-02-17: preserve for GHC 8.10, 9.0
- ghc-lib-parser == 9.6.* # 2024-05-19: preserve for GHC 9.2, 9.4
- ghc-lib-parser == 9.10.* # 2024-12-26: preserve for GHC 9.10
- ghc-lib-parser-ex == 9.2.* # 2022-07-13: preserve for GHC 8.10, 9.0
- ghc-lib-parser-ex == 9.8.* # 2024-05-19: preserve for GHC 9.8
- ghc-lib-parser-ex == 9.6.* # 2024-05-19: preserve for GHC 9.2, 9.4
- ghc-lib-parser-ex == 9.10.* # 2024-12-26: preserve for 9.10 HLS
- ghc-source-gen < 0.4.6.0 # 2024-12-31: support GHC < 9.0
- ghc-tags == 1.5.* # 2023-02-18: preserve for ghc-lib == 9.2.*
- ghc-tags == 1.7.* # 2023-02-18: preserve for ghc-lib == 9.6.*
- ghc-tags == 1.8.* # 2023-02-18: preserve for ghc-lib == 9.8.*
- happy == 1.19.12 # for ghcjs
- hashable == 1.4.7.0 # allows GHC 9.10
- ansi-wl-pprint >= 0.6 && < 0.7 # 2024-03-23: required for ghcjs
- hlint == 3.4.1 # 2022-09-21: needed for hls with ghc-lib-parser 9.2
- happy == 1.20.* # for ghc-lib-parser == 9.6.*
- hasql < 1.7 # 2025-01-19: Needed for building postgrest
- hasql-dynamic-statements < 0.3.1.6 # 2025-01-19: Needed for building postgrest
- hasql-implicits < 0.2 # 2025-01-19: Needed for building postgrest
- hasql-notifications < 0.2.3 # 2025-01-19: Needed for building postgrest
- hasql-pool < 1.1 # 2025-01-19: Needed for building postgrest
- hasql-transaction < 1.1.1 # 2025-01-19: Needed for building postgrest
- hlint == 3.4.1 # 2022-09-21: preserve for ghc 8.10
- hlint == 3.6.* # 2025-04-14: needed for hls with ghc-lib-parser 9.6
- hnix-store-core < 0.7 # 2023-12-11: required by hnix-store-remote 0.6
- hspec < 2.8 # 2022-04-07: Needed for tasty-hspec 1.1.6
- hspec-core < 2.8 # 2022-04-07: Needed for tasty-hspec 1.1.6
- hspec-discover < 2.8 # 2022-04-07: Needed for tasty-hspec 1.1.6
- hspec-megaparsec == 2.2.0 # 2023-11-18: Latest version compatible with ghc 9.0, needed for HLS
- hspec-megaparsec == 2.2.0 # 2023-11-18: Latest version compatible with ghc 9.0
- hspec-meta < 2.8 # 2022-12-07: Needed for elmPackages.elm / hspec-discover
- immortal == 0.2.2.1 # required by Hasura 1.3.1, 2020-08-20
- language-docker == 11.0.0 # required by hadolint 2.12.0, 2022-11-16
- language-javascript == 0.7.0.0 # required by purescript
- lsp == 2.1.0.0 # 2024-02-28: need for dhall-lsp-server unstable
- lsp-types == 2.0.2.0 # 2024-02-28: need for dhall-lsp-server unstable
- lsp < 2.5 # 2024-07-08: need for koka
- lsp-types < 2.2 # 2024-07-08: need for koka
- lsp == 2.1.* # 2024-02-28: need for dhall-lsp-server
- lsp-types == 2.1.* # 2024-02-28: need for dhall-lsp-server and koka
- network-run == 0.4.0 # 2024-10-20: for GHC 9.10/network == 3.1.*
- optparse-applicative < 0.16 # needed for niv-0.2.19
- fourmolu == 0.14.0.0 # 2023-11-13: for ghc-lib-parser 9.6 compat
- fourmolu == 0.15.0.0 # 2024-07-07: for ghc 9.8 compat
- ormolu == 0.5.2.0 # 2023-08-08: for hls on ghc 9.0 and 9.2
- 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.4.0 # 2024-07-07: for ghc 9.8 compat
- primitive-unlifted == 0.1.3.1 # 2024-03-16: Needed for hls on ghc 9.2
- stylish-haskell == 0.14.4.0 # 2022-09-19: needed for hls on ghc 9.2
- ormolu == 0.7.7.0 # 2025-01-27: for ghc 9.10 compat
- 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
- shake-cabal < 0.2.2.3 # 2023-07-01: last version to support Cabal 3.6.*
- 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
- 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
- versions < 6 # 2024-04-22: required by spago-0.21
- weeder == 2.2.* # 2022-02-21: preserve for GHC 8.10.7
- weeder == 2.3.* # 2022-05-31: preserve for GHC 9.0.2
- weeder == 2.4.* # 2023-02-02: preserve for GHC 9.2.*
- retrie < 1.2.0.0 # 2022-12-30: required for hls on ghc < 9.2
- ghc-tags == 1.5.* # 2023-02-18: preserve for ghc-lib == 9.2.*
- ghc-tags == 1.6.* # 2023-02-18: preserve for ghc-lib == 9.4.*
- ghc-tags == 1.7.* # 2023-02-18: preserve for ghc-lib == 9.6.*
- ghc-tags == 1.8.* # 2023-02-18: preserve for ghc-lib == 9.8.*
- shake-cabal < 0.2.2.3 # 2023-07-01: last version to support Cabal 3.6.*
- algebraic-graphs < 0.7 # 2023-08-14: Needed for building weeder < 2.6.0
- fuzzyset == 0.2.4 # 2023-12-20: Needed for building postgrest > 10
- ShellCheck == 0.9.0 # 2024-03-21: pinned by haskell-ci
- versions < 6 # 2024-04-22: required by spago-0.21
- fsnotify < 0.4 # 2024-04-22: required by spago-0.21
- th-desugar == 1.16 # 2024-06-28: preserve for GHC 9.8
- singletons-th == 3.3 # 2024-06-28: preserve for GHC 9.8
- singletons-base == 3.3 # 2024-06-28: preserve for GHC 9.8
- tls < 2.1.0 # 2024-07-19: requested by darcs == 2.18.3
- extensions == 0.1.0.2 # 2024-10-20: for GHC 9.10/Cabal 3.12
- network-run == 0.4.0 # 2024-10-20: for GHC 9.10/network == 3.1.*
- ghc-source-gen < 0.4.6.0 # 2024-12-31: support GHC < 9.0
package-maintainers:
abbradar:
- Agda
alexfmpe:
- aeson-gadt-th
- android-activity
- basic-sop
- bytestring-aeson-orphans
- cli-extras
- cli-git
- cli-nix
@ -157,6 +159,7 @@ package-maintainers:
- large-records
- lens-sop
- linux-namespaces
- monoid-map
- monoidal-containers
- nix-thunk
- patch
@ -168,6 +171,8 @@ package-maintainers:
- reflex-dom
- reflex-dom-core
- reflex-gadt-api
- reflex-fsnotify
- th-abstraction
- universe
- universe-some
- vessel
@ -203,7 +208,6 @@ package-maintainers:
- nfc
dalpd:
- dhall-lsp-server
- espial
- ghc-vis
- patat
- svgcairo
@ -296,6 +300,15 @@ package-maintainers:
- sensei
malo:
- cornelis
mangoiv:
- fused-effects
- htree
- http-barf
- libsodium-bindings
- scoped-codensity
- sel
- text-display
- unclogging
maralorn:
- bluefin
- cabal-fmt
@ -344,8 +357,6 @@ package-maintainers:
- shake
nomeata:
- cabal-plan-bounds
- candid
- leb128-cereal
- lhs2tex
- rec-def
- tasty-expected-failure
@ -405,6 +416,14 @@ package-maintainers:
- taffybar
- arbtt
- lentil
sellout:
- dualizer
- no-recursion
- yaya
- yaya-containers
- yaya-hedgehog
- yaya-quickcheck
- yaya-unsafe
sheepforce:
- mpi-hs
- mpi-hs-store
@ -645,7 +664,10 @@ package-maintainers:
- minio-hs
- smtp-mail
- pdftotext
- warp-systemd
- amazonka
wolfgangwalther:
- postgres-websockets
- postgrest
unsupported-platforms:
@ -823,6 +845,8 @@ supported-platforms:
memfd: [ platforms.linux ]
midi-alsa: [ platforms.linux ] # alsa-core only supported on linux
midisurface: [ platforms.linux ] # alsa-core only supported on linux
miso-action-logger: [ javascript-ghcjs ] # https://github.com/Lermex/miso-action-logger/issues/1
miso-examples: [ javascript-ghcjs ]
OrderedBits: [ platforms.x86 ] # lacks implementations for non-x86: https://github.com/choener/OrderedBits/blob/401cbbe933b1635aa33e8e9b29a4a570b0a8f044/lib/Data/Bits/Ordered.hs#L316
reactivity: [ platforms.windows ]
reflex-libtelnet: [ platforms.linux ] # pkgs.libtelnet only supports linux

View file

@ -54,6 +54,11 @@ builtins.intersectAttrs super {
### HASKELL-LANGUAGE-SERVER SECTION ###
#######################################
cabal-add = overrideCabal (drv: {
# tests depend on executable
preCheck = ''export PATH="$PWD/dist/build/cabal-add:$PATH"'';
}) super.cabal-add;
haskell-language-server = overrideCabal (drv: {
# starting with 1.6.1.1 haskell-language-server wants to be linked dynamically
# by default. Unless we reflect this in the generic builder, GHC is going to
@ -79,7 +84,7 @@ builtins.intersectAttrs super {
self.cabal-install
pkgs.git
];
testTarget = "func-test"; # wrapper test accesses internet
testTargets = [ "func-test" ]; # wrapper test accesses internet
preCheck = ''
export PATH=$PATH:$PWD/dist/build/haskell-language-server:$PWD/dist/build/haskell-language-server-wrapper
export HOME=$TMPDIR
@ -93,8 +98,6 @@ builtins.intersectAttrs super {
ghcide = overrideCabal (drv: {
# tests depend on executable
preCheck = ''export PATH="$PWD/dist/build/ghcide:$PATH"'';
# tests disabled because they require network
doCheck = false;
}) super.ghcide;
hiedb = overrideCabal (drv: {
@ -119,42 +122,11 @@ builtins.intersectAttrs super {
+ drv.preCheck or "";
}) super.agda2lagda;
# - Disable scrypt support since the library used only works on x86 due to SSE2:
# https://github.com/informatikr/scrypt/issues/8
# - Use crypton as the encryption backend. That override becomes obsolete with
# 3.1.* since cabal2nix picks crypton by default then.
password =
let
scryptSupported = pkgs.stdenv.hostPlatform.isx86;
in
lib.pipe
(super.password.override (
{
cryptonite = self.crypton;
}
// lib.optionalAttrs (!scryptSupported) {
# scrypt requires SSE2
password = super.password.override (
lib.optionalAttrs (!(lib.meta.availableOn pkgs.stdenv.hostPlatform self.scrypt)) {
scrypt = null;
}
))
(
[
(enableCabalFlag "crypton")
(disableCabalFlag "cryptonite")
# https://github.com/cdepillabout/password/pull/84
(appendPatch ./patches/password-3.0.4.0-scrypt-conditional.patch)
(overrideCabal (drv: {
# patch doesn't apply otherwise because of revisions
prePatch =
drv.prePatch or ""
+ ''
${pkgs.buildPackages.dos2unix}/bin/dos2unix *.cabal
'';
}))
]
++ lib.optionals (!scryptSupported) [
(disableCabalFlag "scrypt")
]
);
audacity = enableCabalFlag "buildExamples" (
@ -242,43 +214,14 @@ builtins.intersectAttrs super {
});
in
{
hledger = installHledgerExtraFiles "" super.hledger;
hledger = installHledgerExtraFiles "embeddedfiles" super.hledger;
hledger-web = installHledgerExtraFiles "" (hledgerWebTestFix super.hledger-web);
hledger-ui = installHledgerExtraFiles "" super.hledger-ui;
hledger_1_40 = installHledgerExtraFiles "embeddedfiles" (
doDistribute (
super.hledger_1_40.override {
hledger-lib = self.hledger-lib_1_40;
}
)
);
hledger-ui_1_40 = installHledgerExtraFiles "" (
doDistribute (
super.hledger-ui_1_40.override {
hledger = self.hledger_1_40;
hledger-lib = self.hledger-lib_1_40;
}
)
);
hledger-web_1_40 = installHledgerExtraFiles "" (
hledgerWebTestFix (
doDistribute (
super.hledger-web_1_40.override {
hledger = self.hledger_1_40;
hledger-lib = self.hledger-lib_1_40;
}
)
)
);
}
)
hledger
hledger-web
hledger-ui
hledger_1_40
hledger-ui_1_40
hledger-web_1_40
;
cufft = overrideCabal (drv: {
@ -424,27 +367,23 @@ builtins.intersectAttrs super {
digitalocean-kzs = dontCheck super.digitalocean-kzs; # https://github.com/KazumaSATO/digitalocean-kzs/issues/1
github-types = dontCheck super.github-types; # http://hydra.cryp.to/build/1114046/nixlog/1/raw
hadoop-rpc = dontCheck super.hadoop-rpc; # http://hydra.cryp.to/build/527461/nixlog/2/raw
hjsonschema = overrideCabal (drv: { testTarget = "local"; }) super.hjsonschema;
hjsonschema = overrideCabal (drv: { testTargets = [ "local" ]; }) super.hjsonschema;
marmalade-upload = dontCheck super.marmalade-upload; # http://hydra.cryp.to/build/501904/nixlog/1/raw
mongoDB = dontCheck super.mongoDB;
network-transport-tcp = dontCheck super.network-transport-tcp;
network-transport-zeromq = dontCheck super.network-transport-zeromq; # https://github.com/tweag/network-transport-zeromq/issues/30
oidc-client = dontCheck super.oidc-client; # the spec runs openid against google.com
persistent-migration = dontCheck super.persistent-migration; # spec requires pg_ctl binary
pipes-mongodb = dontCheck super.pipes-mongodb; # http://hydra.cryp.to/build/926195/log/raw
pixiv = dontCheck super.pixiv;
raven-haskell = dontCheck super.raven-haskell; # http://hydra.cryp.to/build/502053/log/raw
riak = dontCheck super.riak; # http://hydra.cryp.to/build/498763/log/raw
scotty-binding-play = dontCheck super.scotty-binding-play;
servant-router = dontCheck super.servant-router;
serversession-backend-redis = dontCheck super.serversession-backend-redis;
slack-api = dontCheck super.slack-api; # https://github.com/mpickering/slack-api/issues/5
socket = dontCheck super.socket;
stackage = dontCheck super.stackage; # http://hydra.cryp.to/build/501867/nixlog/1/raw
textocat-api = dontCheck super.textocat-api; # http://hydra.cryp.to/build/887011/log/raw
wreq = dontCheck super.wreq; # http://hydra.cryp.to/build/501895/nixlog/1/raw
wreq-sb = dontCheck super.wreq-sb; # http://hydra.cryp.to/build/783948/log/raw
wuss = dontCheck super.wuss; # http://hydra.cryp.to/build/875964/nixlog/2/raw
download = dontCheck super.download;
http-client = dontCheck super.http-client;
http-client-openssl = dontCheck super.http-client-openssl;
@ -452,10 +391,8 @@ builtins.intersectAttrs super {
http-conduit = dontCheck super.http-conduit;
transient-universe = dontCheck super.transient-universe;
telegraph = dontCheck super.telegraph;
typed-process = dontCheck super.typed-process;
js-jquery = dontCheck super.js-jquery;
hPDB-examples = dontCheck super.hPDB-examples;
configuration-tools = dontCheck super.configuration-tools; # https://github.com/alephcloud/hs-configuration-tools/issues/40
tcp-streams = dontCheck super.tcp-streams;
holy-project = dontCheck super.holy-project;
mustache = dontCheck super.mustache;
@ -721,7 +658,7 @@ builtins.intersectAttrs super {
'';
}) super.GLUT;
libsystemd-journal = doJailbreak (addExtraLibrary pkgs.systemd super.libsystemd-journal);
libsystemd-journal = addExtraLibrary pkgs.systemd super.libsystemd-journal;
# does not specify tests in cabal file, instead has custom runTest cabal hook,
# so cabal2nix will not detect test dependencies.
@ -732,9 +669,6 @@ builtins.intersectAttrs super {
];
}) super.either-unwrap;
# https://github.com/haskell-fswatch/hfsnotify/issues/62
fsnotify = dontCheck super.fsnotify;
hs-GeoIP = super.hs-GeoIP.override { GeoIP = pkgs.geoipWithDatabase; };
discount = super.discount.override { markdown = pkgs.discount; };
@ -833,12 +767,32 @@ builtins.intersectAttrs super {
# Not running the "example" test because it requires a binary from lsps test
# suite which is not part of the output of lsp.
lsp-test = overrideCabal (old: { testTarget = "tests func-test"; }) super.lsp-test;
lsp-test = overrideCabal (old: {
testTargets = [
"tests"
"func-test"
];
}) super.lsp-test;
# the test suite attempts to run the binaries built in this package
# through $PATH but they aren't in $PATH
dhall-lsp-server = dontCheck super.dhall-lsp-server;
# Test suite requires z3 to be in PATH
copilot-libraries = overrideCabal (drv: {
testToolDepends = drv.testToolDepends or [ ] ++ [
pkgs.z3
];
}) super.copilot-libraries;
# tests need to execute the built executable
ogma-cli = overrideCabal (drv: {
preCheck =
''
export PATH=dist/build/ogma:$PATH
''
+ (drv.preCheck or "");
}) super.ogma-cli;
# Expects z3 to be on path so we replace it with a hard
#
# The tests expect additional solvers on the path, replace the
@ -864,6 +818,13 @@ builtins.intersectAttrs super {
# The test-suite requires a running PostgreSQL server.
Frames-beam = dontCheck super.Frames-beam;
# Test suite requires yices to be in PATH
crucible-symio = overrideCabal (drv: {
testToolDepends = drv.testToolDepends or [ ] ++ [
pkgs.yices
];
}) super.crucible-symio;
# Compile manpages (which are in RST and are compiled with Sphinx).
futhark =
overrideCabal
@ -912,6 +873,15 @@ builtins.intersectAttrs super {
executableSystemDepends = runtimeExecDeps;
enableSharedExecutables = false;
# Unnecessary for Setup.hs, but we reuse the setup package db
# for the installation utilities.
setupHaskellDepends = drv.setupHaskellDepends or [ ] ++ [
self.buildHaskellPackages.unix-compat
self.buildHaskellPackages.IfElse
self.buildHaskellPackages.QuickCheck
self.buildHaskellPackages.data-default
];
preConfigure =
drv.preConfigure or ""
+ ''
@ -995,9 +965,6 @@ builtins.intersectAttrs super {
# The test suite has undeclared dependencies on git.
githash = dontCheck super.githash;
# Avoid infitite recursion with yaya.
yaya-hedgehog = super.yaya-hedgehog.override { yaya = dontCheck self.yaya; };
# Avoid infitite recursion with tonatona.
tonaparser = dontCheck super.tonaparser;
@ -1048,7 +1015,8 @@ builtins.intersectAttrs super {
in
lib.pipe
(super.spago.override {
versions = self.versions_5_0_5;
# base <4.19, text <2.1
versions = doJailbreak self.versions_5_0_5;
fsnotify = self.fsnotify_0_3_0_1;
})
[
@ -1109,7 +1077,6 @@ builtins.intersectAttrs super {
# break infinite recursion with base-orphans
primitive = dontCheck super.primitive;
primitive_0_7_1_0 = dontCheck super.primitive_0_7_1_0;
primitive_0_9_0_0 = dontCheck super.primitive_0_9_0_0;
cut-the-crap =
let
@ -1126,7 +1093,7 @@ builtins.intersectAttrs super {
}) (addBuildTool pkgs.buildPackages.makeWrapper super.cut-the-crap);
# Compiling the readme throws errors and has no purpose in nixpkgs
aeson-gadt-th = disableCabalFlag "build-readme" (doJailbreak super.aeson-gadt-th);
aeson-gadt-th = disableCabalFlag "build-readme" super.aeson-gadt-th;
# Fix compilation of Setup.hs by removing the module declaration.
# See: https://github.com/tippenein/guid/issues/1
@ -1160,6 +1127,9 @@ builtins.intersectAttrs super {
retrie_1_2_0_0 = addTestToolDepends [ pkgs.git pkgs.mercurial ] super.retrie_1_2_0_0;
retrie_1_2_1_1 = addTestToolDepends [ pkgs.git pkgs.mercurial ] super.retrie_1_2_1_1;
# Just an executable
ret = enableSeparateBinOutput super.ret;
# there are three very heavy test suites that need external repos, one requires network access
hevm = dontCheck super.hevm;
@ -1241,7 +1211,7 @@ builtins.intersectAttrs super {
substituteInPlace src/Nix/Diff/Types.hs \
--replace "{-# OPTIONS_GHC -Wno-orphans #-}" "{-# OPTIONS_GHC -Wno-orphans -fconstraint-solver-iterations=0 #-}"
'';
}) (doJailbreak (dontCheck super.nix-diff));
}) (dontCheck super.nix-diff);
# mockery's tests depend on hspec-discover which dependso on mockery for its tests
mockery = dontCheck super.mockery;
@ -1312,7 +1282,7 @@ builtins.intersectAttrs super {
rel8 = pkgs.lib.pipe super.rel8 [
(addTestToolDepend pkgs.postgresql)
# https://github.com/NixOS/nixpkgs/issues/198495
(dontCheckIf (!pkgs.postgresql.doCheck))
(dontCheckIf (!pkgs.postgresql.doInstallCheck))
];
cloudy = pkgs.lib.pipe super.cloudy [
@ -1409,10 +1379,6 @@ builtins.intersectAttrs super {
)
);
# Test suite is just the default example executable which doesn't work if not
# executed by Setup.hs, but works if started on a proper TTY
isocline = dontCheck super.isocline;
# Some hash implementations are x86 only, but part of the test suite.
# So executing and building it on non-x86 platforms will always fail.
hashes = dontCheckIf (!pkgs.stdenv.hostPlatform.isx86) super.hashes;
@ -1458,8 +1424,8 @@ builtins.intersectAttrs super {
builtins.mapAttrs (_: fourmoluTestFix) super
)
fourmolu
fourmolu_0_15_0_0
fourmolu_0_16_2_0
fourmolu_0_14_0_0
fourmolu_0_16_0_0
;
# Test suite needs to execute 'disco' binary
@ -1475,7 +1441,7 @@ builtins.intersectAttrs super {
"!/oeis/"
];
# disco-examples needs network access
testTarget = "disco-tests";
testTargets = [ "disco-tests" ];
}) super.disco;
# Apply a patch which hardcodes the store path of graphviz instead of using
@ -1505,17 +1471,39 @@ builtins.intersectAttrs super {
# Test have become more fussy in >= 2.0. We need to have which available for
# tests to succeed and the makefile no longer finds happy by itself.
happy_2_1_3 = overrideCabal (drv: {
inherit
(lib.mapAttrs
(
_:
overrideCabal (drv: {
buildTools = drv.buildTools or [ ] ++ [ pkgs.buildPackages.which ];
preCheck =
drv.preCheck or ""
+ ''
export PATH="$PWD/dist/build/happy:$PATH"
'';
}) super.happy_2_1_3;
})
)
{
inherit (super) happy;
happy_2_1_5 = super.happy_2_1_5.override {
happy-lib = self.happy-lib_2_1_5;
};
}
)
happy_2_1_5
happy
;
# Additionally install documentation
jacinda = overrideCabal (drv: {
enableSeparateDocOutput = true;
# Test suite is broken by DOS line endings inserted by Hackage revisions
# https://github.com/vmchale/jacinda/issues/5
postPatch = ''
${drv.postPatch or ""}
${pkgs.buildPackages.dos2unix}/bin/dos2unix *.cabal
'';
postInstall = ''
${drv.postInstall or ""}
@ -1565,9 +1553,9 @@ builtins.intersectAttrs super {
# is not commonly installed on systems, so we add it to PATH. Closure size
# penalty is about 10MB at the time of writing this (2022-08-20).
cabal-install = overrideCabal (old: {
executableToolDepends = [
buildTools = [
pkgs.buildPackages.makeWrapper
] ++ old.buildToolDepends or [ ];
] ++ old.buildTools or [ ];
postInstall =
old.postInstall
+ ''
@ -1639,14 +1627,21 @@ builtins.intersectAttrs super {
}
) super)
gi-javascriptcore
gi-javascriptcore4
gi-javascriptcore6
gi-webkit2webextension
gi-gtk_4_0_11
gi-gdk_4_0_9
gi-gtk_4_0_12
gi-gdk_4_0_10
gi-gdk4
gi-gdkx114
gi-gtk4
gi-gtksource5
gi-gsk
gi-adwaita
sdl2-ttf
sdl2
dear-imgui
libremidi
;
webkit2gtk3-javascriptcore = lib.pipe super.webkit2gtk3-javascriptcore [
@ -1673,7 +1668,7 @@ builtins.intersectAttrs super {
mpiImpl = pkgs.mpi.pname;
disableUnused = with builtins; map disableCabalFlag (filter (n: n != mpiImpl) validMpi);
in
lib.pipe (super.mpi-hs_0_7_3_1.override { ompi = pkgs.mpi; }) (
lib.pipe (super.mpi-hs.override { ompi = pkgs.mpi; }) (
[
(addTestToolDepends [
pkgs.openssh
@ -1696,13 +1691,17 @@ builtins.intersectAttrs super {
mpi-hs-binary
;
postgresql-libpq = overrideCabal (drv: {
# Using use-pkg-config flag, because pg_config won't work when cross-compiling.
configureFlags = drv.configureFlags or [ ] ++ [ "-fuse-pkg-config" ];
# Move postgresql from SystemDepends to PkgconfigDepends
libraryPkgconfigDepends = drv.librarySystemDepends;
librarySystemDepends = [ ];
}) super.postgresql-libpq;
postgresql-libpq = lib.pipe super.postgresql-libpq [
(x: x.override { postgresql-libpq-configure = null; })
(appendConfigureFlag "-fuse-pkg-config")
(addBuildDepend self.postgresql-libpq-pkgconfig)
];
postgresql-libpq-configure = overrideCabal (drv: {
librarySystemDepends = (drv.librarySystemDepends or [ ]) ++ [ pkgs.libpq ];
}) super.postgresql-libpq-configure;
postgresql-libpq-pkgconfig = addPkgconfigDepend pkgs.libpq super.postgresql-libpq-pkgconfig;
# Test failure is related to a GHC implementation detail of primitives and doesn't
# cause actual problems in dependent packages, see https://github.com/lehins/pvar/issues/4
@ -1718,16 +1717,57 @@ builtins.intersectAttrs super {
xmobar = enableSeparateBinOutput super.xmobar;
# 2024-08-09: Disable some cabal-doctest tests pending further investigation.
doctest = overrideCabal (drv: {
inherit
(lib.mapAttrs (
_: doctest:
lib.pipe doctest [
(overrideCabal (drv: {
patches = drv.patches or [ ] ++ [
(pkgs.fetchpatch {
name = "doctest-0.23.0-ghc-9.12.patch";
url = "https://github.com/sol/doctest/commit/77373c5d84cd5e59ea86ec30b9ada874f50fad9e.patch";
sha256 = "07dx99lna17fni1ccbklijx1ckkf2p4kk9wvkwib0ihmra70zpn2";
includes = [ "test/**" ];
})
];
testFlags = drv.testFlags or [ ] ++ [
# These tests require cabal-install
# These tests require cabal-install (would cause infinite recursion)
"--skip=/Cabal.Options"
"--skip=/Cabal.Paths/paths"
"--skip=/Cabal.ReplOptions" # >= 0.23
];
}) super.doctest;
}))
doDistribute
]
) { inherit (super) doctest doctest_0_23_0; })
doctest
doctest_0_23_0
;
# tracked upstream: https://github.com/snapframework/openssl-streams/pull/11
# certificate used only 1024 Bit RSA key and SHA-1, which is not allowed in OpenSSL 3.1+
# security level 2
openssl-streams = appendPatch ./patches/openssl-streams-cert.patch super.openssl-streams;
libtorch-ffi =
appendConfigureFlags
(
[
"--extra-include-dirs=${lib.getDev pkgs.libtorch-bin}/include/torch/csrc/api/include"
]
++ (lib.optionals pkgs.config.cudaSupport [
"-f"
"cuda"
])
)
(
super.libtorch-ffi.override ({
c10 = pkgs.libtorch-bin;
torch = pkgs.libtorch-bin;
torch_cpu = pkgs.libtorch-bin;
})
);
# Upper bounds of text and bytestring too strict: https://github.com/zsedem/haskell-cpython/pull/24
cpython = doJailbreak super.cpython;
}

View file

@ -23,7 +23,7 @@ let
});
in
{
tensorflow-proto = doJailbreak (setTensorflowSourceRoot "tensorflow-proto" super.tensorflow-proto);
tensorflow-proto = setTensorflowSourceRoot "tensorflow-proto" super.tensorflow-proto;
tensorflow = overrideCabal (drv: {
libraryHaskellDepends = drv.libraryHaskellDepends ++ [ self.vector-split ];

View file

@ -126,7 +126,9 @@ in
benchmarkHaskellDepends ? [ ],
benchmarkSystemDepends ? [ ],
benchmarkFrameworkDepends ? [ ],
# testTarget is deprecated. Use testTargets instead.
testTarget ? "",
testTargets ? lib.strings.splitString " " testTarget,
testFlags ? [ ],
broken ? false,
preCompileBuildDriver ? null,
@ -537,6 +539,11 @@ let
exec "$@"
'';
testTargetsString =
lib.warnIf (testTarget != "")
"haskellPackages.mkDerivation: testTarget is deprecated. Use testTargets instead"
(lib.concatStringsSep " " testTargets);
in
lib.fix (
drv:
@ -765,7 +772,7 @@ lib.fix (
${lib.escapeShellArgs (builtins.map (opt: "--test-option=${opt}") testFlags)}
)
export NIX_GHC_PACKAGE_PATH_FOR_TEST="''${NIX_GHC_PACKAGE_PATH_FOR_TEST:-$packageConfDir:}"
${setupCommand} test ${testTarget} $checkFlags ''${checkFlagsArray:+"''${checkFlagsArray[@]}"}
${setupCommand} test ${testTargetsString} $checkFlags ''${checkFlagsArray:+"''${checkFlagsArray[@]}"}
runHook postCheck
'';

File diff suppressed because it is too large Load diff

View file

@ -41,17 +41,6 @@ self: super:
nix-linter = self.callPackage ../../development/tools/analysis/nix-linter { };
# hasura graphql-engine is not released to hackage.
# https://github.com/hasura/graphql-engine/issues/7391
ci-info = self.callPackage ../misc/haskell/hasura/ci-info.nix { };
pg-client = self.callPackage ../misc/haskell/hasura/pg-client.nix { };
graphql-parser = self.callPackage ../misc/haskell/hasura/graphql-parser.nix { };
graphql-engine = self.callPackage ../misc/haskell/hasura/graphql-engine.nix { };
kriti-lang = self.callPackage ../misc/haskell/hasura/kriti-lang.nix { };
hasura-resource-pool = self.callPackage ../misc/haskell/hasura/pool.nix { };
hasura-ekg-core = self.callPackage ../misc/haskell/hasura/ekg-core.nix { };
hasura-ekg-json = self.callPackage ../misc/haskell/hasura/ekg-json.nix { };
# Unofficial fork until PRs are merged https://github.com/pcapriotti/optparse-applicative/pulls/roberth
# cabal2nix --maintainer roberth https://github.com/hercules-ci/optparse-applicative.git > pkgs/development/misc/haskell/hercules-ci-optparse-applicative.nix
hercules-ci-optparse-applicative =

View file

@ -0,0 +1,11 @@
--- a/cabal-install.cabal
+++ b/cabal-install.cabal
@@ -261,7 +261,7 @@
-- newer directory for symlinks
build-depends: Win32 >= 2.8 && < 3, directory >=1.3.1.0
else
- build-depends: unix >= 2.5 && < 2.8 || >= 2.8.6.0 && < 2.9
+ build-depends: unix >= 2.5 && < 2.9
if flag(lukko)
build-depends: lukko >= 0.1 && <0.2

View file

@ -2,12 +2,12 @@ diff --git a/Utility/FreeDesktop.hs b/Utility/FreeDesktop.hs
index 896b89b991..6cbb4f90ae 100644
--- a/Utility/FreeDesktop.hs
+++ b/Utility/FreeDesktop.hs
@@ -112,7 +112,7 @@ desktopfile f = f ++ ".desktop"
@@ -106,7 +106,7 @@ desktopfile f = toOsPath $ f ++ ".desktop"
{- Directory used for installation of system wide data files.. -}
systemDataDir :: FilePath
-systemDataDir = "/usr/share"
+systemDataDir = "/share"
systemDataDir :: OsPath
-systemDataDir = literalOsPath "/usr/share"
+systemDataDir = literalOsPath "/share"
{- Directory used for installation of system wide config files. -}
systemConfigDir :: FilePath
systemConfigDir :: OsPath

View file

@ -1,26 +0,0 @@
diff --git a/gogol-core.cabal b/gogol-core.cabal
index 4c47988..caa4796 100644
--- a/gogol-core.cabal
+++ b/gogol-core.cabal
@@ -62,7 +62,7 @@ library
, lens >= 4.4
, resourcet >= 1.1
, scientific >= 0.3
- , servant >= 0.4.4
+ , servant >= 0.14.1
, text >= 1.1
, unordered-containers >= 0.2.5
diff --git a/src/Network/Google/Prelude.hs b/src/Network/Google/Prelude.hs
index a4ad9de..795c690 100644
--- a/src/Network/Google/Prelude.hs
+++ b/src/Network/Google/Prelude.hs
@@ -28,7 +28,7 @@ import Network.HTTP.Client as Export (RequestBody)
import Numeric.Natural as Export (Natural)
import Prelude as Export hiding (product, span, any, Word)
import Servant.API as Export hiding (Headers, Link, getResponse, Stream, ResponseHeader, Header, header)
-import Servant.Utils.Links as Export hiding (Link)
+import Servant.Links as Export hiding (Link)
import Web.HttpApiData as Export (FromHttpApiData (..), ToHttpApiData (..))
import Network.Google.Data.Bytes as Export

View file

@ -1,21 +0,0 @@
diff --git a/password/password.cabal b/password/password.cabal
index 506457e..8fa978b 100644
--- a/password.cabal
+++ b/password.cabal
@@ -186,6 +186,8 @@ test-suite password-tasty
other-modules:
Scrypt
Data.Password.Scrypt
+ build-depends:
+ scrypt
ghc-options:
-threaded -O2 -rtsopts -with-rtsopts=-N
build-depends:
@@ -195,7 +197,6 @@ test-suite password-tasty
, bytestring
, memory
, quickcheck-instances
- , scrypt
, tasty
, tasty-hunit
, tasty-quickcheck

View file

@ -1,6 +1,7 @@
{
stdenv,
lib,
testers,
buildPackages,
fetchFromGitLab,
python3,
@ -253,7 +254,12 @@ stdenv.mkDerivation (finalAttrs: {
moveToOutput "bin/pw-jack" "$jack"
'';
passthru.tests.installed-tests = nixosTests.installed-tests.pipewire;
passthru.tests = {
installed-tests = nixosTests.installed-tests.pipewire;
pkg-config = testers.hasPkgConfigModules {
package = finalAttrs.finalPackage;
};
};
meta = with lib; {
description = "Server and user space API to deal with multimedia pipelines";
@ -265,5 +271,9 @@ stdenv.mkDerivation (finalAttrs: {
kranzes
k900
];
pkgConfigModules = [
"libpipewire-0.3"
"libspa-0.2"
];
};
})

View file

@ -1,7 +1,7 @@
{
stdenv,
lib,
pandoc_3_6,
pandoc,
typst,
esbuild,
deno,
@ -39,7 +39,7 @@ stdenv.mkDerivation (final: {
preFixup = ''
wrapProgram $out/bin/quarto \
--prefix QUARTO_DENO : ${lib.getExe deno} \
--prefix QUARTO_PANDOC : ${lib.getExe pandoc_3_6} \
--prefix QUARTO_PANDOC : ${lib.getExe pandoc} \
--prefix QUARTO_ESBUILD : ${lib.getExe esbuild} \
--prefix QUARTO_DART_SASS : ${lib.getExe dart-sass} \
--prefix QUARTO_TYPST : ${lib.getExe typst} \

View file

@ -1,41 +0,0 @@
# This has been automatically generated by the script
# ./update.sh. This should not be changed by hand.
{
mkDerivation,
aeson,
aeson-casing,
base,
fetchgit,
hashable,
hpack,
lib,
template-haskell,
text,
th-lift-instances,
unordered-containers,
}:
mkDerivation {
pname = "ci-info";
version = "0.1.0.0";
src = fetchgit {
url = "https://github.com/hasura/ci-info-hs.git";
sha256 = "018vfyg0y2sn497nigjrcs6b1v3i9bna06dsbvgr6wjikcl6dhh4";
rev = "68247a83738ac4bb9f719f0e4213aeb7be9565cf";
fetchSubmodules = true;
};
libraryHaskellDepends = [
aeson
aeson-casing
base
hashable
template-haskell
text
th-lift-instances
unordered-containers
];
libraryToolDepends = [ hpack ];
prePatch = "hpack";
homepage = "https://github.com/hasura/ci-info-hs#readme";
license = lib.licenses.mit;
maintainers = with lib.maintainers; [ lassulus ];
}

View file

@ -1,75 +0,0 @@
# This has been automatically generated by the script
# ./update.sh. This should not be changed by hand.
{
mkDerivation,
async,
atomic-primops,
base,
containers,
criterion,
fetchgit,
ghc-prim,
hashable,
hspec,
hspec-smallcheck,
HUnit,
inspection-testing,
lib,
markdown-unlit,
primitive,
QuickCheck,
smallcheck,
text,
unordered-containers,
}:
mkDerivation {
pname = "ekg-core";
version = "0.1.1.7";
src = fetchgit {
url = "https://github.com/hasura/ekg-core.git";
sha256 = "1syb87iav3fgj6vqjh1izdvw4g0l4mngcyhvcg2nazisw3l685z6";
rev = "b0cdc337ca2a52e392d427916ba3e28246b396c0";
fetchSubmodules = true;
};
libraryHaskellDepends = [
atomic-primops
base
containers
ghc-prim
hashable
inspection-testing
primitive
text
unordered-containers
];
testHaskellDepends = [
async
atomic-primops
base
containers
ghc-prim
hashable
hspec
hspec-smallcheck
HUnit
inspection-testing
markdown-unlit
primitive
QuickCheck
smallcheck
text
unordered-containers
];
testToolDepends = [ markdown-unlit ];
benchmarkHaskellDepends = [
base
criterion
];
doHaddock = false;
homepage = "https://github.com/tibbe/ekg-core";
description = "Tracking of system metrics";
license = lib.licenses.bsd3;
hydraPlatforms = lib.platforms.none;
maintainers = with lib.maintainers; [ lassulus ];
broken = true;
}

View file

@ -1,46 +0,0 @@
# This has been automatically generated by the script
# ./update.sh. This should not be changed by hand.
{
mkDerivation,
aeson,
base,
ekg-core,
fetchgit,
hspec,
lib,
text,
unordered-containers,
vector,
}:
mkDerivation {
pname = "ekg-json";
version = "0.1.0.7";
src = fetchgit {
url = "https://github.com/hasura/ekg-json.git";
sha256 = "17kd2f1695dmf5l95iz1w86hapc4f1gfrd0ld3ivffa2q5vxbi70";
rev = "d1c5031b49a5559cf4b4f6beb0238b872890a48c";
fetchSubmodules = true;
};
libraryHaskellDepends = [
aeson
base
ekg-core
text
unordered-containers
vector
];
testHaskellDepends = [
aeson
base
ekg-core
hspec
text
unordered-containers
];
homepage = "https://github.com/tibbe/ekg-json";
description = "JSON encoding of ekg metrics";
license = lib.licenses.bsd3;
hydraPlatforms = lib.platforms.none;
maintainers = with lib.maintainers; [ lassulus ];
broken = true;
}

View file

@ -1,406 +0,0 @@
# This has been automatically generated by the script
# ./update.sh. This should not be changed by hand.
{
mkDerivation,
aeson,
aeson-casing,
aeson-qq,
ansi-wl-pprint,
asn1-encoding,
asn1-types,
async,
attoparsec,
attoparsec-iso8601,
auto-update,
base,
base16-bytestring,
base64-bytestring,
binary,
byteorder,
bytestring,
case-insensitive,
ci-info,
conduit,
connection,
containers,
cron,
cryptonite,
data-default-class,
data-has,
deepseq,
dependent-map,
dependent-sum,
directory,
either,
ekg-core,
ekg-json,
exceptions,
fast-logger,
fetchgit,
file-embed,
filepath,
ghc-heap-view,
graphql-parser,
hashable,
hashable-time,
haskell-src-meta,
hedgehog,
hspec,
hspec-core,
hspec-discover,
hspec-expectations,
hspec-expectations-lifted,
hspec-hedgehog,
hspec-wai,
hspec-wai-json,
http-api-data,
http-client,
http-client-tls,
http-conduit,
http-media,
http-types,
immortal,
insert-ordered-containers,
jose,
kan-extensions,
kriti-lang,
lens,
lens-aeson,
lib,
libyaml,
lifted-async,
lifted-base,
list-t,
memory,
mime-types,
mmorph,
monad-control,
monad-logger,
monad-loops,
monad-validate,
mtl,
mustache,
mysql,
mysql-simple,
natural-transformation,
network,
network-uri,
odbc,
openapi3,
optparse-applicative,
optparse-generic,
parsec,
pem,
pg-client,
postgresql-binary,
postgresql-libpq,
postgresql-simple,
pretty-simple,
process,
profunctors,
psqueues,
QuickCheck,
quickcheck-instances,
random,
regex-tdfa,
resource-pool,
resourcet,
retry,
safe,
safe-exceptions,
scientific,
semialign,
semigroups,
semver,
shakespeare,
some,
split,
Spock-core,
stm,
stm-containers,
tagged,
template-haskell,
text,
text-builder,
text-conversions,
th-lift,
th-lift-instances,
these,
time,
tls,
tmp-postgres,
transformers,
transformers-base,
typed-process,
unix,
unliftio-core,
unordered-containers,
uri-bytestring,
uri-encode,
url,
utf8-string,
uuid,
validation,
vector,
vector-instances,
wai,
wai-extra,
warp,
websockets,
witch,
wreq,
x509,
x509-store,
x509-system,
x509-validation,
yaml,
zlib,
}:
mkDerivation {
pname = "graphql-engine";
version = "1.0.0";
src = fetchgit {
url = "https://github.com/hasura/graphql-engine.git";
sha256 = "1r19qw2wxzmngb6sjpin3dk6i5r491brcb0ir4g8kw9d0ic90hpy";
rev = "1349e6cdcfdef4b06593b48fe8e2e51b9f9c94e9";
fetchSubmodules = true;
};
postUnpack = "sourceRoot+=/server; echo source root reset to $sourceRoot";
isLibrary = true;
isExecutable = true;
libraryHaskellDepends = [
aeson
aeson-casing
ansi-wl-pprint
asn1-encoding
asn1-types
async
attoparsec
attoparsec-iso8601
auto-update
base
base16-bytestring
base64-bytestring
binary
byteorder
bytestring
case-insensitive
ci-info
connection
containers
cron
cryptonite
data-default-class
data-has
deepseq
dependent-map
dependent-sum
directory
either
ekg-core
ekg-json
exceptions
fast-logger
file-embed
filepath
ghc-heap-view
graphql-parser
hashable
hashable-time
http-api-data
http-client
http-client-tls
http-conduit
http-media
http-types
immortal
insert-ordered-containers
jose
kan-extensions
kriti-lang
lens
lens-aeson
lifted-async
lifted-base
list-t
memory
mime-types
mmorph
monad-control
monad-loops
monad-validate
mtl
mustache
mysql
mysql-simple
network
network-uri
odbc
openapi3
optparse-applicative
optparse-generic
parsec
pem
pg-client
postgresql-binary
postgresql-libpq
pretty-simple
process
profunctors
psqueues
QuickCheck
quickcheck-instances
random
regex-tdfa
resource-pool
retry
safe-exceptions
scientific
semialign
semigroups
semver
shakespeare
some
split
Spock-core
stm
stm-containers
tagged
template-haskell
text
text-builder
text-conversions
these
time
tls
transformers
transformers-base
unix
unordered-containers
uri-bytestring
uri-encode
url
utf8-string
uuid
validation
vector
vector-instances
wai
warp
websockets
witch
wreq
x509
x509-store
x509-system
x509-validation
yaml
zlib
];
executableHaskellDepends = [
base
bytestring
ekg-core
kan-extensions
pg-client
text
text-conversions
time
unix
];
testHaskellDepends = [
aeson
aeson-casing
aeson-qq
async
base
bytestring
case-insensitive
conduit
containers
cron
dependent-map
dependent-sum
ekg-core
exceptions
graphql-parser
haskell-src-meta
hedgehog
hspec
hspec-core
hspec-discover
hspec-expectations
hspec-expectations-lifted
hspec-hedgehog
hspec-wai
hspec-wai-json
http-client
http-client-tls
http-conduit
http-types
insert-ordered-containers
jose
kan-extensions
lens
lens-aeson
libyaml
lifted-base
mmorph
monad-control
monad-logger
mtl
mysql
mysql-simple
natural-transformation
network
network-uri
odbc
optparse-applicative
parsec
pg-client
postgresql-libpq
postgresql-simple
process
QuickCheck
resource-pool
resourcet
safe
safe-exceptions
scientific
shakespeare
split
Spock-core
stm
template-haskell
text
text-conversions
th-lift
th-lift-instances
time
tmp-postgres
transformers
transformers-base
typed-process
unix
unliftio-core
unordered-containers
utf8-string
vector
wai
wai-extra
warp
websockets
yaml
];
testToolDepends = [ hspec-discover ];
doCheck = false;
homepage = "https://www.hasura.io";
description = "GraphQL API over Postgres";
license = lib.licenses.asl20;
maintainers = with lib.maintainers; [ lassulus ];
# Needs to be updated for aeson-2.0
# https://github.com/hasura/graphql-engine/issues/8369
hydraPlatforms = lib.platforms.none;
broken = true;
}

View file

@ -1,74 +0,0 @@
# This has been automatically generated by the script
# ./update.sh. This should not be changed by hand.
{
mkDerivation,
aeson,
attoparsec,
base,
bytestring,
deepseq,
fetchgit,
hashable,
hedgehog,
lib,
prettyprinter,
scientific,
tasty-bench,
template-haskell,
text,
text-builder,
th-lift-instances,
unordered-containers,
}:
mkDerivation {
pname = "graphql-parser";
version = "0.2.0.0";
src = fetchgit {
url = "https://github.com/hasura/graphql-parser-hs.git";
sha256 = "1xprr5wdhcfnbggkygz71v3za1mmkqv5mbm7h16kpsrhm1m9mpx8";
rev = "c311bc15b8d8cef28a846d1d81b0bcc1d59bd956";
fetchSubmodules = true;
};
libraryHaskellDepends = [
aeson
attoparsec
base
bytestring
deepseq
hashable
hedgehog
prettyprinter
scientific
template-haskell
text
text-builder
th-lift-instances
unordered-containers
];
testHaskellDepends = [
attoparsec
base
bytestring
hedgehog
prettyprinter
text
text-builder
];
benchmarkHaskellDepends = [
base
bytestring
prettyprinter
tasty-bench
text
text-builder
];
homepage = "https://github.com/hasura/graphql-parser-hs";
description = "Native Haskell GraphQL parser";
license = lib.licenses.bsd3;
maintainers = with lib.maintainers; [ lassulus ];
# Needs to be updated for aeson-2.0
# https://github.com/hasura/graphql-engine/issues/8369
hydraPlatforms = lib.platforms.none;
broken = true;
}

View file

@ -1,119 +0,0 @@
# This has been automatically generated by the script
# ./update.sh. This should not be changed by hand.
{
mkDerivation,
aeson,
aeson-pretty,
alex,
array,
base,
bytestring,
containers,
directory,
fetchgit,
filepath,
generic-arbitrary,
happy,
hspec,
hspec-core,
hspec-golden,
lens,
lens-aeson,
lib,
megaparsec,
mtl,
network-uri,
optparse-applicative,
parsec,
parser-combinators,
pretty-simple,
prettyprinter,
QuickCheck,
raw-strings-qq,
safe-exceptions,
scientific,
text,
unordered-containers,
utf8-string,
vector,
}:
mkDerivation {
pname = "kriti-lang";
version = "0.3.1";
src = fetchgit {
url = "https://github.com/hasura/kriti-lang.git";
sha256 = "09v31xp8gkc0p0gfysxyd8yb7lyb1vpgzq8550h3s3msjbapr7pj";
rev = "0f0b153b93af5dc6c6e995c016ca4562e8438cec";
fetchSubmodules = true;
};
isLibrary = true;
isExecutable = true;
libraryHaskellDepends = [
aeson
array
base
bytestring
containers
lens
megaparsec
mtl
network-uri
optparse-applicative
parser-combinators
prettyprinter
scientific
text
unordered-containers
utf8-string
vector
];
libraryToolDepends = [
alex
happy
];
executableHaskellDepends = [
aeson
base
bytestring
containers
mtl
optparse-applicative
prettyprinter
text
utf8-string
];
testHaskellDepends = [
aeson
aeson-pretty
base
bytestring
containers
directory
filepath
generic-arbitrary
hspec
hspec-core
hspec-golden
lens
lens-aeson
mtl
optparse-applicative
parsec
pretty-simple
prettyprinter
QuickCheck
raw-strings-qq
safe-exceptions
scientific
text
unordered-containers
utf8-string
vector
];
license = lib.licenses.asl20;
maintainers = with lib.maintainers; [ lassulus ];
# Does not compile with ghc-9.2
hydraPlatforms = lib.platforms.none;
broken = true;
}

View file

@ -1,100 +0,0 @@
# This has been automatically generated by the script
# ./update.sh. This should not be changed by hand.
{
mkDerivation,
aeson,
aeson-casing,
async,
attoparsec,
base,
bytestring,
ekg-core,
fetchgit,
file-embed,
hashable,
hashtables,
hasql,
hasql-pool,
hasql-transaction,
hspec,
lib,
mmorph,
monad-control,
mtl,
postgresql-binary,
postgresql-libpq,
resource-pool,
retry,
safe-exceptions,
scientific,
tasty-bench,
template-haskell,
text,
text-builder,
time,
transformers-base,
uuid,
vector,
}:
mkDerivation {
pname = "pg-client";
version = "0.1.0";
src = fetchgit {
url = "https://github.com/hasura/pg-client-hs.git";
sha256 = "0ga2bj0mfng25c8kxsvi8i13pnanbnhahxvbq8ijl0bysd41g7zi";
rev = "09b40ad8e5d16a78f5d91fe2306676f52caadbc8";
fetchSubmodules = true;
};
libraryHaskellDepends = [
aeson
aeson-casing
async
attoparsec
base
bytestring
ekg-core
hashable
hashtables
mmorph
monad-control
mtl
postgresql-binary
postgresql-libpq
resource-pool
retry
safe-exceptions
scientific
template-haskell
text
text-builder
time
transformers-base
uuid
vector
];
testHaskellDepends = [
async
base
bytestring
hspec
mtl
safe-exceptions
time
];
benchmarkHaskellDepends = [
base
bytestring
file-embed
hasql
hasql-pool
hasql-transaction
mtl
tasty-bench
text
];
homepage = "https://github.com/hasura/platform";
license = lib.licenses.asl20;
hydraPlatforms = lib.platforms.none;
maintainers = with lib.maintainers; [ lassulus ];
broken = true;
}

View file

@ -1,44 +0,0 @@
# This has been automatically generated by the script
# ./update.sh. This should not be changed by hand.
{
mkDerivation,
base,
fetchgit,
hashable,
hspec,
lib,
monad-control,
stm,
time,
transformers,
transformers-base,
vector,
}:
mkDerivation {
pname = "resource-pool";
version = "0.2.3.2";
src = fetchgit {
url = "https://github.com/hasura/pool.git";
sha256 = "02wa32fl5wq5fk59id54xmxiqjl564r4rhsc79xsgf2j2spj0v94";
rev = "dc56753338e7b61220a09bed0469c6dcc5e9fb52";
fetchSubmodules = true;
};
libraryHaskellDepends = [
base
hashable
monad-control
stm
time
transformers
transformers-base
vector
];
testHaskellDepends = [
base
hspec
];
homepage = "https://github.com/bos/pool";
description = "High-performance striped resource pooling implementation";
license = lib.licenses.bsd3;
maintainers = with lib.maintainers; [ lassulus ];
}

View file

@ -1,95 +0,0 @@
#!/usr/bin/env nix-shell
#!nix-shell -i bash -p cabal2nix curl jq -I nixpkgs=.
#
# This script will update the hasura derivations to the latest version using
# cabal2nix.
#
# Note that you should always try building hasura graphql-engine after updating it here, since
# some of the overrides in pkgs/development/haskell/configuration-nix.nix may
# need to be updated/changed.
set -eo pipefail
# This is the directory of this update.sh script.
script_dir="$( cd "$( dirname "${BASH_SOURCE[0]}" )" >/dev/null 2>&1 && pwd )"
# graphql-engine derivation created with cabal2nix.
engine_derivation_file="${script_dir}/graphql-engine.nix"
parser_derivation_file="${script_dir}/graphql-parser.nix"
ciinfo_derivation_file="${script_dir}/ci-info.nix"
pgclient_derivation_file="${script_dir}/pg-client.nix"
pool_derivation_file="${script_dir}/pool.nix"
ekgcore_derivation_file="${script_dir}/ekg-core.nix"
ekgjson_derivation_file="${script_dir}/ekg-json.nix"
kritilang_derivation_file="${script_dir}/kriti-lang.nix"
# TODO: get current revision of graphql-engine in Nixpkgs.
# old_version="$(sed -En 's/.*\bversion = "(.*?)".*/\1/p' "$engine_derivation_file")"
# This is the latest release version of graphql-engine on GitHub.
new_version=$(curl --silent "https://api.github.com/repos/hasura/graphql-engine/releases" | jq 'map(select(.prerelease | not)) | .[0].tag_name' --raw-output)
echo "Running cabal2nix and outputting to ${engine_derivation_file}..."
echo "# This has been automatically generated by the script" > "$engine_derivation_file"
echo "# ./update.sh. This should not be changed by hand." >> "$engine_derivation_file"
cabal2nix --revision "$new_version" --subpath server --maintainer lassulus --no-check "https://github.com/hasura/graphql-engine.git" >> "$engine_derivation_file"
echo "Running cabal2nix and outputting to ${parser_derivation_file}..."
echo "# This has been automatically generated by the script" > "$parser_derivation_file"
echo "# ./update.sh. This should not be changed by hand." >> "$parser_derivation_file"
cabal2nix --maintainer lassulus "https://github.com/hasura/graphql-parser-hs.git" >> "$parser_derivation_file"
echo "Running cabal2nix and outputting to ${ciinfo_derivation_file}..."
echo "# This has been automatically generated by the script" > "$ciinfo_derivation_file"
echo "# ./update.sh. This should not be changed by hand." >> "$ciinfo_derivation_file"
cabal2nix --maintainer lassulus "https://github.com/hasura/ci-info-hs.git" >> "$ciinfo_derivation_file"
echo "Running cabal2nix and outputting to ${pgclient_derivation_file}..."
echo "# This has been automatically generated by the script" > "$pgclient_derivation_file"
echo "# ./update.sh. This should not be changed by hand." >> "$pgclient_derivation_file"
cabal2nix --maintainer lassulus "https://github.com/hasura/pg-client-hs.git" >> "$pgclient_derivation_file"
echo "Running cabal2nix and outputting to ${pool_derivation_file}..."
echo "# This has been automatically generated by the script" > "$pool_derivation_file"
echo "# ./update.sh. This should not be changed by hand." >> "$pool_derivation_file"
cabal2nix --maintainer lassulus "https://github.com/hasura/pool.git" >> "$pool_derivation_file"
echo "Running cabal2nix and outputting to ${ekgcore_derivation_file}..."
echo "# This has been automatically generated by the script" > "$ekgcore_derivation_file"
echo "# ./update.sh. This should not be changed by hand." >> "$ekgcore_derivation_file"
cabal2nix --maintainer lassulus "https://github.com/hasura/ekg-core.git" >> "$ekgcore_derivation_file"
echo "Running cabal2nix and outputting to ${ekgjson_derivation_file}..."
echo "# This has been automatically generated by the script" > "$ekgjson_derivation_file"
echo "# ./update.sh. This should not be changed by hand." >> "$ekgjson_derivation_file"
cabal2nix --maintainer lassulus "https://github.com/hasura/ekg-json.git" >> "$ekgjson_derivation_file"
echo "Running cabal2nix and outputting to ${kritilang_derivation_file}..."
echo "# This has been automatically generated by the script" > "$kritilang_derivation_file"
echo "# ./update.sh. This should not be changed by hand." >> "$kritilang_derivation_file"
new_kritilang_version=$(curl --silent "https://api.github.com/repos/hasura/kriti-lang/tags" | jq '.[0].name' --raw-output)
cabal2nix --revision "$new_kritilang_version" --maintainer lassulus "https://github.com/hasura/kriti-lang.git" >> "$kritilang_derivation_file"
echo "###################"
echo "please update pkgs/servers/hasura/cli.nix vendorHash"
echo "please update pkgs/development/haskell-modules/configuration-common.nix graphql-engine version"
echo "###################"
echo "Finished."

View file

@ -52,7 +52,8 @@ mkDerivation {
# that only seems to affect Windows. We never build GHC natively on Windows.
# https://gitlab.haskell.org/ghc/ghc/-/issues/24382
# https://gitlab.haskell.org/ghc/ghc/-/commit/a2c033cf82635c83f3107706634bebee43297b99
(lib.versionAtLeast ghcVersion "9.12" && lib.versionOlder ghcVersion "9.13");
(lib.versionAtLeast ghcVersion "9.6.7" && lib.versionOlder ghcVersion "9.7")
|| (lib.versionAtLeast ghcVersion "9.12" && lib.versionOlder ghcVersion "9.15");
isLibrary = false;
isExecutable = true;
executableHaskellDepends =

View file

@ -64,6 +64,6 @@ callPackage' ./hadrian.nix (
}
// lib.optionalAttrs (lib.versionAtLeast ghcVersion "9.11") {
# See https://gitlab.haskell.org/ghc/ghc/-/commit/145a6477854d4003a07573d5e7ffa0c9a64ae29c
Cabal = bootPkgs.Cabal_3_14_1_0;
Cabal = bootPkgs.Cabal_3_14_1_1;
}
)

View file

@ -9,7 +9,9 @@
# Run
# $ nix-instantiate --eval -E 'with import <nixpkgs> {}; builtins.attrNames pkgs.haskell.packages'
# to list for your nixpkgs version.
supportedGhcVersions ? [ "96" ],
supportedGhcVersions ? [
(lib.strings.replaceStrings [ "." ] [ "" ] (lib.versions.majorMinor haskellPackages.ghc.version))
],
# Whether to build hls with the dynamic run-time system.
# See https://haskell-language-server.readthedocs.io/en/latest/troubleshooting.html#static-binaries for more information.

View file

@ -1,10 +1,19 @@
{ buildGoModule, hasura-graphql-engine }:
{
buildGoModule,
lib,
fetchFromGitHub,
}:
buildGoModule rec {
pname = "hasura";
version = hasura-graphql-engine.version;
version = "2.3.1";
src = hasura-graphql-engine.src;
src = fetchFromGitHub {
owner = "hasura";
repo = "graphql-engine";
rev = "v${version}";
sha256 = "1r19qw2wxzmngb6sjpin3dk6i5r491brcb0ir4g8kw9d0ic90hpy";
};
modRoot = "./cli";
subPackages = [ "cmd/hasura" ];
@ -28,7 +37,9 @@ buildGoModule rec {
'';
meta = {
inherit (hasura-graphql-engine.meta) license homepage maintainers;
homepage = "https://www.hasura.io";
maintainers = [ lib.maintainers.lassulus ];
license = lib.licenses.asl20;
description = "Hasura GraphQL Engine CLI";
mainProgram = "hasura";
};

View file

@ -1,7 +1,7 @@
{ pkgs, haskellPackages }:
let
drv = haskellPackages.vector;
drv = haskellPackages.random;
docs = pkgs.haskell.lib.compose.documentationTarball drv;
in
@ -15,10 +15,10 @@ pkgs.runCommand "test haskell.lib.compose.documentationTarball"
tar xvzf "${docs}/${drv.name}-docs.tar.gz"
# Check for Haddock html
find "${drv.name}-docs" | grep -q "Data-Vector.html"
find "${drv.name}-docs" | grep -q "System-Random.html"
# Check for source html
find "${drv.name}-docs" | grep -q "src/Data.Vector.html"
find "${drv.name}-docs" | grep -q "src/System.Random.html"
touch "$out"
''

View file

@ -68,4 +68,8 @@
maintainers = allMaintainers;
inherit (cabal-install.meta) platforms;
};
# `shellFor` adds a `buildCommand` (via `envFunc -> runCommandCC`), which
# overrides custom phases. To ensure this test's phases run, we remove
# that `buildCommand` from the derivation.
buildCommand = null;
})

View file

@ -1,121 +0,0 @@
{
stdenv,
lib,
fetchpatch,
mkDerivation,
fetchFromGitHub,
haskellPackages,
slither-analyzer,
}:
mkDerivation (
rec {
pname = "echidna";
version = "2.2.3";
src = fetchFromGitHub {
owner = "crytic";
repo = "echidna";
rev = "v${version}";
sha256 = "sha256-NJ2G6EkexYE4P3GD7PZ+lLEs1dqnoqIB2zfAOD5SQ8M=";
};
patches = [
# Support cross platform vty 6.x with vty-crossplatform
# https://github.com/crytic/echidna/pull/1290
(fetchpatch {
url = "https://github.com/crytic/echidna/commit/2913b027d7e793390ed489ef6a47d23ec9b3c800.patch";
hash = "sha256-5CGD9nDbDUTG869xUybWYSvGRsrm7JP7n0WMBNYfayw=";
})
];
isExecutable = true;
libraryToolDepends = with haskellPackages; [ haskellPackages.hpack ];
executableHaskellDepends = with haskellPackages; [
# package.yaml - dependencies
base
aeson
async
base16-bytestring
binary
bytestring
code-page
containers
data-bword
data-dword
deepseq
extra
directory
exceptions
filepath
hashable
hevm
html-entities
ListLike
MonadRandom
mtl
optparse-applicative
optics
optics-core
process
random
rosezipper
semver
split
text
transformers
time
unliftio
utf8-string
vector
with-utf8
word-wrap
yaml
http-conduit
html-conduit
warp
wai-extra
xml-conduit
strip-ansi-escape
# package.yaml - dependencies when "!os(windows)"
brick
unix
vty
];
# Note: there is also a runtime dependency of slither-analyzer. So, let's include it.
executableSystemDepends = [ slither-analyzer ];
preConfigure = ''
hpack
'';
shellHook = "hpack";
doHaddock = false;
# tests depend on a specific version of solc
doCheck = false;
description = "Ethereum smart contract fuzzer";
homepage = "https://github.com/crytic/echidna";
license = lib.licenses.agpl3Plus;
maintainers = with lib.maintainers; [
arturcygan
hellwolf
];
platforms = lib.platforms.unix;
mainProgram = "echidna-test";
}
// lib.optionalAttrs (stdenv.hostPlatform.isDarwin && stdenv.hostPlatform.isAarch64) {
# https://github.com/NixOS/nixpkgs/pull/304352
postInstall = with haskellPackages; ''
remove-references-to -t ${warp.out} "$out/bin/echidna"
remove-references-to -t ${wreq.out} "$out/bin/echidna"
'';
}
)

View file

@ -815,6 +815,7 @@ mapAliases {
hacksaw = throw "'hacksaw' has been removed due to lack of upstream maintenance"; # Added 2025-01-25
haka = throw "haka has been removed because it failed to build and was unmaintained for 9 years"; # Added 2025-03-11
hardinfo = throw "'hardinfo' has been removed as it was abandoned upstream. Consider using 'hardinfo2' instead."; # added 2025-04-17
hasura-graphql-engine = throw "hasura-graphql-engine has been removed because was broken and its packaging severly out of date"; # Added 2025-02-14
haven-cli = throw "'haven-cli' has been removed due to the official announcement of the project closure. Read more at https://havenprotocol.org/2024/12/12/project-closure-announcement"; # Added 2025-02-25
HentaiAtHome = hentai-at-home; # Added 2024-06-12
hll2390dw-cups = throw "The hll2390dw-cups package was dropped since it was unmaintained."; # Added 2024-06-21

View file

@ -1825,10 +1825,6 @@ with pkgs;
dkimpy = with python3Packages; toPythonApplication dkimpy;
echidna = haskell.lib.compose.justStaticExecutables (
haskellPackages.callPackage ../tools/security/echidna { }
);
esbuild = callPackage ../development/tools/esbuild { };
esbuild_netlify = callPackage ../development/tools/esbuild/netlify.nix { };
@ -4400,10 +4396,6 @@ with pkgs;
pakcs = callPackage ../development/compilers/pakcs { };
pandoc_3_6 = callPackage ../by-name/pa/pandoc/package.nix {
selectPandocCLI = (p: p.pandoc-cli_3_6);
};
paperwork = callPackage ../applications/office/paperwork/paperwork-gtk.nix { };
parallel = callPackage ../tools/misc/parallel { };
@ -5934,9 +5926,9 @@ with pkgs;
haskell.packages.native-bignum.ghc94
# JS backend can't use gmp
else if stdenv.hostPlatform.isGhcjs then
haskell.packages.native-bignum.ghc96
haskell.packages.native-bignum.ghc98
else
haskell.packages.ghc96
haskell.packages.ghc98
)
// {
__recurseIntoDerivationForReleaseJobs = true;
@ -5959,9 +5951,9 @@ with pkgs;
haskell.compiler.native-bignum.ghc94
# JS backend can't use GMP
else if stdenv.targetPlatform.isGhcjs then
haskell.compiler.native-bignum.ghc96
haskell.compiler.native-bignum.ghc98
else
haskell.compiler.ghc96
haskell.compiler.ghc98
);
alex = haskell.lib.compose.justStaticExecutables haskellPackages.alex;
@ -6012,9 +6004,10 @@ with pkgs;
spicedb-zed = callPackage ../servers/spicedb/zed.nix { };
tamarin-prover = (
haskellPackages.callPackage ../applications/science/logic/tamarin-prover {
# NOTE: do not use the haskell packages 'graphviz' and 'maude'
inherit maude which;
callPackage ../applications/science/logic/tamarin-prover {
# 2025-03-07: dependency fclabels doesn't compile with GHC >= 9.8
# https://github.com/sebastiaanvisser/fclabels/issues/46
haskellPackages = haskell.packages.ghc96;
graphviz = graphviz-nox;
}
);
@ -11075,8 +11068,6 @@ with pkgs;
grafana = callPackage ../servers/monitoring/grafana { };
grafanaPlugins = callPackages ../servers/monitoring/grafana/plugins { };
hasura-graphql-engine = haskell.lib.compose.justStaticExecutables haskell.packages.ghc810.graphql-engine;
hasura-cli = callPackage ../servers/hasura/cli.nix { };
inherit (callPackage ../servers/hbase { })

View file

@ -135,51 +135,6 @@ in
llvmPackages = pkgs.llvmPackages_12;
};
ghc90 = compiler.ghc902;
ghc925 = callPackage ../development/compilers/ghc/9.2.5.nix {
bootPkgs =
if stdenv.buildPlatform.isPower64 && stdenv.buildPlatform.isLittleEndian then
bb.packages.ghc810
else
bb.packages.ghc8107Binary;
inherit (buildPackages.python311Packages) sphinx; # a distutils issue with 3.12
python3 = buildPackages.python311; # so that we don't have two of them
# Need to use apple's patched xattr until
# https://github.com/xattr/xattr/issues/44 and
# https://github.com/xattr/xattr/issues/55 are solved.
inherit (buildPackages.darwin) xattr autoSignDarwinBinariesHook;
buildTargetLlvmPackages = pkgsBuildTarget.llvmPackages_12;
llvmPackages = pkgs.llvmPackages_12;
};
ghc926 = callPackage ../development/compilers/ghc/9.2.6.nix {
bootPkgs =
if stdenv.buildPlatform.isPower64 && stdenv.buildPlatform.isLittleEndian then
bb.packages.ghc810
else
bb.packages.ghc8107Binary;
inherit (buildPackages.python311Packages) sphinx; # a distutils issue with 3.12
python3 = buildPackages.python311; # so that we don't have two of them
# Need to use apple's patched xattr until
# https://github.com/xattr/xattr/issues/44 and
# https://github.com/xattr/xattr/issues/55 are solved.
inherit (buildPackages.darwin) xattr autoSignDarwinBinariesHook;
buildTargetLlvmPackages = pkgsBuildTarget.llvmPackages_12;
llvmPackages = pkgs.llvmPackages_12;
};
ghc927 = callPackage ../development/compilers/ghc/9.2.7.nix {
bootPkgs =
if stdenv.buildPlatform.isPower64 && stdenv.buildPlatform.isLittleEndian then
bb.packages.ghc810
else
bb.packages.ghc8107Binary;
inherit (buildPackages.python311Packages) sphinx; # a distutils issue with 3.12
python3 = buildPackages.python311; # so that we don't have two of them
# Need to use apple's patched xattr until
# https://github.com/xattr/xattr/issues/44 and
# https://github.com/xattr/xattr/issues/55 are solved.
inherit (buildPackages.darwin) xattr autoSignDarwinBinariesHook;
buildTargetLlvmPackages = pkgsBuildTarget.llvmPackages_12;
llvmPackages = pkgs.llvmPackages_12;
};
ghc928 = callPackage ../development/compilers/ghc/9.2.8.nix {
bootPkgs =
if stdenv.buildPlatform.isPower64 && stdenv.buildPlatform.isLittleEndian then
@ -317,7 +272,25 @@ in
buildTargetLlvmPackages = pkgsBuildTarget.llvmPackages_15;
llvmPackages = pkgs.llvmPackages_15;
};
ghc96 = compiler.ghc966;
ghc967 = callPackage ../development/compilers/ghc/9.6.7.nix {
bootPkgs =
# For GHC 9.2 no armv7l bindists are available.
if stdenv.buildPlatform.isAarch32 then
bb.packages.ghc928
else if stdenv.buildPlatform.isPower64 && stdenv.buildPlatform.isLittleEndian then
bb.packages.ghc928
else
bb.packages.ghc924Binary;
inherit (buildPackages.python3Packages) sphinx;
# Need to use apple's patched xattr until
# https://github.com/xattr/xattr/issues/44 and
# https://github.com/xattr/xattr/issues/55 are solved.
inherit (buildPackages.darwin) xattr autoSignDarwinBinariesHook;
# Support range >= 11 && < 16
buildTargetLlvmPackages = pkgsBuildTarget.llvmPackages_15;
llvmPackages = pkgs.llvmPackages_15;
};
ghc96 = compiler.ghc967;
ghc981 = callPackage ../development/compilers/ghc/9.8.1.nix {
bootPkgs =
# For GHC 9.6 no armv7l bindists are available.
@ -432,7 +405,20 @@ in
buildTargetLlvmPackages = pkgsBuildTarget.llvmPackages_19;
llvmPackages = pkgs.llvmPackages_19;
};
ghc912 = compiler.ghc9121;
ghc9122 = callPackage ../development/compilers/ghc/9.12.2.nix {
bootPkgs =
# No suitable bindist packaged yet
bb.packages.ghc9101;
inherit (buildPackages.python3Packages) sphinx;
# Need to use apple's patched xattr until
# https://github.com/xattr/xattr/issues/44 and
# https://github.com/xattr/xattr/issues/55 are solved.
inherit (buildPackages.darwin) xattr autoSignDarwinBinariesHook;
# 2024-12-21: Support range >= 13 && < 20
buildTargetLlvmPackages = pkgsBuildTarget.llvmPackages_19;
llvmPackages = pkgs.llvmPackages_19;
};
ghc912 = compiler.ghc9122;
ghcHEAD = callPackage ../development/compilers/ghc/head.nix {
bootPkgs =
# No armv7l bindists are available.
@ -540,21 +526,6 @@ in
compilerConfig = callPackage ../development/haskell-modules/configuration-ghc-9.0.x.nix { };
};
ghc90 = packages.ghc902;
ghc925 = callPackage ../development/haskell-modules {
buildHaskellPackages = bh.packages.ghc925;
ghc = bh.compiler.ghc925;
compilerConfig = callPackage ../development/haskell-modules/configuration-ghc-9.2.x.nix { };
};
ghc926 = callPackage ../development/haskell-modules {
buildHaskellPackages = bh.packages.ghc926;
ghc = bh.compiler.ghc926;
compilerConfig = callPackage ../development/haskell-modules/configuration-ghc-9.2.x.nix { };
};
ghc927 = callPackage ../development/haskell-modules {
buildHaskellPackages = bh.packages.ghc927;
ghc = bh.compiler.ghc927;
compilerConfig = callPackage ../development/haskell-modules/configuration-ghc-9.2.x.nix { };
};
ghc928 = callPackage ../development/haskell-modules {
buildHaskellPackages = bh.packages.ghc928;
ghc = bh.compiler.ghc928;
@ -592,7 +563,12 @@ in
ghc = bh.compiler.ghc966;
compilerConfig = callPackage ../development/haskell-modules/configuration-ghc-9.6.x.nix { };
};
ghc96 = packages.ghc966;
ghc967 = callPackage ../development/haskell-modules {
buildHaskellPackages = bh.packages.ghc967;
ghc = bh.compiler.ghc967;
compilerConfig = callPackage ../development/haskell-modules/configuration-ghc-9.6.x.nix { };
};
ghc96 = packages.ghc967;
ghc981 = callPackage ../development/haskell-modules {
buildHaskellPackages = bh.packages.ghc981;
ghc = bh.compiler.ghc981;
@ -625,7 +601,12 @@ in
ghc = bh.compiler.ghc9121;
compilerConfig = callPackage ../development/haskell-modules/configuration-ghc-9.12.x.nix { };
};
ghc912 = packages.ghc9121;
ghc9122 = callPackage ../development/haskell-modules {
buildHaskellPackages = bh.packages.ghc9122;
ghc = bh.compiler.ghc9122;
compilerConfig = callPackage ../development/haskell-modules/configuration-ghc-9.12.x.nix { };
};
ghc912 = packages.ghc9122;
ghcHEAD = callPackage ../development/haskell-modules {
buildHaskellPackages = bh.packages.ghcHEAD;
ghc = bh.compiler.ghcHEAD;

View file

@ -65,9 +65,6 @@ let
released = with compilerNames; [
ghc8107
ghc902
ghc925
ghc926
ghc927
ghc928
ghc947
ghc948
@ -75,12 +72,14 @@ let
ghc964
ghc965
ghc966
ghc967
ghc981
ghc982
ghc983
ghc984
ghc9101
ghc9121
# exclude ghc9121 due to severe miscompilation bug
ghc9122
];
# packagePlatforms applied to `haskell.packages.*`
@ -310,7 +309,6 @@ let
happy
haskell-ci
haskell-language-server
hasura-graphql-engine
hci
hercules-ci-agent
hinit
@ -455,6 +453,7 @@ let
cabal2nix
terminfo # isn't bundled for cross
xhtml # isn't bundled for cross
postgrest
;
};
@ -467,6 +466,7 @@ let
cabal2nix
terminfo # isn't bundled for cross
xhtml # isn't bundled for cross
postgrest
;
};
@ -504,6 +504,16 @@ let
;
};
haskell.packages.ghc912 = {
inherit (packagePlatforms pkgs.pkgsCross.ghcjs.haskell.packages.ghc912)
ghc
hello
microlens
miso
reflex-dom
;
};
haskell.packages.ghcHEAD = {
inherit (packagePlatforms pkgs.pkgsCross.ghcjs.haskell.packages.ghcHEAD)
ghc
@ -554,16 +564,17 @@ let
# work with older compilers.
compilerNames.ghc8107
compilerNames.ghc902
compilerNames.ghc925
compilerNames.ghc926
compilerNames.ghc927
compilerNames.ghc928
compilerNames.ghc947
compilerNames.ghc948
] released;
Cabal_3_10_3_0 = released;
Cabal_3_10_3_0 = lib.subtractLists [
# time < 1.13 conflicts with time == 1.14.*
compilerNames.ghc9121
compilerNames.ghc9122
] released;
Cabal_3_12_1_0 = released;
Cabal_3_14_1_0 = released;
Cabal_3_14_1_1 = released;
cabal2nix = released;
cabal2nix-unstable = released;
funcmp = released;
@ -572,12 +583,14 @@ let
compilerNames.ghc8107
# Support ceased as of 2.5.0.0
compilerNames.ghc902
# Support ceased as of 2.10.0.0
compilerNames.ghc928
] released;
hoogle = released;
hlint = lib.subtractLists [
compilerNames.ghc902
compilerNames.ghc9101
compilerNames.ghc9121
compilerNames.ghc9122
] released;
hpack = released;
hsdns = released;
@ -596,16 +609,21 @@ let
ghc-lib-parser = released;
ghc-lib-parser-ex = released;
ghc-source-gen = lib.subtractLists [
compilerNames.ghc9121
compilerNames.ghc9122
] released;
ghc-tags = lib.subtractLists [
compilerNames.ghc9121
compilerNames.ghc9122
] released;
hashable = released;
primitive = released;
semaphore-compat = [
# Compiler < 9.8 don't have the semaphore-compat core package, but
# requires unix >= 2.8.1.0 which implies GHC >= 9.6 for us.
compilerNames.ghc966
];
weeder = lib.subtractLists [
compilerNames.ghc9101
compilerNames.ghc9121
compilerNames.ghc9122
] released;
})
{
@ -671,16 +689,10 @@ let
jobs.pkgsMusl.haskell.compiler.ghc8107Binary
jobs.pkgsMusl.haskell.compiler.ghc8107
jobs.pkgsMusl.haskell.compiler.ghc902
jobs.pkgsMusl.haskell.compiler.ghc925
jobs.pkgsMusl.haskell.compiler.ghc926
jobs.pkgsMusl.haskell.compiler.ghc927
jobs.pkgsMusl.haskell.compiler.ghc928
jobs.pkgsMusl.haskell.compiler.ghcHEAD
jobs.pkgsMusl.haskell.compiler.integer-simple.ghc8107
jobs.pkgsMusl.haskell.compiler.native-bignum.ghc902
jobs.pkgsMusl.haskell.compiler.native-bignum.ghc925
jobs.pkgsMusl.haskell.compiler.native-bignum.ghc926
jobs.pkgsMusl.haskell.compiler.native-bignum.ghc927
jobs.pkgsMusl.haskell.compiler.native-bignum.ghc928
jobs.pkgsMusl.haskell.compiler.native-bignum.ghcHEAD
];

View file

@ -365,6 +365,7 @@ let
"ghc96"
"ghc98"
"ghc910"
"ghc912"
]
(compilerName: {
inherit (packagePlatforms pkgs.haskell.packages.${compilerName})