diff --git a/pkgs/development/haskell-modules/configuration-common.nix b/pkgs/development/haskell-modules/configuration-common.nix index a8f7bde305db..151bfa8f9332 100644 --- a/pkgs/development/haskell-modules/configuration-common.nix +++ b/pkgs/development/haskell-modules/configuration-common.nix @@ -96,10 +96,11 @@ self: super: { ### HASKELL-LANGUAGE-SERVER SECTION ### ####################################### - haskell-language-server = (lib.pipe super.haskell-language-server [ - dontCheck - (disableCabalFlag "stan") # Sorry stan is totally unmaintained and terrible to get to run. It only works on ghc 8.8 or 8.10 anyways … - ]).overrideScope (lself: lsuper: { + inherit (let + hls_overlay = lself: lsuper: { + ghc-lib-parser = lself.ghc-lib-parser_9_6_2_20230523; + ghc-lib-parser-ex = doDistribute lself.ghc-lib-parser-ex_9_6_0_2; + Cabal-syntax = lself.Cabal-syntax_3_10_1_0; # For most ghc versions, we overrideScope Cabal in the configuration-ghc-???.nix, # because some packages, like ormolu, need a newer Cabal version. # ghc-paths is special because it depends on Cabal for building @@ -110,7 +111,31 @@ self: super: { # otherwise we have different versions of ghc-paths # around which have the same abi-hash, which can lead to confusions and conflicts. ghc-paths = lsuper.ghc-paths.override { Cabal = null; }; - }); + }; + in lib.mapAttrs (_: pkg: doDistribute (pkg.overrideScope hls_overlay)) { + haskell-language-server = allowInconsistentDependencies (dontCheck super.haskell-language-server); + # Tests fail due to the newly-build fourmolu not being in PATH + # https://github.com/fourmolu/fourmolu/issues/231 + fourmolu = dontCheck super.fourmolu_0_14_0_0; + ormolu = super.ormolu_0_7_2_0; + hlint = super.hlint_3_6_1; + stylish-haskell = super.stylish-haskell_0_14_5_0; + }) + haskell-language-server + # HLS from 2.3 needs at least formolu 0.14. + # This means we need to bump a lot of other tools, too, because they all us ghc-lib-parser + # We do this globally to prevent inconsistent formatting or lints between hls and the command line tools. + fourmolu + ormolu + hlint + stylish-haskell; + + fourmolu_0_13_1_0 = dontCheck super.fourmolu_0_13_1_0; + + # hasn't bumped upper bounds + # test fails: "floskell-test: styles/base.md: openBinaryFile: does not exist (No such file or directory)" + # https://github.com/ennocramer/floskell/issues/48 + floskell = dontCheck (doJailbreak super.floskell); # 2023-04-03: https://github.com/haskell/haskell-language-server/issues/3546#issuecomment-1494139751 # There will probably be a new revision soon. @@ -119,19 +144,6 @@ self: super: { # For -f-auto see cabal.project in haskell-language-server. ghc-lib-parser-ex = addBuildDepend self.ghc-lib-parser (disableCabalFlag "auto" super.ghc-lib-parser-ex); - # Test ldap server test/ldap.js is missing from sdist - # https://github.com/supki/ldap-client/issues/18 - ldap-client-og = dontCheck super.ldap-client-og; - - stylish-haskell = - # Too-strict upper bounds, no Hackage revisions - doJailbreak - # For -fghc-lib see cabal.project in haskell-language-server. - (if lib.versionAtLeast super.ghc.version "9.2" - then enableCabalFlag "ghc-lib" super.stylish-haskell - else super.stylish-haskell - ); - hiedb = lib.pipe super.hiedb @@ -153,6 +165,10 @@ self: super: { ### END HASKELL-LANGUAGE-SERVER SECTION ### ########################################### + # Test ldap server test/ldap.js is missing from sdist + # https://github.com/supki/ldap-client/issues/18 + ldap-client-og = dontCheck super.ldap-client-og; + vector = overrideCabal (old: { # Too strict bounds on doctest which isn't used, but is part of the configuration jailbreak = true; @@ -1494,11 +1510,6 @@ self: super: { # See: https://github.com/robstewart57/rdf4h/issues/39 rdf4h = dontCheck super.rdf4h; - # hasn't bumped upper bounds - # test fails: "floskell-test: styles/base.md: openBinaryFile: does not exist (No such file or directory)" - # https://github.com/ennocramer/floskell/issues/48 - floskell = dontCheck (doJailbreak super.floskell); - # hasn't bumped upper bounds # test fails because of a "Warning: Unused LANGUAGE pragma" # https://github.com/ennocramer/monad-dijkstra/issues/4 @@ -2675,11 +2686,6 @@ self: super: { # libfuse3 fails to mount fuse file systems within the build environment libfuse3 = dontCheck super.libfuse3; - # Tests fail due to the newly-build fourmolu not being in PATH - # https://github.com/fourmolu/fourmolu/issues/231 - fourmolu_0_14_0_0 = dontCheck super.fourmolu_0_14_0_0; - fourmolu_0_13_1_0 = dontCheck super.fourmolu_0_13_1_0; - # Merged upstream, but never released. Allows both intel and aarch64 darwin to build. # https://github.com/vincenthz/hs-gauge/pull/106 gauge = appendPatch (pkgs.fetchpatch { diff --git a/pkgs/development/haskell-modules/configuration-hackage2nix/main.yaml b/pkgs/development/haskell-modules/configuration-hackage2nix/main.yaml index 8f6af23747f3..0b5c1db73aaa 100644 --- a/pkgs/development/haskell-modules/configuration-hackage2nix/main.yaml +++ b/pkgs/development/haskell-modules/configuration-hackage2nix/main.yaml @@ -58,6 +58,9 @@ default-package-overrides: # https://github.com/obsidiansystems/dependent-sum-template/issues/5 - dependent-sum-template < 0.1.2 + # hls-floskell-plugin 2.4 does not yet support floskell 0.11 + - floskell < 0.11 + extra-packages: - Cabal-syntax == 3.6.* # Dummy package that ensures packages depending on Cabal-syntax can work for Cabal < 3.8 - Cabal == 3.2.* # Used for packages needing newer Cabal on ghc 8.6 and 8.8 diff --git a/pkgs/development/haskell-modules/configuration-hackage2nix/transitive-broken.yaml b/pkgs/development/haskell-modules/configuration-hackage2nix/transitive-broken.yaml index 4ba5b2a10390..de575838a1c8 100644 --- a/pkgs/development/haskell-modules/configuration-hackage2nix/transitive-broken.yaml +++ b/pkgs/development/haskell-modules/configuration-hackage2nix/transitive-broken.yaml @@ -487,8 +487,6 @@ dont-distribute-packages: - amby - ampersand - amqp-streamly - - amqp-utils_0_6_4_0 - - amqp_0_22_2 - analyze-client - anatomy - animate-example @@ -749,7 +747,6 @@ dont-distribute-packages: - cakyrespa - cal3d-examples - cal3d-opengl - - calamity - calc - calculator - caldims @@ -1125,7 +1122,6 @@ dont-distribute-packages: - discogs-haskell - discord-gateway - discord-hs - - discord-register - discord-rest - distributed-fork - distributed-fork-aws-lambda @@ -2186,9 +2182,7 @@ dont-distribute-packages: - htoml-parse - htsn-import - http-client-auth - - http-client-restricted_0_1_0 - http-client-rustls - - http-client-tls_0_3_6_3 - http-enumerator - http-exchange - http-exchange-instantiations @@ -2815,7 +2809,6 @@ dont-distribute-packages: - nero-wai - nero-warp - nested-routes - - net-mqtt_0_8_6_0 - net-spider - net-spider-cli - net-spider-pangraph @@ -2829,7 +2822,6 @@ dont-distribute-packages: - nettle-openflow - network-anonymous-i2p - network-anonymous-tor - - network-conduit-tls_1_4_0 - network-connection - network-enumerator - network-hans @@ -2848,7 +2840,6 @@ dont-distribute-packages: - newsletter-mailgun - newsynth - ngx-export-distribution - - ngx-export-healthcheck - ngx-export-tools-extra - nikepub - nirum @@ -3059,7 +3050,6 @@ dont-distribute-packages: - point-octree - pointless-lenses - pointless-rewrite - - poke - poker - polh-lexicon - polydata @@ -3343,7 +3333,6 @@ dont-distribute-packages: - repo-based-blog - repr - representable-tries - - req_3_13_1 - reserve - resin - resource-simple @@ -4191,7 +4180,6 @@ dont-distribute-packages: - wumpus-drawing - wumpus-microprint - wumpus-tree - - wuss_2_0_1_4 - wx - wxAsteroids - wxFruit diff --git a/pkgs/development/haskell-modules/configuration-nix.nix b/pkgs/development/haskell-modules/configuration-nix.nix index c0e514aed8c3..89a268a09a6e 100644 --- a/pkgs/development/haskell-modules/configuration-nix.nix +++ b/pkgs/development/haskell-modules/configuration-nix.nix @@ -93,13 +93,6 @@ self: super: builtins.intersectAttrs super { doCheck = false; }) super.ghcide; - # Test suite needs executable - agda2lagda = overrideCabal (drv: { - preCheck = '' - export PATH="$PWD/dist/build/agda2lagda:$PATH" - '' + drv.preCheck or ""; - }) super.agda2lagda; - hiedb = overrideCabal (drv: { preCheck = '' export PATH=$PWD/dist/build/hiedb:$PATH @@ -185,6 +178,14 @@ self: super: builtins.intersectAttrs super { ### END HASKELL-LANGUAGE-SERVER SECTION ### ########################################### + # Test suite needs executable + agda2lagda = overrideCabal (drv: { + preCheck = '' + export PATH="$PWD/dist/build/agda2lagda:$PATH" + '' + drv.preCheck or ""; + }) super.agda2lagda; + + audacity = enableCabalFlag "buildExamples" (overrideCabal (drv: { executableHaskellDepends = [self.optparse-applicative self.soxlib]; }) super.audacity); diff --git a/pkgs/development/haskell-modules/hackage-packages.nix b/pkgs/development/haskell-modules/hackage-packages.nix index 8d163fd8d22e..9915fc8723f7 100644 --- a/pkgs/development/haskell-modules/hackage-packages.nix +++ b/pkgs/development/haskell-modules/hackage-packages.nix @@ -58403,7 +58403,6 @@ self: { ]; description = "A library for writing discord bots in haskell"; license = lib.licenses.mit; - hydraPlatforms = lib.platforms.none; }) {}; "calamity-commands" = callPackage @@ -88008,7 +88007,6 @@ self: { ]; description = "Discord verification bot"; license = lib.licenses.mpl20; - hydraPlatforms = lib.platforms.none; mainProgram = "discord-register-exe"; }) {}; @@ -106967,6 +106965,42 @@ self: { }) {}; "floskell" = callPackage + ({ mkDerivation, aeson, aeson-pretty, attoparsec, base, bytestring + , containers, criterion, data-default, deepseq, directory + , exceptions, filepath, ghc-prim, haskell-src-exts, hspec + , monad-dijkstra, mtl, optparse-applicative, text, transformers + , unordered-containers, utf8-string + }: + mkDerivation { + pname = "floskell"; + version = "0.10.8"; + sha256 = "1mj4c3q9jw161jzzlz7aa9lw58g6a8j9cnk3974n3bbwxbzqrfdq"; + isLibrary = true; + isExecutable = true; + enableSeparateDataOutput = true; + libraryHaskellDepends = [ + aeson attoparsec base bytestring containers data-default directory + filepath haskell-src-exts monad-dijkstra mtl text transformers + unordered-containers utf8-string + ]; + executableHaskellDepends = [ + aeson-pretty base bytestring directory ghc-prim haskell-src-exts + optparse-applicative text + ]; + testHaskellDepends = [ + base bytestring deepseq exceptions haskell-src-exts hspec text + utf8-string + ]; + benchmarkHaskellDepends = [ + base bytestring criterion deepseq exceptions ghc-prim + haskell-src-exts text utf8-string + ]; + description = "A flexible Haskell source code pretty printer"; + license = lib.licenses.bsd3; + mainProgram = "floskell"; + }) {}; + + "floskell_0_11_0" = callPackage ({ mkDerivation, aeson, aeson-pretty, ansi-wl-pprint, attoparsec , attoparsec-aeson, base, bytestring, containers, criterion , data-default, deepseq, directory, exceptions, filepath, ghc-prim @@ -106998,6 +107032,7 @@ self: { ]; description = "A flexible Haskell source code pretty printer"; license = lib.licenses.bsd3; + hydraPlatforms = lib.platforms.none; mainProgram = "floskell"; }) {}; @@ -213038,7 +213073,6 @@ self: { ]; description = "Active health checks and monitoring of Nginx upstreams"; license = lib.licenses.bsd3; - hydraPlatforms = lib.platforms.none; }) {}; "ngx-export-log" = callPackage @@ -233722,7 +233756,6 @@ self: { ]; description = "Discord verification bot"; license = lib.licenses.mpl20; - hydraPlatforms = lib.platforms.none; mainProgram = "poke-exe"; }) {};