Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
72 commits
Select commit Hold shift + click to select a range
c3ee84f
all-cabal-hashes: 2023-04-18T09:14:41Z -> 2023-04-20T12:48:01Z
maralorn Apr 20, 2023
09055b5
haskellPackages: regenerate package set based on current config
maralorn Apr 20, 2023
105933e
haskellPackages.matterhorn: remove obsolete overrides
maralorn Apr 20, 2023
0bd7d2d
haskellPackages.storablevector: jailbreak to fix tests
maralorn Apr 20, 2023
cef4567
Merge master into haskell-updates
github-actions[bot] Apr 21, 2023
e3f3b9c
haskellPackages: remove packages from broken.yaml that are maintained…
thielema Apr 21, 2023
45ec842
maintainers: add thielema
thielema Apr 21, 2023
5d91d02
haskellPackages: add thielema as maintainer to configuration-hackage2…
thielema Apr 21, 2023
1cc403f
Merge pull request #227427 from thielema/haskell-updates-maintainer
maralorn Apr 21, 2023
ecbe5ab
Merge pull request #227487 from thielema/haskell-updates-unbreak
maralorn Apr 21, 2023
3e7b760
haskellPackages: regenerate package set based on current config
maralorn Apr 21, 2023
7e5fb3a
Merge master into haskell-updates
github-actions[bot] Apr 22, 2023
fa0a071
haskellPackages: add buildExamples Cabal flag to audacity, med-module…
thielema Apr 22, 2023
4c3eb38
Merge pull request #227583 from thielema/haskell-updates-examples
maralorn Apr 22, 2023
3fd9285
haskellPackages.wiringPi: unsupported on aarch64-darwin
maralorn Apr 22, 2023
0d30892
haskellPackages.dhall-nix(pkgs)?: Fix build by pinning to stackage co…
maralorn Apr 22, 2023
86bb552
haskellPackages: Regenerate with transitive-fixed packages
maralorn Apr 22, 2023
a9c8570
haskell.packages.text-time: remove broken attribute
TristanCacqueray Apr 22, 2023
09de688
haskell.packages.ghc96.newtype-generics: relax base bound
TristanCacqueray Apr 22, 2023
e648525
haskellPackages: Restricte alsa packages to linux
maralorn Apr 22, 2023
b147229
haskell.packages.ghc96.hourglass: pull test fix
TristanCacqueray Apr 22, 2023
ea9362e
Merge pull request #227620 from TristanCacqueray/unbroken-text-time
maralorn Apr 22, 2023
306bf7b
Merge pull request #227621 from TristanCacqueray/ghc96-newtype-generics
maralorn Apr 22, 2023
7f34e95
Merge pull request #227625 from TristanCacqueray/ghc96-hourglass
maralorn Apr 22, 2023
70ff147
Merge remote-tracking branch 'origin/master' into haskell-updates
sternenseemann Apr 22, 2023
216f0b7
haskell.packages.ghc96.hedgehog: distribute v1.2
TristanCacqueray Apr 22, 2023
47fc924
haskell.packages.ghc96.http-api-data: distribute v0.5.1
TristanCacqueray Apr 22, 2023
039b9d3
haskell.packages.ghc96.turtle: distribute v1.6.1
TristanCacqueray Apr 22, 2023
fb8d2dd
all-cabal-hashes: 2023-04-20T12:48:01Z -> 2023-04-22T18:19:29Z
maralorn Apr 22, 2023
1ff2b20
haskellPackages: regenerate package set based on current config
maralorn Apr 22, 2023
9c094a3
Merge branch 'master' into haskell-updates
maralorn Apr 22, 2023
8be3ec7
Merge pull request #227645 from TristanCacqueray/ghc96-hedgehog
maralorn Apr 22, 2023
1c5ea44
Merge pull request #227648 from TristanCacqueray/ghc96-http-api-data
maralorn Apr 22, 2023
a092e62
Merge pull request #227661 from TristanCacqueray/ghc96-turtle
maralorn Apr 22, 2023
ef8559d
haskell.packages.ghc96.cborg-json: allow base-4.18
TristanCacqueray Apr 22, 2023
e08455e
haskell.packages.ghc96.serialise: allow base-4.18
TristanCacqueray Apr 22, 2023
4925760
haskell.packages.ghc96: uses jailbreakForCurrentVersion
TristanCacqueray Apr 22, 2023
89454d5
Merge pull request #227629 from TristanCacqueray/ghc96-cborg
maralorn Apr 22, 2023
22c5bd8
Partially revert "haskell.packages.ghc96: uses jailbreakForCurrentVer…
maralorn Apr 22, 2023
32a7217
haskellPackages.audacity: Add executableHaskellDepends for examples
maralorn Apr 22, 2023
10a9250
haskellPackages.spreadsheet: Add executableHaskellDepends for examples
maralorn Apr 22, 2023
7996303
haskellPackages.comfort-fttw: Pin to fixed version
maralorn Apr 22, 2023
59f6541
haskellPackages.hspec*: Update overrides
maralorn Apr 22, 2023
ec4d983
haskellPackages.twirl: Unsupported on darwin
maralorn Apr 22, 2023
0906123
Merge master into haskell-updates
github-actions[bot] Apr 23, 2023
e4b66fa
maintainers/scripts/haskell: Integrate transitive-broken into regener…
maralorn Apr 22, 2023
4f3418e
Merge pull request #227662 from maralorn/maintainers-scripts
maralorn Apr 23, 2023
77fb04d
haskellPackages.gtk: refactor configuration-nix
hellwolf Apr 23, 2023
355cb4c
haskellPackages.gio: fix build
hellwolf Apr 23, 2023
3aa6004
haskell.packages.ghc961.{aeson,singleton-bool,unliftio-core,lukko,luc…
ysangkok Apr 23, 2023
3c108bd
haskell.packages.ghc961.singleton-bool: Remove useless assert
ysangkok Apr 23, 2023
e7ec5e1
haskellPackages.gtk: fix build
hellwolf Apr 23, 2023
0b5589d
Merge pull request #227690 from hellwolf/fix_ghc94_gio
maralorn Apr 23, 2023
9d96f7a
Merge pull request #227871 from ysangkok/janus/remove-jailbreaks
maralorn Apr 23, 2023
58963d6
Merge master into haskell-updates
github-actions[bot] Apr 24, 2023
57bc5c6
haskellPackages.llvm-ffi: set LLVM
MaxHearnden Apr 24, 2023
a3617cb
Merge pull request #227424 from MaxHearnden/llvm-ffi
maralorn Apr 24, 2023
6b4c504
Merge master into haskell-updates
github-actions[bot] Apr 25, 2023
c8f5df5
Merge master into haskell-updates
github-actions[bot] Apr 26, 2023
045868c
haskell.packages.ghc94.hspec*: remove unnecessary overrides
maralorn Apr 26, 2023
dc9fe27
Merge master into haskell-updates
github-actions[bot] Apr 27, 2023
ddcad44
haskellPackages.med-module: Temporarily disable examples to fix build
maralorn Apr 27, 2023
46b2d38
haskellPackages.libfuse3: disable tests
MaxHearnden Apr 27, 2023
64ebcd8
Merge master into haskell-updates
github-actions[bot] Apr 28, 2023
b91f1c6
haskellPackages.libfuse3: add note explaining why tests are disabled
MaxHearnden Apr 28, 2023
bde63d8
Merge branch 'master' into haskell-updates
maralorn Apr 28, 2023
f7e7809
haskellPackages.gtk: Fix eval on darwin
maralorn Apr 28, 2023
5f6c15e
Merge master into haskell-updates
github-actions[bot] Apr 29, 2023
cbd40e1
Merge pull request #228618 from MaxHearnden/libfuse3
cdepillabout Apr 29, 2023
5e811b3
Merge branch 'master' into haskell-updates
maralorn Apr 29, 2023
c967369
haskellPackages.libfuse3: restrict to linux
maralorn Apr 29, 2023
3e47248
haskellPackages: mark builds failing on hydra as broken
maralorn Apr 29, 2023
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
6 changes: 6 additions & 0 deletions maintainers/maintainer-list.nix
Original file line number Diff line number Diff line change
Expand Up @@ -15514,6 +15514,12 @@
githubId = 3268082;
name = "Thibaut Marty";
};
thielema = {
name = "Henning Thielemann";
email = "nix@henning-thielemann.de";
github = "thielema";
githubId = 898989;
};
thled = {
name = "Thomas Le Duc";
email = "dev@tleduc.de";
Expand Down
2 changes: 0 additions & 2 deletions maintainers/scripts/haskell/mark-broken.sh
Original file line number Diff line number Diff line change
Expand Up @@ -32,8 +32,6 @@ EOF
sort -iu "$tmpfile" >> "$broken_config"
clear="env -u HOME -u NIXPKGS_CONFIG"
$clear maintainers/scripts/haskell/regenerate-hackage-packages.sh
$clear maintainers/scripts/haskell/regenerate-transitive-broken-packages.sh
$clear maintainers/scripts/haskell/regenerate-hackage-packages.sh
evalline=$(maintainers/scripts/haskell/hydra-report.hs eval-info)

if [[ "${1:-}" == "--do-commit" ]]; then
Expand Down
111 changes: 88 additions & 23 deletions maintainers/scripts/haskell/regenerate-hackage-packages.sh
Original file line number Diff line number Diff line change
@@ -1,22 +1,69 @@
#! /usr/bin/env nix-shell
#! nix-shell -i bash -p coreutils haskellPackages.cabal2nix-unstable git nix -I nixpkgs=.

# This script is used to regenerate nixpkgs' Haskell package set, using the
# tool hackage2nix from the nixos/cabal2nix repo. hackage2nix looks at the
# config files in pkgs/development/haskell-modules/configuration-hackage2nix
# and generates a Nix expression for package version specified there, using the
# Cabal files from the Hackage database (available under all-cabal-hashes) and
# its companion tool cabal2nix.
#
# Related scripts are update-hackage.sh, for updating the snapshot of the
# Hackage database used by hackage2nix, and update-cabal2nix-unstable.sh,
# for updating the version of hackage2nix used to perform this task.
#
# Note that this script doesn't gcroot anything, so it may be broken by an
# unfortunately timed nix-store --gc.

set -euo pipefail

self=$0

print_help () {
cat <<END_HELP
Usage: $self [options]

Options:
--do-commit Commit changes to this file.
-f | --fast Do not update the transitive-broken.yaml file.
-h | --help Show this help.

This script is used to regenerate nixpkgs' Haskell package set, using the
tool hackage2nix from the nixos/cabal2nix repo. hackage2nix looks at the
config files in pkgs/development/haskell-modules/configuration-hackage2nix
and generates a Nix expression for package version specified there, using the
Cabal files from the Hackage database (available under all-cabal-hashes) and
its companion tool cabal2nix.

Unless --fast is used, it will then use the generated nix expression by
running regenerate-transitive-broken-packages.sh which updates the transitive-broken.yaml
file. Then it re-runs hackage2nix.

Related scripts are update-hackage.sh, for updating the snapshot of the
Hackage database used by hackage2nix, and update-cabal2nix-unstable.sh,
for updating the version of hackage2nix used to perform this task.

Note that this script doesn't gcroot anything, so it may be broken by an
unfortunately timed nix-store --gc.

END_HELP
}

DO_COMMIT=0
REGENERATE_TRANSITIVE=1

options=$(getopt -o "fh" -l "help,fast,do-commit" -- "$@")

eval set -- "$options"

while true; do
case "$1" in
--do-commit)
DO_COMMIT=1
;;
-f|--fast)
REGENERATE_TRANSITIVE=0
;;
-h|--help)
print_help
exit 0
;;
--)
break;;
*)
print_help
exit 1
;;
esac
shift
done

HACKAGE2NIX="${HACKAGE2NIX:-hackage2nix}"

# To prevent hackage2nix fails because of encoding.
Expand All @@ -25,14 +72,7 @@ export LC_ALL=C.UTF-8

config_dir=pkgs/development/haskell-modules/configuration-hackage2nix

echo "Obtaining Hackage data"
extraction_derivation='with import ./. {}; runCommandLocal "unpacked-cabal-hashes" { } "tar xf ${all-cabal-hashes} --strip-components=1 --one-top-level=$out"'
unpacked_hackage="$(nix-build -E "$extraction_derivation" --no-out-link)"

echo "Generating compiler configuration"
compiler_config="$(nix-build -A haskellPackages.cabal2nix-unstable.compilerConfig --no-out-link)"

echo "Starting hackage2nix to regenerate pkgs/development/haskell-modules/hackage-packages.nix ..."
run_hackage2nix() {
"$HACKAGE2NIX" \
--hackage "$unpacked_hackage" \
--preferred-versions <(for n in "$unpacked_hackage"/*/preferred-versions; do cat "$n"; echo; done) \
Expand All @@ -42,8 +82,33 @@ echo "Starting hackage2nix to regenerate pkgs/development/haskell-modules/hackag
--config "$config_dir/stackage.yaml" \
--config "$config_dir/broken.yaml" \
--config "$config_dir/transitive-broken.yaml"
}

echo "Obtaining Hackage data …"
extraction_derivation='with import ./. {}; runCommandLocal "unpacked-cabal-hashes" { } "tar xf ${all-cabal-hashes} --strip-components=1 --one-top-level=$out"'
unpacked_hackage="$(nix-build -E "$extraction_derivation" --no-out-link)"

echo "Generating compiler configuration …"
compiler_config="$(nix-build -A haskellPackages.cabal2nix-unstable.compilerConfig --no-out-link)"

echo "Running hackage2nix to regenerate pkgs/development/haskell-modules/hackage-packages.nix …"
run_hackage2nix

if [[ "$REGENERATE_TRANSITIVE" -eq 1 ]]; then

echo "Regenerating transitive-broken.yaml … (pass --fast to $self to skip this step)"

maintainers/scripts/haskell/regenerate-transitive-broken-packages.sh

echo "Running hackage2nix again to reflect changes in transitive-broken.yaml …"

run_hackage2nix

fi


if [[ "${1:-}" == "--do-commit" ]]; then
if [[ "$DO_COMMIT" -eq 1 ]]; then
git add pkgs/development/haskell-modules/configuration-hackage2nix/transitive-broken.yaml
git add pkgs/development/haskell-modules/hackage-packages.nix
git commit -F - << EOF
haskellPackages: regenerate package set based on current config
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -11,5 +11,4 @@ cat > $config_file << EOF
dont-distribute-packages:
EOF

echo "Regenerating list of transitive broken packages ..."
nix-instantiate --eval --option restrict-eval true -I . --strict --json maintainers/scripts/haskell/transitive-broken-packages.nix | jq -r . | LC_ALL=C.UTF-8 sort -i >> $config_file
8 changes: 4 additions & 4 deletions pkgs/data/misc/hackage/pin.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"commit": "67ecaa60725908a5bc562294a2c0e03e30858aa7",
"url": "https://github.com/commercialhaskell/all-cabal-hashes/archive/67ecaa60725908a5bc562294a2c0e03e30858aa7.tar.gz",
"sha256": "0yf0dliq65j5achg3iqz0hkf25jjkgxarsdsr5vl2r5h41n39qg3",
"msg": "Update from Hackage at 2023-04-18T09:14:41Z"
"commit": "835ef6db789d6459876c083419d61e068de15dd3",
"url": "https://github.com/commercialhaskell/all-cabal-hashes/archive/835ef6db789d6459876c083419d61e068de15dd3.tar.gz",
"sha256": "11506nwsd15b3jhdydr54j0jk5pzj3qhs92c167xv0f0czw5pj8a",
"msg": "Update from Hackage at 2023-04-22T18:19:29Z"
}
50 changes: 32 additions & 18 deletions pkgs/development/haskell-modules/configuration-common.nix
Original file line number Diff line number Diff line change
Expand Up @@ -61,15 +61,15 @@ self: super: {
# not solvable short of recompiling GHC. Instead of adding
# allowInconsistentDependencies for all reverse dependencies of hspec-core,
# just upgrade to an hspec version without the offending dependency.
hspec-core = cself.hspec-core_2_10_10;
hspec-discover = cself.hspec-discover_2_10_10;
hspec = cself.hspec_2_10_10;
hspec-core = cself.hspec-core_2_11_0;
hspec-discover = cself.hspec-discover_2_11_0;
hspec = cself.hspec_2_11_0;

# hspec-discover and hspec-core depend on hspec-meta for testing which
# we need to avoid since it depends on ghc as well. Since hspec*_2_10*
# are overridden to take the versioned attributes as inputs, we need
# to make sure to override the versioned attribute with this fix.
hspec-discover_2_10_10 = dontCheck csuper.hspec-discover_2_10_10;
hspec-discover_2_11_0 = dontCheck csuper.hspec-discover_2_11_0;

# Prevent dependency on doctest which causes an inconsistent dependency
# due to depending on ghc which depends on directory etc.
Expand Down Expand Up @@ -415,11 +415,14 @@ self: super: {
# 2022-01-29: Tests require package to be in ghc-db.
aeson-schemas = dontCheck super.aeson-schemas;

# matterhorn-50200.17.0 won't work with brick >= 0.71, brick-skylighting >= 1.0
matterhorn = doJailbreak (super.matterhorn.overrideScope (self: super: {
brick = self.brick_0_70_1;
brick-skylighting = self.brick-skylighting_0_3;
}));
# 2023-04-20: Restrictive bytestring bound in tests.
storablevector = doJailbreak super.storablevector;

# 2023-04-20: Pretends to need brick 1.6 but the commit history here
# https://github.com/matterhorn-chat/matterhorn/commits/master/matterhorn.cabal
# makes very clear that 1.4 is equally fine.
# Generally a slightly packaging hostile bound practice.
matterhorn = doJailbreak super.matterhorn;

# 2020-06-05: HACK: does not pass own build suite - `dontCheck`
# 2022-11-24: jailbreak as it has too strict bounds on a bunch of things
Expand Down Expand Up @@ -627,6 +630,10 @@ self: super: {
})
] (dontCheck super.snappy);

# 2023-04-22: omfort-fftw 0.0.0.1 contains fixes to the tests. We can drop
# this override as soon as stackage advances.
comfort-fftw = doDistribute super.comfort-fftw_0_0_0_1;

# https://github.com/vincenthz/hs-crypto-pubkey/issues/20
crypto-pubkey = dontCheck super.crypto-pubkey;

Expand Down Expand Up @@ -998,12 +1005,12 @@ self: super: {
testHaskellDepends = drv.testHaskellDepends or [] ++ [ self.hspec-meta_2_10_5 ];
testToolDepends = drv.testToolDepends or [] ++ [ pkgs.git ];
}) (super.sensei.override {
hspec = self.hspec_2_10_10;
hspec = self.hspec_2_11_0;
hspec-wai = self.hspec-wai.override {
hspec = self.hspec_2_10_10;
hspec = self.hspec_2_11_0;
};
hspec-contrib = self.hspec-contrib.override {
hspec-core = self.hspec-core_2_10_10;
hspec-core = self.hspec-core_2_11_0;
};
fsnotify = self.fsnotify_0_4_1_0;
});
Expand Down Expand Up @@ -1667,16 +1674,16 @@ self: super: {
servant-openapi3 = dontCheck super.servant-openapi3;

# Give hspec 2.10.* correct dependency versions without overrideScope
hspec_2_10_10 = doDistribute (super.hspec_2_10_10.override {
hspec-discover = self.hspec-discover_2_10_10;
hspec-core = self.hspec-core_2_10_10;
hspec_2_11_0 = doDistribute (super.hspec_2_11_0.override {
hspec-discover = self.hspec-discover_2_11_0;
hspec-core = self.hspec-core_2_11_0;
});
hspec-discover_2_10_10 = doDistribute (super.hspec-discover_2_10_10.override {
hspec-discover_2_11_0 = doDistribute (super.hspec-discover_2_11_0.override {
hspec-meta = self.hspec-meta_2_10_5;
});
# Need to disable tests to prevent an infinite recursion if hspec-core_2_10_10
# Need to disable tests to prevent an infinite recursion if hspec-core_2_11_0
# is overlayed to hspec-core.
hspec-core_2_10_10 = doDistribute (dontCheck (super.hspec-core_2_10_10.override {
hspec-core_2_11_0 = doDistribute (dontCheck (super.hspec-core_2_11_0.override {
hspec-meta = self.hspec-meta_2_10_5;
}));

Expand Down Expand Up @@ -2618,4 +2625,11 @@ self: super: {
# compatability with other gi- packages.
# Take another look when gi-webkit2 updates as it may have become compatible with libsoup-3
gi-soup = assert versions.major self.gi-webkit2.version == "4"; self.gi-soup_2_4_28;

llvm-ffi = super.llvm-ffi.override {
LLVM = pkgs.llvmPackages_13.libllvm;
};

# libfuse3 fails to mount fuse file systems within the build environment
libfuse3 = dontCheck super.libfuse3;
} // import ./configuration-tensorflow.nix {inherit pkgs haskellLib;} self super
10 changes: 2 additions & 8 deletions pkgs/development/haskell-modules/configuration-ghc-9.4.x.nix
Original file line number Diff line number Diff line change
Expand Up @@ -107,14 +107,6 @@ in {
base-orphans = dontCheck (doDistribute super.base-orphans);
generically = addBuildDepend self.base-orphans super.generically;

# Note: Any compilation fixes need to be done on the versioned attributes,
# since those are used for the internal dependencies between the versioned
# hspec packages in configuration-common.nix.
hspec = self.hspec_2_10_10;
hspec-core = self.hspec-core_2_10_10;
hspec-meta = self.hspec-meta_2_10_5;
hspec-discover = self.hspec-discover_2_10_10;

# the dontHaddock is due to a GHC panic. might be this bug, not sure.
# https://gitlab.haskell.org/ghc/ghc/-/issues/21619
#
Expand Down Expand Up @@ -225,4 +217,6 @@ in {
# failing during the Setup.hs phase: https://github.com/gtk2hs/gtk2hs/issues/323.
gtk2hs-buildtools = appendPatch ./patches/gtk2hs-buildtools-fix-ghc-9.4.x.patch super.gtk2hs-buildtools;

# Pending text-2.0 support https://github.com/gtk2hs/gtk2hs/issues/327
gtk = doJailbreak super.gtk;
}
46 changes: 36 additions & 10 deletions pkgs/development/haskell-modules/configuration-ghc-9.6.x.nix
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,11 @@ let
overrideCabal (old: {
jailbreak = assert old.revision or "0" == toString rev; true;
});
checkAgainAfter = pkg: ver: msg: act:
if builtins.compareVersions pkg.version ver <= 0 then act
else
builtins.throw "Check if '${msg}' was resolved in ${pkg.pname} ${pkg.version} and update or remove this";
jailbreakForCurrentVersion = p: v: checkAgainAfter p v "bad bounds" (doJailbreak p);
in

self: super: {
Expand Down Expand Up @@ -61,37 +66,47 @@ self: super: {
inspection-testing = doDistribute self.inspection-testing_0_5_0_1; # allows base >= 4.18
OneTuple = doDistribute (dontCheck super.OneTuple_0_4_1_1); # allows base >= 4.18
primitive = doDistribute (dontCheck self.primitive_0_7_4_0); # allows base >= 4.18
http-api-data = doDistribute self.http-api-data_0_5_1; # allows base >= 4.18
attoparsec-iso8601 = doDistribute self.attoparsec-iso8601_1_1_0_0; # for http-api-data-0.5.1
tagged = doDistribute self.tagged_0_8_7; # allows template-haskell-2.20
some = doDistribute self.some_1_0_5;
tasty-inspection-testing = doDistribute self.tasty-inspection-testing_0_2;
th-abstraction = doDistribute self.th-abstraction_0_5_0_0;
th-desugar = doDistribute self.th-desugar_1_15;
# Too strict bounds on ghc-prim and template-haskell
aeson = doDistribute (doJailbreak self.aeson_2_1_2_1);
# Too strict bounds on ghc-prim
turtle = doDistribute self.turtle_1_6_1;
aeson = doDistribute self.aeson_2_1_2_1;
memory = doDistribute self.memory_0_18_0;

ghc-lib = doDistribute self.ghc-lib_9_6_1_20230312;
ghc-lib-parser = doDistribute self.ghc-lib-parser_9_6_1_20230312;
ghc-lib-parser-ex = doDistribute self.ghc-lib-parser-ex_9_6_0_0;

# allows mtl, template-haskell, text and transformers
hedgehog = doDistribute self.hedgehog_1_2;
# allows base >= 4.18
tasty-hedgehog = doDistribute self.tasty-hedgehog_1_4_0_1;

# v0.1.6 forbids base >= 4.18
singleton-bool = doDistribute super.singleton-bool_0_1_7;

#
# Too strict bounds without upstream fix
#

# Forbids transformers >= 0.6
quickcheck-classes-base = doJailbreak super.quickcheck-classes-base;
# Forbids base >= 4.18
singleton-bool = doJailbreak super.singleton-bool;
# Forbids base >= 4.18
unliftio-core = doJailbreak super.unliftio-core;
# Forbids mtl >= 2.3
ChasingBottoms = doJailbreak super.ChasingBottoms;
# Forbids base >= 4.18
cabal-install-solver = doJailbreak super.cabal-install-solver;
cabal-install = doJailbreak super.cabal-install;
# Forbids base >= 4.18
lukko = doJailbreak super.lukko;

# Forbids base >= 4.18, fix proposed: https://github.com/sjakobi/newtype-generics/pull/25
newtype-generics = jailbreakForCurrentVersion super.newtype-generics "0.6.2";
# Forbids base >= 4.18, fix proposed: https://github.com/well-typed/cborg/pull/312
cborg = jailbreakForCurrentVersion super.cborg "0.2.8.0";
cborg-json = jailbreakForCurrentVersion super.cborg-json "0.2.5.0";
serialise = jailbreakForCurrentVersion super.serialise "0.2.6.0";

#
# Too strict bounds, waiting on Hackage release in nixpkgs
Expand Down Expand Up @@ -122,6 +137,18 @@ self: super: {
})
] (super.foundation);

# Add support for time 1.10
# https://github.com/vincenthz/hs-hourglass/pull/56
hourglass = appendPatches [
(pkgs.fetchpatch {
name = "hourglass-pr-56.patch";
url =
"https://github.com/vincenthz/hs-hourglass/commit/cfc2a4b01f9993b1b51432f0a95fa6730d9a558a.patch";
sha256 = "sha256-gntZf7RkaR4qzrhjrXSC69jE44SknPDBmfs4z9rVa5Q=";
})
] (super.hourglass);


# Test suite doesn't compile with base-4.18 / GHC 9.6
# https://github.com/dreixel/syb/issues/40
syb = dontCheck super.syb;
Expand All @@ -146,7 +173,6 @@ self: super: {
rebase = doJailbreak super.rebase_1_20;
rerebase = doJailbreak super.rerebase_1_20;
hiedb = dontCheck super.hiedb;
lucid = doJailbreak (dontCheck super.lucid);
retrie = dontCheck (super.retrie);

ghc-exactprint = unmarkBroken (addBuildDepends (with self.ghc-exactprint.scope; [
Expand Down
Loading