about summary refs log tree commit diff
path: root/pkgs/development/haskell-modules
diff options
context:
space:
mode:
authormaralorn <mail@maralorn.de>2023-10-18 23:44:37 +0200
committermaralorn <mail@maralorn.de>2023-10-19 02:48:11 +0200
commit3d06d7622da1bceaed679db55cb70f405f516140 (patch)
treeb625f9381ee680c325548de08088819a071b7322 /pkgs/development/haskell-modules
parent03248bf8af85cfa2a2b0716f0bf17a4fd613f46d (diff)
haskell-language-server: Fix 2.3.0.0
Diffstat (limited to 'pkgs/development/haskell-modules')
-rw-r--r--pkgs/development/haskell-modules/configuration-common.nix62
-rw-r--r--pkgs/development/haskell-modules/configuration-hackage2nix/main.yaml3
-rw-r--r--pkgs/development/haskell-modules/configuration-hackage2nix/transitive-broken.yaml12
-rw-r--r--pkgs/development/haskell-modules/configuration-nix.nix15
-rw-r--r--pkgs/development/haskell-modules/hackage-packages.nix41
5 files changed, 82 insertions, 51 deletions
diff --git a/pkgs/development/haskell-modules/configuration-common.nix b/pkgs/development/haskell-modules/configuration-common.nix
index a8f7bde305db0..151bfa8f9332d 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;
@@ -1495,11 +1511,6 @@ self: super: {
   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
   monad-dijkstra = dontCheck super.monad-dijkstra;
@@ -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 8f6af23747f39..0b5c1db73aaa1 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 4ba5b2a10390d..de575838a1c8d 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 c0e514aed8c3d..89a268a09a6ed 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 8d163fd8d22e1..9915fc8723f72 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";
      }) {};