Merge pull request #202022 from NixOS/haskell-updates

haskellPackages: stackage LTS 19 -> 20; GHC 9.0.2 -> 9.2.4
This commit is contained in:
maralorn 2022-12-24 19:27:16 +01:00 committed by GitHub
commit bb7f53d185
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
38 changed files with 7516 additions and 9198 deletions

View file

@ -28,6 +28,10 @@ stdenv.mkDerivation {
# This wrapper and wrapper only is under PD
license = licenses.publicDomain;
maintainers = with maintainers; [ ];
# dependency yi-language no longer builds
hydraPlatforms = lib.platforms.none;
broken = true;
};
}

View file

@ -7,7 +7,7 @@ stdenvNoCC.mkDerivation rec {
src = fetchurl {
name = "hledger-check-fancyassertion-${version}.hs";
url = "https://raw.githubusercontent.com/simonmichael/hledger/hledger-lib-${version}/bin/hledger-check-fancyassertions.hs";
sha256 = "1xy3ssxnwybq40nlffz95w7m9xbzf8ysb13svg0i8g5sfgrw11vk";
sha256 = "0lyyz8dqkknd9d073l613kdkaqd9r6ymdw94d7mwp17pxvfr17wf";
};
dontUnpack = true;

View file

@ -24,4 +24,8 @@ mkDerivation rec {
license = lib.licenses.gpl3;
maintainers = with lib.maintainers; [ raskin ];
inherit (sbv_7_13.meta) platforms;
# dependency sbv no longer builds
hydraPlatforms = lib.platforms.none;
broken = true;
}

View file

@ -1,6 +1,6 @@
{
"commit": "e2ccf8a8796c9192280f796ce0f5d98ec783f856",
"url": "https://github.com/commercialhaskell/all-cabal-hashes/archive/e2ccf8a8796c9192280f796ce0f5d98ec783f856.tar.gz",
"sha256": "092g4pbxyhkw1isbib967v5aw16iqs3w5iqcicv1irr4rphsr06z",
"msg": "Update from Hackage at 2022-11-11T17:48:48Z"
"commit": "d2f407d64c568ff572505378248cd834f808f6e0",
"url": "https://github.com/commercialhaskell/all-cabal-hashes/archive/d2f407d64c568ff572505378248cd834f808f6e0.tar.gz",
"sha256": "0agbmi2gjrg5gnp8dy76770lyh3ny42clm55wlr529320wnc14wm",
"msg": "Update from Hackage at 2022-12-18T22:10:13Z"
}

View file

@ -50,4 +50,7 @@ haskellPackages.mkDerivation rec {
# Windows not (yet) supported.
platforms = with lib.platforms; unix ++ darwin;
# doesn't build on ghc92
hydraPlatforms = lib.platforms.none;
broken = true;
}

View file

@ -37,6 +37,7 @@ let
*/
elm-format = justStaticExecutables (overrideCabal (drv: {
jailbreak = true;
doCheck = assert (drv.version == "0.8.5"); false; # golden tests fail with optparse-applicative 0.17
description = "Formats Elm source code according to a standard set of rules based on the official Elm Style Guide";
homepage = "https://github.com/avh4/elm-format";
@ -96,6 +97,7 @@ let
hspec = self.hspec_2_7_10;
hspec-core = self.hspec-core_2_7_10;
hspec-discover = self.hspec-discover_2_7_10;
hspec-meta = self.hspec-meta_2_7_8;
elm-format-test-lib = self.callPackage ./packages/elm-format-test-lib.nix {};
elm-format-markdown = self.callPackage ./packages/elm-format-markdown.nix {};

View file

@ -194,6 +194,14 @@ stdenv.mkDerivation (rec {
extraPrefix = "utils/haddock/";
stripLen = 1;
})
# Don't generate code that doesn't compile when --enable-relocatable is passed to Setup.hs
# Can be removed if the Cabal library included with ghc backports the linked fix
(fetchpatch {
url = "https://github.com/haskell/cabal/commit/6c796218c92f93c95e94d5ec2d077f6956f68e98.patch";
stripLen = 1;
extraPrefix = "libraries/Cabal/";
sha256 = "sha256-yRQ6YmMiwBwiYseC5BsrEtDgFbWvst+maGgDtdD0vAY=";
})
];
postPatch = "patchShebangs .";

View file

@ -194,6 +194,14 @@ stdenv.mkDerivation (rec {
extraPrefix = "utils/haddock/";
stripLen = 1;
})
# Don't generate code that doesn't compile when --enable-relocatable is passed to Setup.hs
# Can be removed if the Cabal library included with ghc backports the linked fix
(fetchpatch {
url = "https://github.com/haskell/cabal/commit/6c796218c92f93c95e94d5ec2d077f6956f68e98.patch";
stripLen = 1;
extraPrefix = "libraries/Cabal/";
sha256 = "sha256-yRQ6YmMiwBwiYseC5BsrEtDgFbWvst+maGgDtdD0vAY=";
})
];
postPatch = "patchShebangs .";

View file

@ -71,7 +71,7 @@ $ ./maintainers/scripts/haskell/hydra-report.hs get-report
$ ./maintainers/scripts/haskell/hydra-report.hs ping-maintainers
```
The `hyda-report.hs ping-maintainers` command generates a Markdown document
The `hydra-report.hs ping-maintainers` command generates a Markdown document
that you can paste in a GitHub comment on the PR opened above. This
comment describes which Haskell packages are now failing to build. It also
pings the maintainers so that they know to fix up their packages.

View file

@ -8,10 +8,10 @@
}:
mkDerivation {
pname = "cabal2nix";
version = "unstable-2022-10-22";
version = "unstable-2022-12-08";
src = fetchzip {
url = "https://github.com/NixOS/cabal2nix/archive/bf7cc8f202e332953f7fbfc1d90490e4c197d287.tar.gz";
sha256 = "0fmpfl2nl215aids9yxdmdik77w7cppk900rnx23m07rmwg4xa4f";
url = "https://github.com/NixOS/cabal2nix/archive/021a48f4b4942462154b06fd81429a248638f87f.tar.gz";
sha256 = "1is1q5mqi86vzy3ni2959hr95gs9hwd5wiz92hanfli3infg00xc";
};
postUnpack = "sourceRoot+=/cabal2nix; echo source root reset to $sourceRoot";
isLibrary = true;

File diff suppressed because it is too large Load diff

View file

@ -301,12 +301,12 @@ self: super: ({
# Build segfaults unless `fixity-th` is disabled.
# https://github.com/tweag/ormolu/issues/927
ormolu_0_5_0_1 = overrideCabal (drv: {
ormolu = overrideCabal (drv: {
libraryHaskellDepends = drv.libraryHaskellDepends ++ [ self.file-embed ];
}) (disableCabalFlag "fixity-th" super.ormolu_0_5_0_1);
fourmolu_0_9_0_0 = overrideCabal (drv: {
}) (disableCabalFlag "fixity-th" super.ormolu);
fourmolu = overrideCabal (drv: {
libraryHaskellDepends = drv.libraryHaskellDepends ++ [ self.file-embed ];
}) (disableCabalFlag "fixity-th" super.fourmolu_0_9_0_0);
}) (disableCabalFlag "fixity-th" super.fourmolu);
} // lib.optionalAttrs pkgs.stdenv.isx86_64 { # x86_64-darwin

View file

@ -53,6 +53,9 @@ self: super: {
Cabal = self.Cabal_3_8_1_0;
Cabal-syntax = self.Cabal-syntax_3_8_1_0;
process = self.process_1_6_16_0;
# Prevent dependency on doctest which causes an inconsistent dependency
# due to depending on ghc-8.10.7 (with bundled process) vs. process 1.6.16.0
vector = dontCheck super.vector;
});
cabal-install-solver = super.cabal-install-solver.overrideScope (self: super: {
Cabal = self.Cabal_3_8_1_0;
@ -60,8 +63,11 @@ self: super: {
process = self.process_1_6_16_0;
});
# Additionally depends on OneTuple for GHC < 9.0
base-compat-batteries = addBuildDepend self.OneTuple super.base-compat-batteries;
# Pick right versions for GHC-specific packages
ghc-api-compat = doDistribute self.ghc-api-compat_8_10_7;
ghc-api-compat = doDistribute (unmarkBroken self.ghc-api-compat_8_10_7);
# ghc versions which dont match the ghc-lib-parser-ex version need the
# additional dependency to compile successfully.
@ -96,17 +102,36 @@ self: super: {
executableHaskellDepends = drv.executableToolDepends or [] ++ [ self.repline ];
}) super.hnix);
haskell-language-server = addBuildDepend self.hls-brittany-plugin (super.haskell-language-server.overrideScope (lself: lsuper: {
haskell-language-server = let
# These aren't included in hackage-packages.nix because hackage2nix is configured for GHC 9.2, under which these plugins aren't supported.
# See https://github.com/NixOS/nixpkgs/pull/205902 for why we use `self.<package>.scope`
additionalDeps = with self.haskell-language-server.scope; [
hls-brittany-plugin
hls-haddock-comments-plugin
(unmarkBroken hls-splice-plugin)
(unmarkBroken hls-tactics-plugin)
];
in addBuildDepends additionalDeps (super.haskell-language-server.overrideScope (lself: lsuper: {
Cabal = lself.Cabal_3_6_3_0;
aeson = lself.aeson_1_5_6_0;
lens-aeson = lself.lens-aeson_1_1_3;
lsp-types = doJailbreak lsuper.lsp-types; # Checks require aeson >= 2.0
}));
hls-brittany-plugin = super.hls-brittany-plugin.overrideScope (lself: lsuper: {
hls-brittany-plugin = unmarkBroken (addBuildDepends (with self.hls-brittany-plugin.scope; [
brittany czipwith extra ghc-exactprint ghcide hls-plugin-api hls-test-utils lens lsp-types
]) (super.hls-brittany-plugin.overrideScope (lself: lsuper: {
brittany = doJailbreak lself.brittany_0_13_1_2;
aeson = lself.aeson_1_5_6_0;
multistate = unmarkBroken (dontCheck lsuper.multistate);
lsp-types = doJailbreak lsuper.lsp-types; # Checks require aeson >= 2.0
});
})));
# This package is marked as unbuildable on GHC 9.2, so hackage2nix doesn't include any dependencies.
# See https://github.com/NixOS/nixpkgs/pull/205902 for why we use `self.<package>.scope`
hls-haddock-comments-plugin = unmarkBroken (addBuildDepends (with self.hls-haddock-comments-plugin.scope; [
ghc-exactprint ghcide hls-plugin-api hls-refactor-plugin lsp-types unordered-containers
]) super.hls-haddock-comments-plugin);
mime-string = disableOptimization super.mime-string;
@ -118,6 +143,8 @@ self: super: {
ghc-prim = self.hashable;
};
hashable = addBuildDepend self.base-orphans super.hashable;
# Doesn't build with 9.0, see https://github.com/yi-editor/yi/issues/1125
yi-core = doDistribute (markUnbroken super.yi-core);
@ -145,4 +172,8 @@ self: super: {
# Unnecessarily strict lower bound on base
# https://github.com/mrkkrp/megaparsec/pull/485#issuecomment-1250051823
megaparsec = doJailbreak super.megaparsec;
# Later versions only support GHC >= 9.2
ghc-exactprint = self.ghc-exactprint_0_6_4;
apply-refact = self.apply-refact_0_9_3_0;
}

View file

@ -66,6 +66,9 @@ self: super: {
process = self.process_1_6_16_0;
});
# Additionally depends on OneTuple for GHC < 9.0
base-compat-batteries = addBuildDepend self.OneTuple super.base-compat-batteries;
# Ignore overly restrictive upper version bounds.
aeson-diff = doJailbreak super.aeson-diff;
async = doJailbreak super.async;
@ -73,7 +76,7 @@ self: super: {
chell = doJailbreak super.chell;
Diff = dontCheck super.Diff;
doctest = doJailbreak super.doctest;
hashable = doJailbreak super.hashable;
hashable = addBuildDepend self.base-orphans super.hashable;
hashable-time = doJailbreak super.hashable-time;
hledger-lib = doJailbreak super.hledger-lib; # base >=4.8 && <4.13, easytest >=0.2.1 && <0.3
integer-logarithms = doJailbreak super.integer-logarithms;
@ -123,45 +126,57 @@ self: super: {
liquidhaskell = markBroken super.liquidhaskell;
# This became a core library in ghc 8.10., so we dont have an "exception" attribute anymore.
exceptions = super.exceptions_0_10_5;
# ghc versions which dont match the ghc-lib-parser-ex version need the
# additional dependency to compile successfully.
ghc-lib-parser-ex = addBuildDepend self.ghc-lib-parser super.ghc-lib-parser-ex;
exceptions = super.exceptions_0_10_7;
ormolu = super.ormolu_0_2_0_0;
# vector 0.12.2 indroduced doctest checks that dont work on older compilers
vector = dontCheck super.vector;
ghc-api-compat = doDistribute super.ghc-api-compat_8_6;
ghc-api-compat = doDistribute (unmarkBroken super.ghc-api-compat_8_6);
mime-string = disableOptimization super.mime-string;
haskell-language-server = addBuildDepend self.hls-brittany-plugin (super.haskell-language-server.overrideScope (lself: lsuper: {
ghc-lib-parser = lself.ghc-lib-parser_8_10_7_20220219;
ghc-lib-parser-ex = addBuildDepend lself.ghc-lib-parser lself.ghc-lib-parser-ex_8_10_0_24;
haskell-language-server = let
# These aren't included in hackage-packages.nix because hackage2nix is configured for GHC 9.2, under which these plugins aren't supported.
# See https://github.com/NixOS/nixpkgs/pull/205902 for why we use `self.<package>.scope`
additionalDeps = with self.haskell-language-server.scope; [
hls-brittany-plugin
hls-haddock-comments-plugin
(unmarkBroken hls-splice-plugin)
(unmarkBroken hls-tactics-plugin)
];
in addBuildDepends additionalDeps (super.haskell-language-server.overrideScope (lself: lsuper: {
# Pick old ormolu and fourmolu because ghc-lib-parser is not compatible
ormolu = doJailbreak lself.ormolu_0_1_4_1;
fourmolu = doJailbreak lself.fourmolu_0_3_0_0;
hlint = lself.hlint_3_2_8;
aeson = lself.aeson_1_5_6_0;
stylish-haskell = lself.stylish-haskell_0_13_0_0;
lens-aeson = lself.lens-aeson_1_1_3;
stylish-haskell = doJailbreak lself.stylish-haskell_0_13_0_0;
lsp-types = doJailbreak lsuper.lsp-types;
}));
hls-hlint-plugin = super.hls-hlint-plugin.overrideScope (lself: lsuper: {
# For "ghc-lib" flag see https://github.com/haskell/haskell-language-server/issues/3185#issuecomment-1250264515
hlint = lself.hlint_3_2_8;
ghc-lib-parser = lself.ghc-lib-parser_8_10_7_20220219;
ghc-lib-parser-ex = addBuildDepend lself.ghc-lib-parser lself.ghc-lib-parser-ex_8_10_0_24;
});
hlint = self.hlint_3_2_8;
hls-brittany-plugin = super.hls-brittany-plugin.overrideScope (lself: lsuper: {
ghc-lib-parser = self.ghc-lib-parser_8_10_7_20220219;
# ghc versions which dont match the ghc-lib-parser-ex version need the
# additional dependency to compile successfully.
ghc-lib-parser-ex = addBuildDepend self.ghc-lib-parser self.ghc-lib-parser-ex_8_10_0_24;
hls-brittany-plugin = unmarkBroken (addBuildDepends (with self.hls-brittany-plugin.scope; [
brittany czipwith extra ghc-exactprint ghcide hls-plugin-api hls-test-utils lens lsp-types
]) (super.hls-brittany-plugin.overrideScope (lself: lsuper: {
brittany = doJailbreak lself.brittany_0_13_1_2;
aeson = lself.aeson_1_5_6_0;
lsp-types = doJailbreak lsuper.lsp-types;
});
multistate = unmarkBroken (dontCheck lsuper.multistate);
lsp-types = doJailbreak lsuper.lsp-types; # Checks require aeson >= 2.0
})));
# This package is marked as unbuildable on GHC 9.2, so hackage2nix doesn't include any dependencies.
# See https://github.com/NixOS/nixpkgs/pull/205902 for why we use `self.<package>.scope`
hls-haddock-comments-plugin = unmarkBroken (addBuildDepends (with self.hls-haddock-comments-plugin.scope; [
ghc-exactprint ghcide hls-plugin-api hls-refactor-plugin lsp-types unordered-containers
]) super.hls-haddock-comments-plugin);
# has a restrictive lower bound on Cabal
fourmolu = doJailbreak super.fourmolu;
@ -189,4 +204,8 @@ self: super: {
# Unnecessarily strict lower bound on base
# https://github.com/mrkkrp/megaparsec/pull/485#issuecomment-1250051823
megaparsec = doJailbreak super.megaparsec;
# Later versions only support GHC >= 9.2
ghc-exactprint = self.ghc-exactprint_0_6_4;
apply-refact = self.apply-refact_0_9_3_0;
}

View file

@ -72,7 +72,14 @@ self: super: {
dec = doJailbreak super.dec;
ed25519 = doJailbreak super.ed25519;
hackage-security = doJailbreak super.hackage-security;
hashable = overrideCabal (drv: { postPatch = "sed -i -e 's,integer-gmp .*<1.1,integer-gmp < 2,' hashable.cabal"; }) (doJailbreak (dontCheck super.hashable));
hashable =
pkgs.lib.pipe
super.hashable
[ (overrideCabal (drv: { postPatch = "sed -i -e 's,integer-gmp .*<1.1,integer-gmp < 2,' hashable.cabal"; }))
doJailbreak
dontCheck
(addBuildDepend self.base-orphans)
];
hashable-time = doJailbreak super.hashable-time;
HTTP = overrideCabal (drv: { postPatch = "sed -i -e 's,! Socket,!Socket,' Network/TCP.hs"; }) (doJailbreak super.HTTP);
integer-logarithms = overrideCabal (drv: { postPatch = "sed -i -e 's,integer-gmp <1.1,integer-gmp < 2,' integer-logarithms.cabal"; }) (doJailbreak super.integer-logarithms);
@ -85,6 +92,7 @@ self: super: {
split = doJailbreak super.split;
tar = doJailbreak super.tar;
time-compat = doJailbreak super.time-compat;
tuple = addBuildDepend self.base-orphans super.tuple;
vector = doJailbreak (dontCheck super.vector);
vector-binary-instances = doJailbreak super.vector-binary-instances;
vector-th-unbox = doJailbreak super.vector-th-unbox;
@ -99,11 +107,25 @@ self: super: {
sha256 = "0rgzrq0513nlc1vw7nw4km4bcwn4ivxcgi33jly4a7n3c1r32v1f";
}) (doJailbreak super.language-haskell-extract);
haskell-language-server = super.haskell-language-server.overrideScope (lself: lsuper: {
haskell-language-server = let
# These aren't included in hackage-packages.nix because hackage2nix is configured for GHC 9.2, under which these plugins aren't supported.
# See https://github.com/NixOS/nixpkgs/pull/205902 for why we use `self.<package>.scope`
additionalDeps = with self.haskell-language-server.scope; [
hls-haddock-comments-plugin
(unmarkBroken hls-splice-plugin)
(unmarkBroken hls-tactics-plugin)
];
in addBuildDepends additionalDeps (super.haskell-language-server.overrideScope (lself: lsuper: {
# Needed for modern ormolu and fourmolu.
# Apply this here and not in common, because other ghc versions offer different Cabal versions.
Cabal = lself.Cabal_3_6_3_0;
});
}));
# This package is marked as unbuildable on GHC 9.2, so hackage2nix doesn't include any dependencies.
# See https://github.com/NixOS/nixpkgs/pull/205902 for why we use `self.<package>.scope`
hls-haddock-comments-plugin = unmarkBroken (addBuildDepends (with self.hls-haddock-comments-plugin.scope; [
ghc-exactprint ghcide hls-plugin-api hls-refactor-plugin lsp-types unordered-containers
]) super.hls-haddock-comments-plugin);
# The test suite depends on ChasingBottoms, which is broken with ghc-9.0.x.
unordered-containers = dontCheck super.unordered-containers;
@ -124,6 +146,8 @@ self: super: {
# https://github.com/Soostone/retry/issues/71
retry = dontCheck super.retry;
ghc-api-compat = unmarkBroken super.ghc-api-compat;
# 2021-09-18: cabal2nix does not detect the need for ghc-api-compat.
hiedb = overrideCabal (old: {
libraryHaskellDepends = old.libraryHaskellDepends ++ [self.ghc-api-compat];
@ -150,4 +174,8 @@ self: super: {
# Restrictive upper bound on base and containers
sv2v = doJailbreak super.sv2v;
# Later versions only support GHC >= 9.2
ghc-exactprint = self.ghc-exactprint_0_6_4;
apply-refact = self.apply-refact_0_9_3_0;
}

View file

@ -49,12 +49,6 @@ self: super: {
# 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 self.xhtml_3000_2_2_1;
# Tests fail because of typechecking changes
conduit = dontCheck super.conduit;
# 0.30 introduced support for GHC 9.2.
cryptonite = doDistribute self.cryptonite_0_30;
# cabal-install needs most recent versions of Cabal and Cabal-syntax
cabal-install = super.cabal-install.overrideScope (self: super: {
Cabal = self.Cabal_3_8_1_0;
@ -67,112 +61,17 @@ self: super: {
process = self.process_1_6_16_0;
});
doctest = dontCheck (doJailbreak super.doctest);
# Tests fail in GHC 9.2
extra = dontCheck super.extra;
# Jailbreaks & Version Updates
# This `doJailbreak` can be removed once we have doctest v0.20
aeson-diff = assert super.doctest.version == "0.18.2"; doJailbreak super.aeson-diff;
assoc = doJailbreak super.assoc;
async = doJailbreak super.async;
base64-bytestring = doJailbreak super.base64-bytestring;
base-compat = self.base-compat_0_12_2;
base-compat-batteries = self.base-compat-batteries_0_12_2;
binary-instances = doJailbreak super.binary-instances;
ChasingBottoms = doJailbreak super.ChasingBottoms;
constraints = doJailbreak super.constraints;
cpphs = overrideCabal (drv: { postPatch = "sed -i -e 's,time >=1.5 && <1.11,time >=1.5 \\&\\& <1.12,' cpphs.cabal";}) super.cpphs;
data-fix = doJailbreak super.data-fix;
dbus = self.dbus_1_2_27;
dec = doJailbreak super.dec;
ed25519 = doJailbreak super.ed25519;
ghc-byteorder = doJailbreak super.ghc-byteorder;
ghc-exactprint = overrideCabal (drv: {
# HACK: ghc-exactprint 1.4.1 is not buildable for GHC < 9.2,
# but hackage2nix evaluates the cabal file with GHC 8.10.*,
# causing the build-depends to be skipped. Since the dependency
# list hasn't changed much since 0.6.4, we can just reuse the
# normal expression.
inherit (self.ghc-exactprint_1_5_0) src version;
revision = null; editedCabalFile = null;
libraryHaskellDepends = [
self.fail
self.ordered-containers
self.data-default
] ++ drv.libraryHaskellDepends or [];
}) super.ghc-exactprint;
ghc-lib = doDistribute self.ghc-lib_9_2_5_20221107;
ghc-lib-parser = doDistribute self.ghc-lib-parser_9_2_5_20221107;
ghc-lib-parser-ex = doDistribute self.ghc-lib-parser-ex_9_2_1_1;
hackage-security = doJailbreak super.hackage-security;
hashable = super.hashable_1_4_1_0;
hashable-time = doJailbreak super.hashable-time;
# 1.1.1 introduced support for GHC 9.2.x, so when this assert fails, the jailbreak can be removed
hedgehog = assert super.hedgehog.version == "1.0.5"; doJailbreak super.hedgehog;
HTTP = overrideCabal (drv: { postPatch = "sed -i -e 's,! Socket,!Socket,' Network/TCP.hs"; }) (doJailbreak super.HTTP);
integer-logarithms = overrideCabal (drv: { postPatch = "sed -i -e 's, <1.1, <1.3,' integer-logarithms.cabal"; }) (doJailbreak super.integer-logarithms);
indexed-traversable = doJailbreak super.indexed-traversable;
indexed-traversable-instances = doJailbreak super.indexed-traversable-instances;
lifted-async = doJailbreak super.lifted-async;
lukko = doJailbreak super.lukko;
lzma-conduit = doJailbreak super.lzma-conduit;
ormolu = self.ormolu_0_5_0_1;
parallel = doJailbreak super.parallel;
path = doJailbreak super.path;
polyparse = overrideCabal (drv: { postPatch = "sed -i -e 's, <0.11, <0.12,' polyparse.cabal"; }) (doJailbreak super.polyparse);
primitive = doJailbreak super.primitive;
regex-posix = doJailbreak super.regex-posix;
resolv = doJailbreak super.resolv;
retrie = doDistribute (dontCheck self.retrie_1_2_0_1);
singleton-bool = doJailbreak super.singleton-bool;
servant = doJailbreak super.servant;
servant-swagger = doJailbreak super.servant-swagger;
retrie = doJailbreak super.retrie_1_2_1_1;
# Depends on utf8-light which isn't maintained / doesn't support base >= 4.16
# https://github.com/haskell-infra/hackage-trustees/issues/347
# 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;
# 2022-09-02: Too strict bounds on lens
# https://github.com/haskell-servant/servant/pull/1607/files
servant-docs = doJailbreak super.servant-docs;
servant-foreign = doJailbreak super.servant-foreign;
servant-auth = doJailbreak super.servant-auth;
servant-auth-docs = doJailbreak super.servant-auth-docs;
servant-auth-server = doJailbreak super.servant-auth-server;
servant-auth-swagger = doJailbreak super.servant-auth-swagger;
# 2022-09-02: Too strict bounds on lens
# https://github.com/haskell-servant/servant-multipart/pull/64
servant-multipart = doJailbreak super.servant-multipart;
# 2022-09-02: Too strict bounds on lens
# https://github.com/GetShopTV/swagger2/pull/242
swagger2 = doJailbreak super.swagger2;
shelly = doJailbreak super.shelly;
splitmix = doJailbreak super.splitmix;
tasty-hspec = doJailbreak super.tasty-hspec;
th-desugar = self.th-desugar_1_14;
time-compat = doJailbreak super.time-compat;
tomland = doJailbreak super.tomland;
type-equality = doJailbreak super.type-equality;
unordered-containers = doJailbreak super.unordered-containers;
vector = dontCheck super.vector;
vector-binary-instances = doJailbreak super.vector-binary-instances;
hpack = overrideCabal (drv: {
# Cabal 3.6 seems to preserve comments when reading, which makes this test fail
# 2021-10-10: 9.2.1 is not yet supported (also no issue)
testFlags = [
"--skip=/Hpack/renderCabalFile/is inverse to readCabalFile/"
] ++ drv.testFlags or [];
}) (doJailbreak super.hpack);
# lens >= 5.1 supports 9.2.1
lens = doDistribute self.lens_5_2;
# Apply patches from head.hackage.
language-haskell-extract = appendPatch (pkgs.fetchpatch {
@ -183,22 +82,11 @@ self: super: {
# Tests depend on `parseTime` which is no longer available
hourglass = dontCheck super.hourglass;
# 0.17.0 introduced support for GHC 9.2.x, so when this assert fails, the whole block can be removed
memory = assert super.memory.version == "0.16.0"; appendPatch (pkgs.fetchpatch {
url = "https://gitlab.haskell.org/ghc/head.hackage/-/raw/dfd024c9a336c752288ec35879017a43bd7e85a0/patches/memory-0.16.0.patch";
sha256 = "1kjganx729a6xfgfnrb3z7q6mvnidl042zrsd9n5n5a3i76nl5nl";
}) (overrideCabal {
editedCabalFile = null;
revision = null;
} super.memory);
# For -fghc-lib see cabal.project in haskell-language-server.
stylish-haskell = enableCabalFlag "ghc-lib" super.stylish-haskell;
# For "ghc-lib" flag see https://github.com/haskell/haskell-language-server/issues/3185#issuecomment-1250264515
hlint = doDistribute (enableCabalFlag "ghc-lib" (super.hlint_3_4_1.override {
ghc-lib-parser-ex = self.ghc-lib-parser-ex_9_2_0_4;
}));
hlint = enableCabalFlag "ghc-lib" super.hlint;
# https://github.com/sjakobi/bsb-http-chunked/issues/38
bsb-http-chunked = dontCheck super.bsb-http-chunked;
@ -206,32 +94,12 @@ self: super: {
# need bytestring >= 0.11 which is only bundled with GHC >= 9.2
regex-rure = doDistribute (markUnbroken super.regex-rure);
jacinda = doDistribute super.jacinda;
some = doJailbreak super.some;
fourmolu = super.fourmolu_0_9_0_0;
implicit-hie-cradle = doJailbreak super.implicit-hie-cradle;
# 1.3 introduced support for GHC 9.2.x, so when this assert fails, the jailbreak can be removed
hashtables = assert super.hashtables.version == "1.2.4.2"; doJailbreak super.hashtables;
# 2022-08-01: Tests are broken on ghc 9.2.4: https://github.com/wz1000/HieDb/issues/46
hiedb = doJailbreak (dontCheck super.hiedb);
apply-refact = doDistribute super.apply-refact_0_10_0_0;
# 2022-02-05: The following plugins dont work yet on ghc9.2.
# Compare: https://haskell-language-server.readthedocs.io/en/latest/supported-versions.html
haskell-language-server = super.haskell-language-server.override {
hls-haddock-comments-plugin = null;
hls-splice-plugin = null;
hls-tactics-plugin = null;
};
hiedb = dontCheck super.hiedb;
# https://github.com/fpco/inline-c/pull/131
inline-c-cpp =
(if isDarwin then appendConfigureFlags ["--ghc-option=-fcompact-unwind"] else x: x)
super.inline-c-cpp;
relude = dontCheck self.relude_1_1_0_0;
hermes-json = doJailbreak super.hermes-json;
}

View file

@ -58,10 +58,6 @@ in {
# Tests fail because of typechecking changes
conduit = dontCheck super.conduit;
# 0.30 introduced support for GHC 9.2.
cryptonite = doDistribute self.cryptonite_0_30;
doctest = self.doctest_0_20_1;
# consequences of doctest breakage follow:
double-conversion = markBroken super.double-conversion;
@ -69,8 +65,6 @@ in {
ghc-source-gen = checkAgainAfter super.ghc-source-gen "0.4.3.0" "fails to build" (markBroken super.ghc-source-gen);
lucid = jailbreakForCurrentVersion super.lucid "2.11.1";
invariant = jailbreakForCurrentVersion super.invariant "0.5.6";
implicit-hie-cradle = jailbreakForCurrentVersion super.implicit-hie-cradle "0.5.0.0";
haskell-src-meta = doJailbreak super.haskell-src-meta;
@ -80,13 +74,10 @@ in {
# Jailbreaks & Version Updates
aeson = self.aeson_2_1_1_0;
lens-aeson = self.lens-aeson_1_2_2;
assoc = doJailbreak super.assoc;
async = doJailbreak super.async;
base64-bytestring = doJailbreak super.base64-bytestring;
base-compat = self.base-compat_0_12_2;
base-compat-batteries = self.base-compat-batteries_0_12_2;
binary-instances = doJailbreak super.binary-instances;
ChasingBottoms = doJailbreak super.ChasingBottoms;
constraints = doJailbreak super.constraints;
@ -99,7 +90,6 @@ in {
ghc-lib-parser = doDistribute self.ghc-lib-parser_9_4_3_20221104;
ghc-lib-parser-ex = doDistribute self.ghc-lib-parser-ex_9_4_0_0;
hackage-security = doJailbreak super.hackage-security;
hashable = super.hashable_1_4_1_0;
hashable-time = doJailbreak super.hashable-time;
HTTP = overrideCabal (drv: { postPatch = "sed -i -e 's,! Socket,!Socket,' Network/TCP.hs"; }) (doJailbreak super.HTTP);
integer-logarithms = overrideCabal (drv: { postPatch = "sed -i -e 's, <1.1, <1.3,' integer-logarithms.cabal"; }) (doJailbreak super.integer-logarithms);
@ -115,20 +105,17 @@ in {
regex-posix = doJailbreak super.regex-posix;
resolv = doJailbreak super.resolv;
singleton-bool = doJailbreak super.singleton-bool;
# 2022-09-02: Too strict bounds on lens
# https://github.com/GetShopTV/swagger2/pull/242
swagger2 = doJailbreak super.swagger2;
rope-utf16-splay = doDistribute self.rope-utf16-splay_0_4_0_0;
base-orphans = dontCheck super.base-orphans;
# 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_6;
hspec-core = self.hspec-core_2_10_6;
hspec = self.hspec_2_10_7;
hspec-core = self.hspec-core_2_10_7;
hspec-meta = self.hspec-meta_2_10_5;
hspec-discover = self.hspec-discover_2_10_6;
hspec-discover = self.hspec-discover_2_10_7;
# the dontHaddock is due to a GHC panic. might be this bug, not sure.
# https://gitlab.haskell.org/ghc/ghc/-/issues/21619
@ -136,11 +123,9 @@ in {
# We need >= 1.1.2 for ghc-9.4 support, but we don't have 1.1.x in
# hackage-packages.nix
hedgehog = doDistribute (dontHaddock super.hedgehog_1_2);
# does not work with hedgehog 1.2 yet:
# tasty-hedgehog > 1.3 necessary to work with hedgehog 1.2:
# https://github.com/qfpl/tasty-hedgehog/pull/63
tasty-hedgehog = markBroken super.tasty-hedgehog;
# due to tasty-hedgehog
retry = checkAgainAfter super.tasty-hedgehog "1.3.0.0" "tasty-hedgehog broken" (dontCheck super.retry);
tasty-hedgehog = self.tasty-hedgehog_1_4_0_0;
# https://github.com/dreixel/syb/issues/38
syb = dontCheck super.syb;
@ -154,10 +139,6 @@ in {
vector = dontCheck super.vector;
vector-binary-instances = doJailbreak super.vector-binary-instances;
# fixed in 1.16.x but it's not in hackage-packages yet.
rebase = jailbreakForCurrentVersion super.rebase "1.15.0.3";
rerebase = jailbreakForCurrentVersion super.rerebase "1.15.0.3";
hpack = overrideCabal (drv: {
# Cabal 3.6 seems to preserve comments when reading, which makes this test fail
# 2021-10-10: 9.2.1 is not yet supported (also no issue)
@ -188,20 +169,12 @@ in {
jacinda = doDistribute super.jacinda;
some = doJailbreak super.some;
# 1.3 introduced support for GHC 9.2.x, so when this assert fails, the jailbreak can be removed
hashtables = assert super.hashtables.version == "1.2.4.2"; doJailbreak super.hashtables;
# 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;
# 2022-11-06: Override override from common, because Cabal-syntax is included since ghc 9.4.
implicit-hie = super.implicit-hie.override {
Cabal-syntax = null;
};
# 2022-10-06: plugins disabled for hls 1.8.0.0 based on
# https://haskell-language-server.readthedocs.io/en/latest/support/plugin-support.html#current-plugin-support-tiers
haskell-language-server = super.haskell-language-server.override {
@ -215,10 +188,7 @@ in {
hls-ormolu-plugin = null;
hls-rename-plugin = null;
hls-stylish-haskell-plugin = null;
hls-tactics-plugin = null;
hls-haddock-comments-plugin = null;
hls-retrie-plugin = null;
hls-splice-plugin = null;
};
# https://github.com/tweag/ormolu/issues/941

View file

@ -1,40 +1,40 @@
# pkgs/development/haskell-modules/configuration-hackage2nix.yaml
compiler: ghc-9.0.2
compiler: ghc-9.2.4
core-packages:
- Cabal-3.6.3.0
- array-0.5.4.0
- base-4.15.1.0
- binary-0.8.8.0
- bytestring-0.10.12.1
- Cabal-3.4.1.0
- containers-0.6.4.1
- deepseq-1.4.5.0
- base-4.16.3.0
- binary-0.8.9.0
- bytestring-0.11.3.1
- containers-0.6.5.1
- deepseq-1.4.6.1
- directory-1.3.6.2
- exceptions-0.10.4
- filepath-1.4.2.1
- ghc-9.0.2
- ghc-bignum-1.1
- ghc-boot-9.0.2
- ghc-boot-th-9.0.2
- filepath-1.4.2.2
- ghc-9.2.4
- ghc-bignum-1.2
- ghc-boot-9.2.4
- ghc-boot-th-9.2.4
- ghc-compact-0.1.0.0
- ghc-heap-9.0.2
- ghc-prim-0.7.0
- ghci-9.0.2
- ghc-heap-9.2.4
- ghc-prim-0.8.0
- ghci-9.2.4
- haskeline-0.8.2
- hpc-0.6.1.0
- integer-gmp-1.1
- libiserv-9.0.2
- libiserv-9.2.4
- mtl-2.2.2
- parsec-3.1.14.0
- parsec-3.1.15.0
- pretty-1.1.3.6
- process-1.6.13.2
- rts-1.0.2
- stm-2.5.0.0
- template-haskell-2.17.0.0
- stm-2.5.0.2
- template-haskell-2.18.0.0
- terminfo-0.4.1.5
- text-1.2.5.0
- time-1.9.3
- time-1.11.1.1
- transformers-0.5.6.2
- unix-2.7.2.2
- xhtml-3000.2.2.1
@ -70,29 +70,22 @@ core-packages:
default-package-overrides:
# gi-gdkx11-4.x requires gtk-4.x, but stackage still restricts gi-gtk to 3.*
- gi-gdkx11 < 4
# reflex-dom-pandoc is only used by neuron which needs a version < 1.0.0.0
- reflex-dom-pandoc < 1.0.0.0
# 2022-02-18: pin to our current GHC version
- ghc-api-compat == 9.0.*
# 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
# 1.2.0.0: “Dropped support for GHC <9.2 (might readd it later)”
- retrie < 1.2.0.0
# On the recommendation of hnix author:
# https://github.com/NixOS/nixpkgs/pull/154461#issuecomment-1015511883
- hnix < 0.15
# needs http-client >= 0.7.11 which isn't part of Stackage LTS 18
- http-client-restricted < 0.0.5
# Needs dhall 1.41.*, Stackage LTS 19 has 1.40
- dhall-nix < 1.1.24
# patch is primarily used by reflex packages not all of which are patch 0.0.7 compatible yet
- patch < 0.0.7
- reflex < 0.8.2.1
- reflex-dom-core < 0.7.0.2
# Downgrade hasql-dynamic-statements until hasql 1.6 is in Stackage
- hasql-dynamic-statements < 0.3.1.2
# Its dependency brick >= 1.0 is not yet in stackage
- brick-skylighting < 1.0
- rope-utf16-splay < 0.4.0.0
# hnix < 0.17 (unreleased) needs hnix-store-* 0.5.*
- hnix-store-core == 0.5.0.0 # 2022-06-17: Until hnix 0.17
- hnix-store-remote == 0.5.0.0 # 2022-06-17: Until hnix 0.17
extra-packages:
- Cabal == 2.2.* # required for jailbreak-cabal etc.
@ -101,8 +94,8 @@ extra-packages:
- Cabal == 3.4.* # required for cabal-install etc.
- Cabal == 3.6.* # required for cabal-install-parsers etc.
- Diff < 0.4 # required by liquidhaskell-0.8.10.2: https://github.com/ucsd-progsys/liquidhaskell/issues/1729
- ShellCheck == 0.7.2 # 2022-02-20: haskell-ci 0.14 needs this
- aeson < 2 # required by pantry-0.5.2
- apply-refact == 0.9.* # 2022-12-12: needed for GHC < 9.2
- attoparsec == 0.13.* # 2022-02-23: Needed to compile elm for now
- base16-bytestring < 1 # required for cabal-install etc.
- basement < 0.0.15 # 2022-08-30: last version to support GHC < 8.10
@ -111,7 +104,6 @@ extra-packages:
- brick == 1.3 # 2022-11-03: needed by swarm 0.2.0.0
- brittany == 0.13.1.2 # 2022-09-20: needed for hls on ghc 8.8
- cabal-install-parsers < 0.5 # 2022-08-31: required by haskell-ci 0.14.3
- clay < 0.14 # 2022-03-20: Needed for neuron 1.0.0.0
- crackNum < 3.0 # 2021-05-21: 3.0 removed the lib which sbv 7.13 uses
- dependent-map == 0.2.4.0 # required by Hasura 1.3.1, 2020-08-20
- dependent-sum == 0.4 # required by Hasura 1.3.1, 2020-08-20
@ -122,6 +114,7 @@ extra-packages:
- fourmolu == 0.3.0.0 # 2022-09-21: needed for hls on ghc 8.8
- ghc-api-compat == 8.10.7 # 2022-02-17: preserve for GHC 8.10.7
- ghc-api-compat == 8.6 # 2021-09-07: preserve for GHC 8.8.4
- ghc-exactprint == 0.6.* # 2022-12-12: needed for GHC < 9.2
- ghc-lib == 8.10.7.* # 2022-02-17: preserve for GHC 8.10.7
- ghc-lib == 9.2.* # 2022-02-17: preserve for GHC 9.2
- ghc-lib-parser == 8.10.7.* # 2022-02-17: preserve for GHC 8.10.7
@ -136,16 +129,16 @@ extra-packages:
- hinotify == 0.3.9 # for xmonad-0.26: https://github.com/kolmodin/hinotify/issues/29
- hlint == 3.2.8 # 2022-09-21: needed for hls on ghc 8.8
- hlint == 3.4.1 # 2022-09-21: needed for hls with ghc-lib-parser 9.2
- hnix-store-core == 0.5.0.0 # 2022-06-17: Until hnix 0.17
- hnix-store-remote == 0.5.0.0 # 2022-06-17: Until hnix 0.17
- hpack == 0.35.0 # 2022-09-29: Needed for stack-2.9.1
- 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-meta < 2.8 # 2022-12-07: Needed for elmPackages.elm / hspec-discover
- hspec-golden == 0.1.* # 2022-04-07: Needed for elm-format
- 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
- lens-aeson < 1.2 # 2022-12-17: For aeson < 2.0 compat
- lsp == 1.4.0.0 # 2022-09-18: need for dhall-lsp-server 1.1.2
- lsp-types == 1.4.0.1 # 2022-09-18: need for dhall-lsp-server 1.1.2
- mmorph == 1.1.3 # Newest working version of mmorph on ghc 8.6.5. needed for hls
@ -163,7 +156,7 @@ extra-packages:
- vty == 5.35.1 # 2022-07-08: needed for glirc-2.39.0.1
- weeder == 2.2.* # 2022-02-21: preserve for GHC 8.10.7
- weeder == 2.3.* # 2022-05-31: preserve for GHC 9.0.2
- ghc-exactprint == 1.5.0 # 2022-10-06: newer versions of ghc-exactprint require ghc 9.4.2
- commonmark-extensions < 0.2.3.3 # 2022-12-17: required by emanote 1.0.0.0 (to avoid a bug in 0.2.3.3)
package-maintainers:
abbradar:
@ -303,13 +296,16 @@ package-maintainers:
- ghcide
- haskell-language-server
- hedgehog
- hledger
- hledger-ui
- hledger-web
- hlint
- hmatrix
- hspec-discover
- iCalendar
- matrix-client
- neuron
- optics
- pandoc
- paths
- postgresql-simple
- reflex-dom
@ -337,26 +333,16 @@ package-maintainers:
pacien:
- ldgallery-compiler
peti:
- cabal-install
- cabal2nix
- cabal2spec
- distribution-nixpkgs
- funcmp
- git-annex
- hackage-db
- hledger
- hledger-interest
- hledger-ui
- hledger-web
- hopenssl
- hsdns
- hsemail
- hsyslog
- jailbreak-cabal
- language-nix
- logging-facade-syslog
- nix-paths
- pandoc
- structured-haskell-mode
- titlecase
- xmonad
@ -406,9 +392,17 @@ package-maintainers:
- zre
sternenseemann:
# also maintain upstream package
- cabal2nix
- distribution-nixpkgs
- hackage-db
- language-nix
- jailbreak-cabal
- spacecookie
- gopher-proxy
# other packages I can help out for
- cabal-install
- hledger
- pandoc
- systemd
- fast-logger
- flat
@ -432,17 +426,22 @@ package-maintainers:
terlar:
- nix-diff
turion:
- rhine
- rhine-gloss
- Agda
- dunai
- essence-of-live-coding
- essence-of-live-coding-gloss
- essence-of-live-coding-pulse
- essence-of-live-coding-quickcheck
- Agda
- dunai
- essence-of-live-coding-warp
- finite-typelits
- has-transformers
- monad-bayes
- monad-schedule
- pulse-simple
- rhine
- rhine-gloss
- simple-affine-space
- time-domain
utdemir:
- nix-tree
@ -527,6 +526,7 @@ unsupported-platforms:
sdl2-mixer: [ platforms.darwin ]
sdl2-ttf: [ platforms.darwin ]
sensei: [ platforms.darwin ]
spade: [ platforms.darwin ] # depends on sdl2-mixer, which doesn't work on darwin
synthesizer-alsa: [ platforms.darwin ]
taffybar: [ platforms.darwin ]
emanote: [ x86_64-darwin ] # Depends on stork which is broken on macOS sdk < 10.14
@ -589,6 +589,7 @@ supported-platforms:
linux-namespaces: [ platforms.linux ]
lxc: [ platforms.linux ]
midi-alsa: [ platforms.linux ]
OrderedBits: [ platforms.x86 ] # lacks implementations for non-x86: https://github.com/choener/OrderedBits/blob/401cbbe933b1635aa33e8e9b29a4a570b0a8f044/lib/Data/Bits/Ordered.hs#L316
password: [ platforms.x86 ] # uses scrypt, which requries x86
password-instances: [ platforms.x86 ] # uses scrypt, which requries x86
reactivity: [ platforms.windows ]

View file

@ -91,10 +91,6 @@ self: super: builtins.intersectAttrs super {
'';
}) super.jni;
# The package doesn't know about the AL include hierarchy.
# https://github.com/phaazon/al/issues/1
al = appendConfigureFlag "--extra-include-dirs=${pkgs.openal}/include/AL" super.al;
# Won't find it's header files without help.
sfml-audio = appendConfigureFlag "--extra-include-dirs=${pkgs.openal}/include/AL" super.sfml-audio;
@ -119,29 +115,13 @@ self: super: builtins.intersectAttrs super {
];
}) super.arbtt;
hzk = overrideCabal (drv: {
preConfigure = "sed -i -e /include-dirs/d hzk.cabal";
configureFlags = [ "--extra-include-dirs=${pkgs.zookeeper_mt}/include/zookeeper" ];
}) super.hzk;
haskakafka = overrideCabal (drv: {
preConfigure = "sed -i -e /extra-lib-dirs/d -e /include-dirs/d haskakafka.cabal";
configureFlags = [ "--extra-include-dirs=${pkgs.rdkafka}/include/librdkafka" ];
}) super.haskakafka;
# library has hard coded directories that need to be removed. Reported upstream here https://github.com/haskell-works/hw-kafka-client/issues/32
hw-kafka-client = dontCheck (overrideCabal (drv: {
preConfigure = "sed -i -e /extra-lib-dirs/d -e /include-dirs/d -e /librdkafka/d hw-kafka-client.cabal";
configureFlags = [ "--extra-include-dirs=${pkgs.rdkafka}/include/librdkafka" ];
}) super.hw-kafka-client);
hzk = appendConfigureFlag "--extra-include-dirs=${pkgs.zookeeper_mt}/include/zookeeper" super.hzk;
# Foreign dependency name clashes with another Haskell package.
libarchive-conduit = super.libarchive-conduit.override { archive = pkgs.libarchive; };
# Heist's test suite requires system pandoc
heist = overrideCabal (drv: {
testToolDepends = [pkgs.pandoc];
}) super.heist;
heist = addTestToolDepend pkgs.pandoc super.heist;
# https://github.com/NixOS/cabal2nix/issues/136 and https://github.com/NixOS/cabal2nix/issues/216
gio = disableHardening ["fortify"] (addPkgconfigDepend pkgs.glib (addBuildTool self.buildHaskellPackages.gtk2hs-buildtools super.gio));
@ -326,30 +306,16 @@ self: super: builtins.intersectAttrs super {
greenclip = addExtraLibrary pkgs.xorg.libXdmcp super.greenclip;
# The cabal files for these libraries do not list the required system dependencies.
libjwt-typed = overrideCabal (drv: {
librarySystemDepends = [ pkgs.libjwt ];
}) super.libjwt-typed;
miniball = overrideCabal (drv: {
librarySystemDepends = [ pkgs.miniball ];
}) super.miniball;
SDL-image = overrideCabal (drv: {
librarySystemDepends = [ pkgs.SDL pkgs.SDL_image ] ++ drv.librarySystemDepends or [];
}) super.SDL-image;
SDL-ttf = overrideCabal (drv: {
librarySystemDepends = [ pkgs.SDL pkgs.SDL_ttf ];
}) super.SDL-ttf;
SDL-mixer = overrideCabal (drv: {
librarySystemDepends = [ pkgs.SDL pkgs.SDL_mixer ];
}) super.SDL-mixer;
SDL-gfx = overrideCabal (drv: {
librarySystemDepends = [ pkgs.SDL pkgs.SDL_gfx ];
}) super.SDL-gfx;
SDL-mpeg = overrideCabal (drv: {
configureFlags = (drv.configureFlags or []) ++ [
"--extra-lib-dirs=${pkgs.smpeg}/lib"
"--extra-include-dirs=${pkgs.smpeg}/include/smpeg"
];
}) super.SDL-mpeg;
libjwt-typed = addExtraLibrary pkgs.libjwt super.libjwt-typed;
miniball = addExtraLibrary pkgs.miniball super.miniball;
SDL-image = addExtraLibrary pkgs.SDL super.SDL-image;
SDL-ttf = addExtraLibrary pkgs.SDL super.SDL-ttf;
SDL-mixer = addExtraLibrary pkgs.SDL super.SDL-mixer;
SDL-gfx = addExtraLibrary pkgs.SDL super.SDL-gfx;
SDL-mpeg = appendConfigureFlags [
"--extra-lib-dirs=${pkgs.smpeg}/lib"
"--extra-include-dirs=${pkgs.smpeg.dev}/include/smpeg"
] super.SDL-mpeg;
# https://github.com/ivanperez-keera/hcwiid/pull/4
hcwiid = overrideCabal (drv: {
@ -383,9 +349,7 @@ self: super: builtins.intersectAttrs super {
}) super.fltkhs;
# https://github.com/skogsbaer/hscurses/pull/26
hscurses = overrideCabal (drv: {
librarySystemDepends = (drv.librarySystemDepends or []) ++ [ pkgs.ncurses ];
}) super.hscurses;
hscurses = addExtraLibrary pkgs.ncurses super.hscurses;
# Looks like Avahi provides the missing library
dnssd = super.dnssd.override { dns_sd = pkgs.avahi.override { withLibdnssdCompat = true; }; };
@ -395,6 +359,13 @@ self: super: builtins.intersectAttrs super {
preCheck = ''export PATH="$PWD/dist/build/ghcide:$PATH"'';
}) super.ghcide;
tasty-discover = overrideCabal (drv: {
# Depends on itself for testing
preBuild = ''
export PATH="$PWD/dist/build/tasty-discover:$PATH"
'' + (drv.preBuild or "");
}) super.tasty-discover;
# GLUT uses `dlopen` to link to freeglut, so we need to set the RUNPATH correctly for
# it to find `libglut.so` from the nix store. We do this by patching GLUT.cabal to pkg-config
# depend on freeglut, which provides GHC to necessary information to generate a correct RPATH.
@ -407,9 +378,7 @@ self: super: builtins.intersectAttrs super {
# so disable this on Darwin only
${if pkgs.stdenv.isDarwin then null else "GLUT"} = addPkgconfigDepend pkgs.freeglut (appendPatch ./patches/GLUT.patch super.GLUT);
libsystemd-journal = overrideCabal (old: {
librarySystemDepends = old.librarySystemDepends or [] ++ [ pkgs.systemd ];
}) super.libsystemd-journal;
libsystemd-journal = doJailbreak (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.
@ -529,11 +498,11 @@ self: super: builtins.intersectAttrs super {
sed -i -e 's|"bitwuzla"|"${pkgs.bitwuzla}/bin/bitwuzla"|' Data/SBV/Provers/Bitwuzla.hs
sed -i -e 's|"boolector"|"${pkgs.boolector}/bin/boolector"|' Data/SBV/Provers/Boolector.hs
sed -i -e 's|"cvc4"|"${pkgs.cvc4}/bin/cvc4"|' Data/SBV/Provers/CVC4.hs
sed -i -e 's|"cvc5"|"${pkgs.cvc5}/bin/cvc5"|' Data/SBV/Provers/CVC5.hs
sed -i -e 's|"yices-smt2"|"${pkgs.yices}/bin/yices-smt2"|' Data/SBV/Provers/Yices.hs
sed -i -e 's|"z3"|"${pkgs.z3}/bin/z3"|' Data/SBV/Provers/Z3.hs
# Solvers we don't provide are removed from tests
sed -i -e 's|, cvc5||' SBVTestSuite/SBVConnectionTest.hs
sed -i -e 's|, mathSAT||' SBVTestSuite/SBVConnectionTest.hs
sed -i -e 's|, dReal||' SBVTestSuite/SBVConnectionTest.hs
'';
@ -668,7 +637,9 @@ self: super: builtins.intersectAttrs super {
# Tests require network access.
spagoWithoutChecks = dontCheck spagoOldAeson;
in
spagoWithoutChecks;
# spago doesn't currently build with ghc92. Top-level spago is pulled from
# ghc90 and explicitly marked unbroken.
markBroken spagoWithoutChecks;
# checks SQL statements at compile time, and so requires a running PostgreSQL
# database to run it's test suite
@ -703,21 +674,6 @@ self: super: builtins.intersectAttrs super {
aeson-gadt-th =
disableCabalFlag "build-readme" (doJailbreak super.aeson-gadt-th);
neuron = overrideCabal (drv: {
# neuron expects the neuron-search script to be in PATH at built-time.
buildTools = [ pkgs.buildPackages.makeWrapper ];
preConfigure = ''
mkdir -p $out/bin
cp src-bash/neuron-search $out/bin/neuron-search
chmod +x $out/bin/neuron-search
wrapProgram $out/bin/neuron-search --prefix 'PATH' ':' ${
with pkgs;
lib.makeBinPath [ fzf ripgrep gawk bat findutils envsubst ]
}
PATH=$PATH:$out/bin
'';
}) super.neuron;
# Fix compilation of Setup.hs by removing the module declaration.
# See: https://github.com/tippenein/guid/issues/1
guid = overrideCabal (drv: {
@ -734,13 +690,9 @@ self: super: builtins.intersectAttrs super {
postgresql-libpq-notify = dontCheck super.postgresql-libpq-notify;
postgresql-pure = dontCheck super.postgresql-pure;
retrie = overrideCabal (drv: {
testToolDepends = [ pkgs.git pkgs.mercurial ] ++ drv.testToolDepends or [];
}) super.retrie;
retrie_1_2_0_0 = overrideCabal (drv: {
testToolDepends = [ pkgs.git pkgs.mercurial ] ++ drv.testToolDepends or [];
}) super.retrie_1_2_0_0;
retrie = addTestToolDepends [pkgs.git pkgs.mercurial] super.retrie;
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;
haskell-language-server = let
# This wrapper will be included in the sdist in the next release, then we can remove this custom fetch.
@ -907,32 +859,7 @@ self: super: builtins.intersectAttrs super {
(overrideCabal { doCheck = pkgs.postgresql.doCheck; })
];
cachix = overrideCabal (drv: {
version = "1.1";
src = pkgs.fetchFromGitHub {
owner = "cachix";
repo = "cachix";
rev = "v1.1";
sha256 = "sha256-lML+E5RR5Pk2Do85+8Qs7mMVqp7ImlCIqEYjUAS08W4=";
};
buildDepends = [ self.conduit-zstd ];
postUnpack = "sourceRoot=$sourceRoot/cachix";
postPatch = ''
sed -i 's/1.0.1/1.1/' cachix.cabal
'';
}) (super.cachix.override { nix = pkgs.nixVersions.nix_2_9; });
cachix-api = overrideCabal (drv: {
version = "1.1";
src = pkgs.fetchFromGitHub {
owner = "cachix";
repo = "cachix";
rev = "v1.1";
sha256 = "sha256-lML+E5RR5Pk2Do85+8Qs7mMVqp7ImlCIqEYjUAS08W4=";
};
buildDepends = [ self.stm-chans ];
postUnpack = "sourceRoot=$sourceRoot/cachix-api";
}) super.cachix-api;
cachix = super.cachix.override { nix = pkgs.nixVersions.nix_2_9; };
hercules-ci-agent = super.hercules-ci-agent.override { nix = pkgs.nixVersions.nix_2_9; };
hercules-ci-cnix-expr =
@ -1014,11 +941,11 @@ self: super: builtins.intersectAttrs super {
}) super.procex;
# Test suite wants to run main executable
fourmolu_0_9_0_0 = overrideCabal (drv: {
fourmolu = overrideCabal (drv: {
preCheck = drv.preCheck or "" + ''
export PATH="$PWD/dist/build/fourmolu:$PATH"
'';
}) super.fourmolu_0_9_0_0;
}) super.fourmolu;
# Test suite needs to execute 'disco' binary
disco = overrideCabal (drv: {
@ -1084,12 +1011,11 @@ self: super: builtins.intersectAttrs super {
# Tests assume dist-newstyle build directory is present
cabal-hoogle = dontCheck super.cabal-hoogle;
nfc = overrideCabal (drv: {
isExecutable = true;
executableHaskellDepends = with self; drv.executableHaskellDepends or [] ++ [ base base16-bytestring bytestring ];
configureFlags = drv.configureFlags or [] ++ [ "-fbuild-examples" ];
enableSeparateBinOutput = true;
}) super.nfc;
nfc = lib.pipe super.nfc [
enableSeparateBinOutput
(addBuildDepend self.base16-bytestring)
(appendConfigureFlag "-fbuild-examples")
];
# Wants to execute cabal-install to (re-)build itself
hint = dontCheck super.hint;
@ -1161,7 +1087,6 @@ self: super: builtins.intersectAttrs super {
hls-floskell-plugin
hls-fourmolu-plugin
hls-module-name-plugin
hls-pragmas-plugin
hls-splice-plugin
hls-refactor-plugin
hls-code-range-plugin
@ -1172,6 +1097,7 @@ self: super: builtins.intersectAttrs super {
# Flaky tests
hls-hlint-plugin = dontCheck super.hls-hlint-plugin;
hls-pragmas-plugin = dontCheck super.hls-pragmas-plugin;
hls-class-plugin = dontCheck super.hls-class-plugin;
hls-rename-plugin = dontCheck super.hls-rename-plugin;
hls-alternate-number-format-plugin = dontCheck super.hls-alternate-number-format-plugin;

File diff suppressed because it is too large Load diff

View file

@ -93,8 +93,9 @@ let
# Converts a returned function to a functor attribute set if necessary
ensureAttrs = v: if builtins.isFunction v then { __functor = _: v; } else v;
# this wraps the `drv` function to add a `overrideScope` function to the result.
# this wraps the `drv` function to add `scope` and `overrideScope` to the result.
drvScope = allArgs: ensureAttrs (drv allArgs) // {
inherit scope;
overrideScope = f:
let newScope = mkScope (fix' (extends f scope.__unfix__));
# note that we have to be careful here: `allArgs` includes the auto-arguments that

View file

@ -0,0 +1,54 @@
From 0cc6f0f8de1776d0b5851459d22a0997dfd735ce Mon Sep 17 00:00:00 2001
From: Oleg Grenrus <oleg.grenrus@iki.fi>
Date: Wed, 25 May 2022 14:09:49 +0300
Subject: [PATCH] Use ShellCheck-0.8.0 and optparse-applicative-0.17
Adapted from 0cc6f0f8de1776d0b5851459d22a0997dfd735ce to apply on top of
haskell-ci-0.14.3.
Co-Authored-By: sternenseemann <sternenseemann@systemli.org>
---
haskell-ci.cabal | 4 ++--
src/HaskellCI/GitHub.hs | 7 ++++---
2 files changed, 7 insertions(+), 6 deletions(-)
diff --git a/haskell-ci.cabal b/haskell-ci.cabal
index 273bd422..6848402c 100644
--- a/haskell-ci.cabal
+++ b/haskell-ci.cabal
@@ -167,14 +167,14 @@ library haskell-ci-internal
, ini ^>=0.4.1
, lattices ^>=2
, network-uri ^>=2.6.1.0
- , optparse-applicative ^>=0.16.1.0
+ , optparse-applicative ^>=0.17.0.0
, temporary ^>=1.3
, unordered-containers ^>=0.2.10.0
, zinza ^>=0.2
-- ShellCheck. Would need newer transformers for older GHC
if flag(shellcheck)
- build-depends: ShellCheck ==0.7.2
+ build-depends: ShellCheck ==0.8.0
executable haskell-ci
main-is: Main.hs
diff --git a/src/HaskellCI/GitHub.hs b/src/HaskellCI/GitHub.hs
index f1a402e6..a2c6e4f6 100644
--- a/src/HaskellCI/GitHub.hs
+++ b/src/HaskellCI/GitHub.hs
@@ -653,9 +653,10 @@ makeGitHub _argv config@Config {..} gitconfig prj jobs@JobVersions {..} = do
setup hvrppa ghcup
| allGHCUP = traverse_ liftSh ghcup
| not anyGHCUP = traverse_ liftSh hvrppa
- -- 2192: ${{ ...}} will match (ShellCheck think it doesn't)
- -- 2129: individual redirects
- | otherwise = sh' [2193, 2129] $ unlines $
+ -- SC2192: ${{ ...}} will match (ShellCheck think it doesn't)
+ -- SC2129: individual redirects
+ -- SC2296: Parameter expansions can't start with {. Double check syntax. -- ${{ }} in YAML templating.
+ | otherwise = sh' [2193, 2129, 2296] $ unlines $
[ "if [ \"${{ matrix.setup-method }}\" = ghcup ]; then"
] ++
[ " " ++ shToString s

View file

@ -1,95 +0,0 @@
diff --git a/lambdabot-core.cabal b/lambdabot-core.cabal
index 861a28b..87175a3 100644
--- a/lambdabot-core.cabal
+++ b/lambdabot-core.cabal
@@ -19,7 +19,7 @@ homepage: https://wiki.haskell.org/Lambdabot
build-type: Simple
cabal-version: >= 1.10
-tested-with: GHC == 8.2.2, GHC == 8.4.4, GHC == 8.6.5, GHC == 8.8.4, GHC == 8.10.4
+tested-with: GHC == 8.2.2, GHC == 8.4.4, GHC == 8.6.5, GHC == 8.8.4, GHC == 8.10.4, GHC == 9.0.2
extra-source-files: AUTHORS.md
COMMENTARY.md
@@ -89,9 +89,8 @@ library
network-bsd >= 2.7 && < 2.9,
parsec >= 3,
prim-uniq >= 0.2 && < 0.4,
- random >= 1,
- random-fu >= 0.2.6.2,
- random-source >= 0.3,
+ random >= 1.2,
+ random-fu >= 0.3.0.0,
regex-tdfa >= 1.1 && < 1.4,
SafeSemaphore >= 0.9,
split >= 0.2,
diff --git a/src/Lambdabot/Bot.hs b/src/Lambdabot/Bot.hs
index 1b0de2e..833fb4c 100644
--- a/src/Lambdabot/Bot.hs
+++ b/src/Lambdabot/Bot.hs
@@ -1,6 +1,5 @@
{-# LANGUAGE GADTs #-}
{-# LANGUAGE ScopedTypeVariables #-}
-{-# LANGUAGE TemplateHaskell #-}
-- | The guts of lambdabot.
--
-- The LB/Lambdabot monad
@@ -37,7 +36,6 @@ import Control.Monad.Error
import Control.Monad.Reader
import Control.Monad.State
import qualified Data.Map as M
-import Data.Random.Source
import qualified Data.Set as S
------------------------------------------------------------------------
@@ -136,17 +134,3 @@ ircPrivmsg who msg = do
ircPrivmsg' :: Nick -> String -> LB ()
ircPrivmsg' who "" = ircPrivmsg' who " "
ircPrivmsg' who msg = send $ privmsg who msg
-
-------------------------------------------------------------------------
-
-monadRandom [d|
-
- instance MonadRandom LB where
- getRandomWord8 = liftIO getRandomWord8
- getRandomWord16 = liftIO getRandomWord16
- getRandomWord32 = liftIO getRandomWord32
- getRandomWord64 = liftIO getRandomWord64
- getRandomDouble = liftIO getRandomDouble
- getRandomNByteInteger n = liftIO (getRandomNByteInteger n)
-
- |]
diff --git a/src/Lambdabot/Util.hs b/src/Lambdabot/Util.hs
index effdf71..259699b 100644
--- a/src/Lambdabot/Util.hs
+++ b/src/Lambdabot/Util.hs
@@ -23,14 +23,15 @@ module Lambdabot.Util (
randomSuccessMsg
) where
+import Control.Concurrent.Lifted
import Control.Monad.Trans
+import Control.Monad.Trans.Control
import Data.Char
import Data.List
import Data.Random
-import Control.Concurrent.Lifted
-import Control.Monad.Trans.Control
import Lambdabot.Config
import Lambdabot.Config.Core
+import System.Random.Stateful (newIOGenM, newStdGen)
------------------------------------------------------------------------
@@ -63,7 +64,9 @@ listToStr conj (item:items) =
-- | Pick a random element of the list.
random :: MonadIO m => [a] -> m a
-random = io . sample . randomElement
+random l = do
+ g <- newIOGenM =<< newStdGen
+ sampleFrom g (randomElement l)
------------------------------------------------------------------------

View file

@ -1,58 +0,0 @@
diff --git a/lambdabot-novelty-plugins.cabal b/lambdabot-novelty-plugins.cabal
index 69c8447..50a35f6 100644
--- a/lambdabot-novelty-plugins.cabal
+++ b/lambdabot-novelty-plugins.cabal
@@ -36,7 +36,7 @@ homepage: https://wiki.haskell.org/Lambdabot
build-type: Simple
cabal-version: >= 1.10
-tested-with: GHC == 8.2.2, GHC == 8.4.4, GHC == 8.6.5, GHC == 8.8.4, GHC == 8.10.4
+tested-with: GHC == 8.2.2, GHC == 8.4.4, GHC == 8.6.5, GHC == 8.8.4, GHC == 8.10.4, GHC == 9.0.2
source-repository head
type: git
@@ -71,7 +71,8 @@ library
lambdabot-core >= 5.3 && < 5.4,
misfortune >= 0.1,
process >= 1.1,
- random-fu >= 0.2.6.2,
+ random >= 1.2,
+ random-fu >= 0.3.0.0,
regex-tdfa >= 1.1,
-- runtime dependencies
diff --git a/src/Lambdabot/Plugin/Novelty/Numberwang.hs b/src/Lambdabot/Plugin/Novelty/Numberwang.hs
index ae41eb4..8321a14 100644
--- a/src/Lambdabot/Plugin/Novelty/Numberwang.hs
+++ b/src/Lambdabot/Plugin/Novelty/Numberwang.hs
@@ -7,7 +7,9 @@ import Control.Monad
import Data.Random
import Data.Random.Distribution.Poisson
import Lambdabot.Plugin
+import Lambdabot.Util
import Numeric
+import System.Random.Stateful (newIOGenM, newStdGen)
data NumberwangState = State
@@ -23,7 +25,9 @@ conDist = poisson (32 :: Double)
numberwangPlugin :: Module NumberwangState
numberwangPlugin = newModule
- { moduleDefState = sample (State <$> cmdDist <*> conDist)
+ { moduleDefState = do
+ g <- newIOGenM =<< newStdGen
+ sampleFrom g (State <$> cmdDist <*> conDist)
, moduleCmds = return
[ (command "numberwang")
{ help = say "@numberwang <number>: Determines if it is Numberwang."
@@ -61,7 +65,8 @@ checkNumberwang :: (MonadLBState m, LBState m ~ NumberwangState) =>
checkNumberwang cmd l = withState cmd $ \ n setN nDist -> do
if n <= l
then do
- setN =<< lb (sample nDist)
+ g <- newIOGenM =<< newStdGen
+ setN =<< sampleFrom g nDist
return True
else do
setN (n - l)

View file

@ -0,0 +1,52 @@
diff -rN -u old-mbox/Data/MBox/String.hs new-mbox/Data/MBox/String.hs
--- old-mbox/Data/MBox/String.hs 2022-11-22 19:14:52.332543098 +0100
+++ new-mbox/Data/MBox/String.hs 2022-11-22 19:14:52.332543098 +0100
@@ -1,3 +1,4 @@
+{-# LANGUAGE CPP #-}
-----------------------------------------------------------------------------
{- |
@@ -31,7 +32,11 @@
-- | Reads a date header as a UTCTime
parseDateHeader :: String -> Maybe UTCTime
parseDateHeader header = listToMaybe . catMaybes $ map tryParse formats where
+#if MIN_VERSION_time(1,9,0)
+ tryParse f = parseTimeM True LC.defaultTimeLocale f header
+#else
tryParse f = parseTime LC.defaultTimeLocale f header
+#endif
formats =
[ "%a, %_d %b %Y %T %z"
, "%a, %_d %b %Y %T %Z"
diff -rN -u old-mbox/Data/MBox.hs new-mbox/Data/MBox.hs
--- old-mbox/Data/MBox.hs 2022-11-22 19:14:52.332543098 +0100
+++ new-mbox/Data/MBox.hs 2022-11-22 19:14:52.332543098 +0100
@@ -1,3 +1,4 @@
+{-# LANGUAGE CPP #-}
{-# LANGUAGE ViewPatterns #-}
-----------------------------------------------------------------------------
@@ -34,7 +35,11 @@
parseDateHeader :: T.Text -> Maybe UTCTime
parseDateHeader txt = listToMaybe . catMaybes $ map tryParse formats where
header = T.unpack txt
+#if MIN_VERSION_time(1,9,0)
+ tryParse f = parseTimeM True LC.defaultTimeLocale f header
+#else
tryParse f = parseTime LC.defaultTimeLocale f header
+#endif
formats =
[ "%a, %_d %b %Y %T %z"
, "%a, %_d %b %Y %T %Z"
diff -rN -u old-mbox/mbox.cabal new-mbox/mbox.cabal
--- old-mbox/mbox.cabal 2022-11-22 19:14:52.332543098 +0100
+++ new-mbox/mbox.cabal 2022-11-22 19:14:52.332543098 +0100
@@ -13,7 +13,7 @@
Cabal-Version: >= 1.6
library
- build-depends: base >= 4, base < 6, safe, time < 1.9, time-locale-compat, text
+ build-depends: base >= 4, base < 6, safe, time, time-locale-compat, text
exposed-modules: Data.MBox, Data.MBox.String
ghc-options: -Wall

View file

@ -38,4 +38,8 @@ mkDerivation {
];
license = lib.licenses.asl20;
maintainers = with lib.maintainers; [ lassulus ];
# Does not compile with ghc-9.2
hydraPlatforms = lib.platforms.none;
broken = true;
}

View file

@ -7,8 +7,8 @@ mkDerivation {
src = fetchFromGitHub {
owner = "hercules-ci";
repo = "optparse-applicative";
rev = "9e2968c09a7c5b29d04578dc68d81ce5aec0591e";
sha256 = "sha256-11MnpQjmR89gW5WY5BwsPhpk/LwSIxEEhIa4LLiCbBc=";
rev = "3d20deefbef2e66d3c075facc5d01c1aede34f3c";
sha256 = "sha256-FnFbPvy5iITT7rAjZBBUNQdo3UDP2z8iLg0MiIdXMdo=";
};
libraryHaskellDepends = [
ansi-wl-pprint base process transformers transformers-compat

View file

@ -40,4 +40,8 @@ mkDerivation rec {
homepage = "https://github.com/Synthetica9/nix-linter";
license = lib.licenses.bsd3;
maintainers = [ lib.maintainers.marsam ];
# doesn't build on ghc92
hydraPlatforms = lib.platforms.none;
broken = true;
}

View file

@ -1,6 +1,6 @@
{ lib
, stdenv
, supportedGhcVersions ? [ "90" ]
, supportedGhcVersions ? [ "92" ]
, dynamic ? true
, haskellPackages
, haskell
@ -40,23 +40,21 @@ let
"ln -s ${
tunedHls (getPackages version)
}/bin/haskell-language-server $out/bin/${x}") (targets version);
pkg = tunedHls haskellPackages;
in stdenv.mkDerivation {
in assert supportedGhcVersions != []; stdenv.mkDerivation {
pname = "haskell-language-server";
version = haskellPackages.haskell-language-server.version;
buildCommand = ''
mkdir -p $out/bin
ln -s ${pkg}/bin/haskell-language-server $out/bin/haskell-language-server
ln -s ${pkg}/bin/haskell-language-server-wrapper $out/bin/haskell-language-server-wrapper
ln -s ${tunedHls (getPackages (builtins.head supportedGhcVersions))}/bin/haskell-language-server-wrapper $out/bin/haskell-language-server-wrapper
${concatMapStringsSep "\n" makeSymlinks supportedGhcVersions}
'';
meta = haskellPackages.haskell-language-server.meta // {
maintainers = [ lib.maintainers.maralorn ];
longDescription = ''
This package provides haskell-language-server, haskell-language-server-wrapper, ${
This package provides the executables ${
concatMapStringsSep ", " (x: concatStringsSep ", " (targets x))
supportedGhcVersions
}.
} and haskell-language-server-wrapper.
You can choose for which ghc versions to install hls with pkgs.haskell-language-server.override { supportedGhcVersions = [ "90" "92" ]; }.
'';
};

View file

@ -96,4 +96,8 @@ mkDerivation rec {
description = "Runs processes with secrets from HashiCorp Vault";
license = lib.licenses.bsd3;
maintainers = with lib.maintainers; [ lnl7 manveru ];
# Does not compile on ghc92
hydraPlatforms = lib.platforms.none;
broken = true;
}

View file

@ -1,5 +1,4 @@
{ haskell
, haskellPackages
, lib
# The following are only needed for the passthru.tests:
@ -12,14 +11,16 @@
let
spago =
haskell.lib.compose.justStaticExecutables
(haskell.lib.compose.overrideCabal (oldAttrs: {
maintainers = (oldAttrs.maintainers or []) ++ [
lib.maintainers.cdepillabout
];
changelog =
"https://github.com/purescript/spago/releases/tag/${oldAttrs.version}";
}) haskellPackages.spago);
lib.pipe
haskell.packages.ghc90.spago
[ haskell.lib.compose.justStaticExecutables
(haskell.lib.compose.overrideCabal (oldAttrs: {
maintainers = (oldAttrs.maintainers or []) ++ [ lib.maintainers.cdepillabout ];
changelog = "https://github.com/purescript/spago/releases/tag/${oldAttrs.version}";
}))
haskell.lib.compose.unmarkBroken
haskell.lib.compose.doDistribute
];
in
spago.overrideAttrs (oldAttrs: {
@ -58,4 +59,3 @@ spago.overrideAttrs (oldAttrs: {
'';
};
})

View file

@ -35,4 +35,8 @@ mkDerivation {
license = lib.licenses.agpl3Only;
mainProgram = "ldgallery";
maintainers = [ lib.maintainers.pacien ];
# Does not compile with ghc-9.2
hydraPlatforms = lib.platforms.none;
broken = true;
}

View file

@ -1012,6 +1012,7 @@ mapAliases ({
networkmanager_openvpn = throw "'networkmanager_openvpn' has been renamed to/replaced by 'networkmanager-openvpn'"; # Converted to throw 2022-02-22
networkmanager_vpnc = throw "'networkmanager_vpnc' has been renamed to/replaced by 'networkmanager-vpnc'"; # Converted to throw 2022-02-22
neutral-style = throw "neural-style has been removed, as the upstream project has been abandoned"; # Added 2020-03-28
neuron-notes = throw "'neuron-notes' has been decontinued, migrate to 'emanote' instead."; # Added 2022-12-18
nfsUtils = throw "'nfsUtils' has been renamed to/replaced by 'nfs-utils'"; # Converted to throw 2022-02-22
nginxUnstable = throw "'nginxUnstable' has been renamed to/replaced by 'nginxMainline'"; # Converted to throw 2022-02-22
nilfs_utils = throw "'nilfs_utils' has been renamed to/replaced by 'nilfs-utils'"; # Converted to throw 2022-02-22

View file

@ -5100,7 +5100,7 @@ with pkgs;
nixel = callPackage ../tools/nix/nixel { };
nix-output-monitor = callPackage ../tools/nix/nix-output-monitor { haskellPackages = haskell.packages.ghc92; };
nix-output-monitor = callPackage ../tools/nix/nix-output-monitor { };
nix-template = callPackage ../tools/package-management/nix-template {
inherit (darwin.apple_sdk.frameworks) Security;
@ -9859,9 +9859,6 @@ with pkgs;
ngrep = callPackage ../tools/networking/ngrep { };
neuron-notes = haskell.lib.compose.justStaticExecutables
(haskellPackages.generateOptparseApplicativeCompletions [ "neuron" ] haskellPackages.neuron);
ngrok = callPackage ../tools/networking/ngrok { };
nifi = callPackage ../servers/web-apps/nifi { };
@ -14507,13 +14504,11 @@ with pkgs;
haskell = callPackage ./haskell-packages.nix { };
# Please update doc/languages-frameworks/haskell.section.md, “Our
# current default compiler is”, if you bump this:
haskellPackages = dontRecurseIntoAttrs
# Prefer native-bignum to avoid linking issues with gmp
(if stdenv.hostPlatform.isStatic
then haskell.packages.native-bignum.ghc90
else haskell.packages.ghc90);
then haskell.packages.native-bignum.ghc92
else haskell.packages.ghc92);
# haskellPackages.ghc is build->host (it exposes the compiler used to build the
# set, similarly to stdenv.cc), but pkgs.ghc should be host->target to be more
@ -14526,8 +14521,8 @@ with pkgs;
ghc = targetPackages.haskellPackages.ghc or
# Prefer native-bignum to avoid linking issues with gmp
(if stdenv.targetPlatform.isStatic
then haskell.compiler.native-bignum.ghc90
else haskell.compiler.ghc90);
then haskell.compiler.native-bignum.ghc92
else haskell.compiler.ghc92);
cabal-install = haskell.lib.compose.justStaticExecutables haskellPackages.cabal-install;

View file

@ -207,7 +207,6 @@ let
# hyper-haskell # depends on electron-10.4.7 which is marked as insecure
# hyper-haskell-server-with-packages # hyper-haskell-server is broken
icepeak
idris
ihaskell
jacinda
jl
@ -219,7 +218,6 @@ let
matterhorn
mueval
naproche
neuron-notes
niv
nix-delegate
nix-deploy
@ -390,25 +388,12 @@ let
ghc-lib = released;
ghc-lib-parser = released;
ghc-lib-parser-ex = released;
spectacle = [
compilerNames.ghc8107
];
weeder = [
compilerNames.ghc8107
compilerNames.ghc902
compilerNames.ghc924
compilerNames.ghc925
];
purescript = [
compilerNames.ghc924
compilerNames.ghc925
];
purescript-cst = [
compilerNames.ghc8107
];
purescript-ast = [
compilerNames.ghc8107
];
})
{
mergeable = pkgs.releaseTools.aggregate {