diff --git a/pkgs/development/tools/purescript/spago/default.nix b/pkgs/by-name/sp/spago-legacy/package.nix similarity index 77% rename from pkgs/development/tools/purescript/spago/default.nix rename to pkgs/by-name/sp/spago-legacy/package.nix index c06b588c56ba..ed5ffa355098 100644 --- a/pkgs/development/tools/purescript/spago/default.nix +++ b/pkgs/by-name/sp/spago-legacy/package.nix @@ -4,7 +4,7 @@ lib, # The following are only needed for the passthru.tests: - spago, + spago-legacy, cacert, git, nodejs, @@ -12,11 +12,11 @@ runCommand, }: -lib.pipe haskellPackages.spago [ +lib.pipe haskellPackages.spago-legacy [ haskell.lib.compose.justStaticExecutables (haskell.lib.compose.overrideCabal (oldAttrs: { - changelog = "https://github.com/purescript/spago/releases/tag/${oldAttrs.version}"; + changelog = "https://github.com/purescript/spago-legacy/releases/tag/${oldAttrs.version}"; passthru = (oldAttrs.passthru or { }) // { updateScript = ./update.sh; @@ -25,10 +25,10 @@ lib.pipe haskellPackages.spago [ # network, so they cannot be run in the nix sandbox. sudo is needed in # order to change the sandbox option. # - # $ sudo nix-build -A spago.passthru.tests --option sandbox relaxed + # $ sudo nix-build -A spago-legacy.passthru.tests --option sandbox relaxed # tests = - runCommand "spago-tests" + runCommand "spago-legacy-tests" { __noChroot = true; nativeBuildInputs = [ @@ -36,7 +36,7 @@ lib.pipe haskellPackages.spago [ git nodejs purescript - spago + spago-legacy ]; } '' diff --git a/pkgs/development/tools/purescript/spago/spago.nix b/pkgs/by-name/sp/spago-legacy/spago-legacy.nix similarity index 87% rename from pkgs/development/tools/purescript/spago/spago.nix rename to pkgs/by-name/sp/spago-legacy/spago-legacy.nix index 905d6b63720e..75ea67ae64a0 100644 --- a/pkgs/development/tools/purescript/spago/spago.nix +++ b/pkgs/by-name/sp/spago-legacy/spago-legacy.nix @@ -62,12 +62,12 @@ zlib, }: mkDerivation { - pname = "spago"; - version = "0.21.0"; + pname = "spago-legacy"; + version = "0.21.1"; src = fetchgit { - url = "https://github.com/purescript/spago.git"; - sha256 = "1v5y15nhw6smnir0y7y854pa70iv8asxsqph2y8rz1c9lkz5d41g"; - rev = "c354f4a461f65fcb83aaa843830ea1589f6c7179"; + url = "https://github.com/purescript/spago-legacy.git"; + sha256 = "18p9cic1y9b2v12np4b5sd82rz5njxh8f1vgqs4gwm6xjccmszmr"; + rev = "2790261c28f59940f192c56f3b8245b3ae8b798d"; fetchSubmodules = true; }; isLibrary = true; @@ -148,7 +148,7 @@ mkDerivation { versions ]; testToolDepends = [ hspec-discover ]; - homepage = "https://github.com/purescript/spago#readme"; + homepage = "https://github.com/purescript/spago-legacy#readme"; license = lib.licenses.bsd3; mainProgram = "spago"; } diff --git a/pkgs/development/tools/purescript/spago/update.sh b/pkgs/by-name/sp/spago-legacy/update.sh similarity index 61% rename from pkgs/development/tools/purescript/spago/update.sh rename to pkgs/by-name/sp/spago-legacy/update.sh index e25b1b8670b2..5ac99bdb0be0 100755 --- a/pkgs/development/tools/purescript/spago/update.sh +++ b/pkgs/by-name/sp/spago-legacy/update.sh @@ -1,10 +1,10 @@ #!/usr/bin/env nix-shell #!nix-shell -i bash -p curl jq haskellPackages.cabal2nix-unstable.bin nix-prefetch-scripts -I nixpkgs=. # -# This script will update the spago derivation to the latest version using +# This script will update the spago-legacy derivation to the latest version using # cabal2nix. # -# Note that you should always try building spago after updating it here, since +# Note that you should always try building spago-legacy after updating it here, since # some of the overrides in pkgs/development/haskell/configuration-nix.nix may # need to be updated/changed. @@ -14,26 +14,28 @@ set -eo pipefail script_dir="$( cd "$( dirname "${BASH_SOURCE[0]}" )" >/dev/null 2>&1 && pwd )" # Spago derivation created with cabal2nix. -spago_derivation_file="${script_dir}/spago.nix" +spago_derivation_file="${script_dir}/spago-legacy.nix" -# This is the current revision of spago in Nixpkgs. +# This is the current revision of spago-legacy in Nixpkgs. old_version="$(sed -En 's/.*\bversion = "(.*?)".*/\1/p' "$spago_derivation_file")" -# This is the latest release version of spago on GitHub. -new_version=$(curl --silent "https://api.github.com/repos/purescript/spago/releases" | jq '.[0].tag_name' --raw-output) +# This is the latest release version of spago-legacy on GitHub. +new_version=$(curl --silent "https://api.github.com/repos/purescript/spago-legacy/releases" | jq '.[0].tag_name' --raw-output) -echo "Updating spago from old version $old_version to new version $new_version." +echo "Updating spago-legacy from old version $old_version to new version $new_version." echo "Running cabal2nix and outputting to ${spago_derivation_file}..." echo "# This has been automatically generated by the script" > "$spago_derivation_file" echo "# ./update.sh. This should not be changed by hand." >> "$spago_derivation_file" -cabal2nix --revision "$new_version" "https://github.com/purescript/spago.git" >> "$spago_derivation_file" +cabal2nix --revision "$new_version" "https://github.com/purescript/spago-legacy.git" >> "$spago_derivation_file" + +nixfmt "$spago_derivation_file" # TODO: This should ideally also automatically update the docsSearchVersion # from pkgs/development/haskell/configuration-nix.nix. echo echo "Finished. Make sure you run the following commands to confirm Spago builds correctly:" -echo ' - `nix build -L -f ./. spago`' -echo ' - `sudo nix build -L -f ./. spago.passthru.tests --option sandbox relaxed`' +echo ' - `nix build -L -f ./. spago-legacy`' +echo ' - `sudo nix build -L -f ./. spago-legacy.passthru.tests --option sandbox relaxed`' diff --git a/pkgs/development/compilers/purescript/purescript/update.sh b/pkgs/development/compilers/purescript/purescript/update.sh index 186a51a2bca3..0834fbf5d1dc 100755 --- a/pkgs/development/compilers/purescript/purescript/update.sh +++ b/pkgs/development/compilers/purescript/purescript/update.sh @@ -50,4 +50,4 @@ echo echo "Finished. Make sure you run the following commands to confirm PureScript builds correctly:" echo ' - `nix build -L -f ./. purescript`' echo ' - `nix build -L -f ./. purescript.passthru.tests.minimal-module`' -echo ' - `sudo nix build -L -f ./. spago.passthru.tests --option sandbox relaxed`' +echo ' - `sudo nix build -L -f ./. spago-legacy.passthru.tests --option sandbox relaxed`' diff --git a/pkgs/development/haskell-modules/configuration-common.nix b/pkgs/development/haskell-modules/configuration-common.nix index dc8b2773dcfe..12bd2839f569 100644 --- a/pkgs/development/haskell-modules/configuration-common.nix +++ b/pkgs/development/haskell-modules/configuration-common.nix @@ -201,28 +201,9 @@ with haskellLib; } ); - # Expected test output for these accidentally checks the absolute location of the source directory - # https://github.com/dan-t/cabal-cargs/issues/9 - cabal-cargs = overrideCabal (drv: { - testFlags = drv.testFlags or [ ] ++ [ - "-p" - "!/FindCabalFilePure withoutSandbox/" - "-p" - "!/FromCabalFilePure withoutSandbox/" - "-p" - "!/FromLibSrcPure withoutSandbox/" - "-p" - "!/FromExeSrcFilePure withoutSandbox/" - "-p" - "!/FindCabalFilePure withSandbox/" - "-p" - "!/FromCabalFilePure withSandbox/" - "-p" - "!/FromLibSrcPure withSandbox/" - "-p" - "!/FromExeSrcFilePure withSandbox/" - ]; - }) super.cabal-cargs; + # 2025-09-20: Too strict bound on filepath (<1.5) + # https://github.com/dan-t/cabal-cargs/issues/10 + cabal-cargs = doJailbreak super.cabal-cargs; # Extensions wants a specific version of Cabal for its list of Haskell # language extensions. @@ -274,10 +255,24 @@ with haskellLib; super // { # HLS 2.11: Too strict bound on Diff 1.0. - haskell-language-server = dontCheck (doJailbreak super.haskell-language-server); + haskell-language-server = lib.pipe super.haskell-language-server [ + dontCheck + doJailbreak + ( + if versionOlder self.ghc.version "9.10" || versionOlder "9.11" self.ghc.version then + addBuildDepends [ + self.apply-refact + self.hlint + self.refact + ] + else + lib.id + ) + ]; } ) ) + hlint fourmolu ormolu haskell-language-server @@ -397,6 +392,14 @@ with haskellLib; # There are numerical tests on random data, that may fail occasionally lapack = dontCheck super.lapack; + # fpr-calc test suite depends on random >= 1.3 + # see https://github.com/IntersectMBO/lsm-tree/issues/797 + bloomfilter-blocked = + lib.warnIf (lib.versionAtLeast self.random.version "1.3") + "haskellPackages.bloomfilter-blocked: dontCheck can potentially be removed" + dontCheck + super.bloomfilter-blocked; + # support for transformers >= 0.6 lifted-base = appendPatch (fetchpatch { url = "https://github.com/basvandijk/lifted-base/commit/6b61483ec7fd0d5d5d56ccb967860d42740781e8.patch"; @@ -427,6 +430,10 @@ with haskellLib; # https://github.com/sw17ch/data-clist/pull/28 data-clist = doJailbreak super.data-clist; + # 2025-09-20: Allow QuickCheck >= 2.15 + # https://github.com/raehik/binrep/issues/14 + binrep = warnAfterVersion "1.1.0" (doJailbreak super.binrep); + # 2024-06-23: Hourglass is archived and had its last commit 6 years ago. # Patch is needed to add support for time 1.10, which is only used in the tests # https://github.com/vincenthz/hs-hourglass/pull/56 @@ -494,6 +501,10 @@ with haskellLib; ghc-datasize = disableLibraryProfiling super.ghc-datasize; ghc-vis = disableLibraryProfiling super.ghc-vis; + # 2025-09-20: Too strict upper bound on base (<4.20) + # https://github.com/phadej/regression-simple/issues/13 + regression-simple = doJailbreak super.regression-simple; + # Fix 32bit struct being used for 64bit syscall on 32bit platforms # https://github.com/haskellari/lukko/issues/15 lukko = appendPatches [ @@ -866,8 +877,28 @@ with haskellLib; }) super.xml-picklers; # 2025-08-03: Too strict bounds on open-browser, data-default and containers - # https://github.com/lierdakil/pandoc-crossref/issues/478 - pandoc-crossref = doJailbreak super.pandoc-crossref; + # https://github.com/lierdakil/pandoc-crossref/issues/478 krank:ignore-line + pandoc-crossref = lib.pipe super.pandoc-crossref [ + (warnAfterVersion "0.3.21") + doJailbreak + + # We are still using pandoc == 3.7.* + (appendPatch ( + lib.warnIf (lib.versionAtLeast self.pandoc.version "3.8") + "haskellPackages.pandoc-crossref: remove revert of pandoc-3.8 patch" + pkgs.fetchpatch + { + name = "pandoc-crossref-revert-pandoc-3.8-highlight.patch"; + url = "https://github.com/lierdakil/pandoc-crossref/commit/b0c35a59d5a802f6525407bfeb31699ffd0b4671.patch"; + hash = "sha256-MIITL9Qr3+1fKf1sTwHzXPcYTt3YC+vr9CpMgqsBXlc="; + revert = true; + } + )) + ]; + + # Too strict bounds on QuickCheck (<2.15), containers (<0.7), hashable (<1.5), pandoc (<3.7) + # https://github.com/jaspervdj/patat/issues/194 + patat = doJailbreak super.patat; # Too strict upper bound on data-default-class (< 0.2) # https://github.com/stackbuilders/dotenv-hs/issues/203 @@ -1705,32 +1736,22 @@ with haskellLib; # https://github.com/NixOS/nixpkgs/issues/198495 (dontCheckIf (pkgs.postgresqlTestHook.meta.broken) super.persistent-postgresql); - # Needs matching lsp-types - # Allow lens >= 5.3 - lsp_2_4_0_0 = doDistribute ( - doJailbreak ( - super.lsp_2_4_0_0.override { - lsp-types = self.lsp-types_2_1_1_0; - } - ) - ); - - # Needs matching lsp-types; - # Lift bound on sorted-list <0.2.2 - lsp_2_1_0_0 = doDistribute ( - doJailbreak ( - super.lsp_2_1_0_0.override { - lsp-types = self.lsp-types_2_1_1_0; - } - ) - ); - # Lift bound on lens <5.3 - lsp-types_2_1_1_0 = doDistribute (doJailbreak super.lsp-types_2_1_1_0); - - # 2025-03-03: dhall-lsp-server-1.1.4 requires lsp-2.1.0.0 - dhall-lsp-server = super.dhall-lsp-server.override { - lsp = self.lsp_2_1_0_0; - }; + dhall-lsp-server = appendPatches [ + # Add support for lsp >= 2.7 + (pkgs.fetchpatch { + name = "dhall-lsp-server-lsp-2.7.patch"; + url = "https://github.com/dhall-lang/dhall-haskell/commit/a621e1438df5865d966597e2e1b0bb37e8311447.patch"; + sha256 = "sha256-7edxNIeIM/trl2SUXybvSzkscvr1kj5+tZF50IeTOgY="; + relative = "dhall-lsp-server"; + }) + # Fix build with text >= 2.1.2 + (pkgs.fetchpatch { + name = "dhall-lsp-server-text-2.1.2.patch"; + url = "https://github.com/dhall-lang/dhall-haskell/commit/9f2d4d44be643229784bfc502ab49184ec82bc05.patch"; + hash = "sha256-cwNH5+7YY8UbA9zHhTRfVaqtIMowZGfFT5Kj+wSlapA="; + relative = "dhall-lsp-server"; + }) + ] super.dhall-lsp-server; # Tests disabled and broken override needed because of missing lib chrome-test-utils: https://github.com/reflex-frp/reflex-dom/issues/392 reflex-dom-core = lib.pipe super.reflex-dom-core [ @@ -2183,12 +2204,15 @@ with haskellLib; # stack-3.7.1 requires Cabal < 3.12 stack = + let + stack' = super.stack.overrideScope (self: super: { hpack = self.hpack_0_38_1; }); + in if lib.versionOlder self.ghc.version "9.10" then - super.stack + stack' else lib.pipe # to reduce rebuilds, don't override Cabal in the entire scope - ((super.stack.override { Cabal = self.Cabal_3_10_3_0; }).overrideScope ( + ((stack'.override { Cabal = self.Cabal_3_10_3_0; }).overrideScope ( self: super: let downgradeCabal = @@ -2643,6 +2667,9 @@ with haskellLib; # 2025-08-06: Upper bounds on containers <0.7 and hedgehog < 1.5 too strict. hermes-json = doJailbreak super.hermes-json; + # Allow containers >= 0.7, https://github.com/nomeata/arbtt/issues/181 + arbtt = doJailbreak super.arbtt; + # hexstring is not compatible with newer versions of base16-bytestring # See https://github.com/solatis/haskell-hexstring/issues/3 hexstring = overrideCabal (old: { @@ -2688,7 +2715,6 @@ with haskellLib; let # We need to build purescript with these dependencies and thus also its reverse # dependencies to avoid version mismatches in their dependency closure. - # TODO: maybe unify with the spago overlay in configuration-nix.nix? purescriptOverlay = self: super: { # As of 2021-11-08, the latest release of `language-javascript` is 0.7.1.0, # but it has a problem with parsing the `async` keyword. It doesn't allow @@ -3258,17 +3284,22 @@ with haskellLib; brillo-juicy = warnAfterVersion "0.2.4" (doJailbreak super.brillo-juicy); brillo = warnAfterVersion "1.13.3" (doJailbreak super.brillo); - # Floating point precision issues. Test suite is only checked on x86_64. - # https://github.com/tweag/monad-bayes/issues/368 - monad-bayes = dontCheckIf ( - let - inherit (pkgs.stdenv) hostPlatform; - in - !hostPlatform.isx86_64 - # Presumably because we emulate x86_64-darwin via Rosetta, x86_64-darwin - # also fails on Hydra - || hostPlatform.isDarwin - ) super.monad-bayes; + monad-bayes = + # Floating point precision issues. Test suite is only checked on x86_64. + # https://github.com/tweag/monad-bayes/issues/368 + dontCheckIf + ( + let + inherit (pkgs.stdenv) hostPlatform; + in + !hostPlatform.isx86_64 + # Presumably because we emulate x86_64-darwin via Rosetta, x86_64-darwin + # also fails on Hydra + || hostPlatform.isDarwin + ) + # Too strict bounds on brick (<2.6), vty (<6.3) + # https://github.com/tweag/monad-bayes/issues/378 + (doJailbreak super.monad-bayes); crucible = lib.pipe diff --git a/pkgs/development/haskell-modules/configuration-darwin.nix b/pkgs/development/haskell-modules/configuration-darwin.nix index d77a6dc74a06..b0a7b0d80fa7 100644 --- a/pkgs/development/haskell-modules/configuration-darwin.nix +++ b/pkgs/development/haskell-modules/configuration-darwin.nix @@ -352,18 +352,18 @@ self: super: # the latter in the future! cabal2nix = overrideCabal (old: { postInstall = '' - remove-references-to -t ${self.hpack} "$out/bin/cabal2nix" + remove-references-to -t ${self.hpack} "''${!outputBin}/bin/cabal2nix" # Note: The `data` output is needed at runtime. - remove-references-to -t ${self.distribution-nixpkgs.out} "$out/bin/hackage2nix" + remove-references-to -t ${self.distribution-nixpkgs.out} "''${!outputBin}/bin/hackage2nix" ${old.postInstall or ""} ''; }) super.cabal2nix; cabal2nix-unstable = overrideCabal (old: { postInstall = '' - remove-references-to -t ${self.hpack} "$out/bin/cabal2nix" + remove-references-to -t ${self.hpack} "''${!outputBin}/bin/cabal2nix" # Note: The `data` output is needed at runtime. - remove-references-to -t ${self.distribution-nixpkgs-unstable.out} "$out/bin/hackage2nix" + remove-references-to -t ${self.distribution-nixpkgs-unstable.out} "''${!outputBin}/bin/hackage2nix" ${old.postInstall or ""} ''; diff --git a/pkgs/development/haskell-modules/configuration-ghc-9.4.x.nix b/pkgs/development/haskell-modules/configuration-ghc-9.4.x.nix index 7d0853cc057f..7673e54c2e74 100644 --- a/pkgs/development/haskell-modules/configuration-ghc-9.4.x.nix +++ b/pkgs/development/haskell-modules/configuration-ghc-9.4.x.nix @@ -121,7 +121,7 @@ self: super: { tar = self.tar_0_6_3_0; # A given major version of ghc-exactprint only supports one version of GHC. - ghc-exactprint = super.ghc-exactprint_1_6_1_3; + ghc-exactprint = dontCheck super.ghc-exactprint_1_6_1_3; # Too strict upper bound on template-haskell # https://github.com/mokus0/th-extras/issues/18 @@ -130,22 +130,32 @@ self: super: { # https://github.com/kowainik/relude/issues/436 relude = dontCheck super.relude; + haddock-library = doJailbreak super.haddock-library; + apply-refact = addBuildDepend self.data-default-class super.apply-refact; + path = self.path_0_9_5; inherit ( let hls_overlay = lself: lsuper: { Cabal-syntax = lself.Cabal-syntax_3_10_3_0; Cabal = lself.Cabal_3_10_3_0; + extensions = dontCheck (doJailbreak (lself.extensions_0_1_0_1)); }; in lib.mapAttrs (_: pkg: doDistribute (pkg.overrideScope hls_overlay)) { - haskell-language-server = allowInconsistentDependencies super.haskell-language-server; - fourmolu = doJailbreak self.fourmolu_0_14_0_0; # ansi-terminal, Diff + haskell-language-server = allowInconsistentDependencies ( + addBuildDepends [ self.retrie self.floskell ] super.haskell-language-server + ); + fourmolu = doJailbreak (dontCheck self.fourmolu_0_14_0_0); # ansi-terminal, Diff ormolu = doJailbreak self.ormolu_0_7_2_0; # ansi-terminal hlint = self.hlint_3_6_1; stylish-haskell = self.stylish-haskell_0_14_5_0; + retrie = doJailbreak (unmarkBroken super.retrie); + floskell = doJailbreak super.floskell; } ) + retrie + floskell haskell-language-server fourmolu ormolu diff --git a/pkgs/development/haskell-modules/configuration-ghc-9.6.x.nix b/pkgs/development/haskell-modules/configuration-ghc-9.6.x.nix index 746115587fbf..351f10d84bae 100644 --- a/pkgs/development/haskell-modules/configuration-ghc-9.6.x.nix +++ b/pkgs/development/haskell-modules/configuration-ghc-9.6.x.nix @@ -109,7 +109,6 @@ in stm-containers = dontCheck super.stm-containers; regex-tdfa = dontCheck super.regex-tdfa; hiedb = dontCheck super.hiedb; - retrie = dontCheck super.retrie; # https://github.com/kowainik/relude/issues/436 relude = dontCheck (doJailbreak super.relude); @@ -198,8 +197,39 @@ in # A given major version of ghc-exactprint only supports one version of GHC. ghc-exactprint = addBuildDepend self.extra super.ghc-exactprint_1_7_1_0; - ghc-lib-parser = doDistribute self.ghc-lib-parser_9_10_3_20250912; - ghc-lib-parser-ex = doDistribute self.ghc-lib-parser-ex_9_10_0_0; + ghc-lib-parser = doDistribute self.ghc-lib-parser_9_8_5_20250214; + ghc-lib-parser-ex = doDistribute self.ghc-lib-parser-ex_9_8_0_2; + haddock-library = doJailbreak super.haddock-library; + apply-refact = addBuildDepend self.data-default-class super.apply-refact; + inherit + ( + let + hls_overlay = lself: lsuper: { + Cabal-syntax = lself.Cabal-syntax_3_10_3_0; + Cabal = lself.Cabal_3_10_3_0; + extensions = dontCheck (doJailbreak lself.extensions_0_1_0_1); + }; + in + lib.mapAttrs (_: pkg: doDistribute (pkg.overrideScope hls_overlay)) { + haskell-language-server = allowInconsistentDependencies ( + addBuildDepends [ self.retrie self.floskell ] super.haskell-language-server + ); + ormolu = doDistribute self.ormolu_0_7_4_0; + fourmolu = doDistribute (dontCheck (doJailbreak self.fourmolu_0_15_0_0)); + hlint = doDistribute self.hlint_3_8; + stylish-haskell = self.stylish-haskell_0_14_6_0; + retrie = doJailbreak (unmarkBroken super.retrie); + floskell = doJailbreak super.floskell; + } + ) + retrie + floskell + haskell-language-server + fourmolu + ormolu + hlint + stylish-haskell + ; } # super.ghc is required to break infinite recursion as Nix is strict in the attrNames // diff --git a/pkgs/development/haskell-modules/configuration-ghc-9.8.x.nix b/pkgs/development/haskell-modules/configuration-ghc-9.8.x.nix index 4023b746fe62..f739c9ddea64 100644 --- a/pkgs/development/haskell-modules/configuration-ghc-9.8.x.nix +++ b/pkgs/development/haskell-modules/configuration-ghc-9.8.x.nix @@ -104,6 +104,37 @@ in # A given major version of ghc-exactprint only supports one version of GHC. ghc-exactprint = doDistribute super.ghc-exactprint_1_8_0_0; - ghc-lib-parser = doDistribute self.ghc-lib-parser_9_10_3_20250912; - ghc-lib-parser-ex = doDistribute self.ghc-lib-parser-ex_9_10_0_0; + haddock-library = doJailbreak super.haddock-library; + apply-refact = addBuildDepend self.data-default-class super.apply-refact; + ghc-lib-parser = doDistribute self.ghc-lib-parser_9_8_5_20250214; + ghc-lib-parser-ex = doDistribute self.ghc-lib-parser-ex_9_8_0_2; + inherit + ( + let + hls_overlay = lself: lsuper: { + Cabal-syntax = lself.Cabal-syntax_3_10_3_0; + Cabal = lself.Cabal_3_10_3_0; + extensions = dontCheck (doJailbreak super.extensions_0_1_0_1); + }; + in + lib.mapAttrs (_: pkg: doDistribute (pkg.overrideScope hls_overlay)) { + haskell-language-server = allowInconsistentDependencies ( + addBuildDepends [ self.retrie self.floskell ] super.haskell-language-server + ); + ormolu = doDistribute self.ormolu_0_7_4_0; + fourmolu = doDistribute (dontCheck (doJailbreak self.fourmolu_0_15_0_0)); + hlint = doDistribute self.hlint_3_8; + stylish-haskell = self.stylish-haskell_0_14_6_0; + retrie = doJailbreak (unmarkBroken super.retrie); + floskell = doJailbreak super.floskell; + } + ) + retrie + floskell + haskell-language-server + fourmolu + ormolu + hlint + stylish-haskell + ; } diff --git a/pkgs/development/haskell-modules/configuration-hackage2nix/broken.yaml b/pkgs/development/haskell-modules/configuration-hackage2nix/broken.yaml index 2f1bff24722b..1012f06cdb83 100644 --- a/pkgs/development/haskell-modules/configuration-hackage2nix/broken.yaml +++ b/pkgs/development/haskell-modules/configuration-hackage2nix/broken.yaml @@ -231,7 +231,6 @@ broken-packages: - arbor-monad-logger # failure in job https://hydra.nixos.org/build/233228659 at 2023-09-02 - arbor-monad-metric # failure in job https://hydra.nixos.org/build/233236175 at 2023-09-02 - arbor-postgres # failure in job https://hydra.nixos.org/build/233232935 at 2023-09-02 - - arbtt # failure in job https://hydra.nixos.org/build/307516851 at 2025-09-19 - arch-hs # failure in job https://hydra.nixos.org/build/233225768 at 2023-09-02 - archiver # failure in job https://hydra.nixos.org/build/233245795 at 2023-09-02 - archlinux # failure in job https://hydra.nixos.org/build/233202430 at 2023-09-02 @@ -485,8 +484,6 @@ broken-packages: - bindings-wlc # failure in job https://hydra.nixos.org/build/233332720 at 2023-09-02 - bindynamic # failure in job https://hydra.nixos.org/build/295091957 at 2025-04-22 - binembed # failure in job https://hydra.nixos.org/build/233219100 at 2023-09-02 - - binrep # failure in job https://hydra.nixos.org/build/307517077 at 2025-09-19 - - binrep-instances # failure in job https://hydra.nixos.org/build/295092045 at 2025-04-22 - binsm # failure in job https://hydra.nixos.org/build/233232355 at 2023-09-02 - bio # failure in job https://hydra.nixos.org/build/233225273 at 2023-09-02 - bio-sequence # failure in job https://hydra.nixos.org/build/233236140 at 2023-09-02 @@ -654,7 +651,6 @@ broken-packages: - cabal-auto-expose # failure in job https://hydra.nixos.org/build/233195440 at 2023-09-02 - cabal-build-programs # failure in job https://hydra.nixos.org/build/257091363 at 2024-04-27 - cabal-bundle-clib # failure in job https://hydra.nixos.org/build/233199225 at 2023-09-02 - - cabal-cargs # failure in job https://hydra.nixos.org/build/307517214 at 2025-09-19 - cabal-constraints # failure in job https://hydra.nixos.org/build/233214316 at 2023-09-02 - cabal-db # failure in job https://hydra.nixos.org/build/233197235 at 2023-09-02 - cabal-debian # failure in job https://hydra.nixos.org/build/233255267 at 2023-09-02 @@ -1258,7 +1254,6 @@ broken-packages: - database-migrate # failure in job https://hydra.nixos.org/build/233201597 at 2023-09-02 - database-study # failure in job https://hydra.nixos.org/build/233222466 at 2023-09-02 - datadog # failure in job https://hydra.nixos.org/build/233191124 at 2023-09-02 - - dataframe # failure in job https://hydra.nixos.org/build/307517771 at 2025-09-19 - DataIndex # failure in job https://hydra.nixos.org/build/233254506 at 2023-09-02 - datalog # failure in job https://hydra.nixos.org/build/233242707 at 2023-09-02 - datapacker # failure in job https://hydra.nixos.org/build/233206524 at 2023-09-02 @@ -1357,7 +1352,6 @@ broken-packages: - dhall-check # failure in job https://hydra.nixos.org/build/233206425 at 2023-09-02 - dhall-csv # failure in job https://hydra.nixos.org/build/233256049 at 2023-09-02 - dhall-fly # failure in job https://hydra.nixos.org/build/233220306 at 2023-09-02 - - dhall-lsp-server # failure in job https://hydra.nixos.org/build/307610458 at 2025-09-19 - dhall-recursive-adt # failure in job https://hydra.nixos.org/build/233210665 at 2023-09-02 - dhall-text # failure in job https://hydra.nixos.org/build/233253809 at 2023-09-02 - dhall-text-shell # failure in job https://hydra.nixos.org/build/244399613 at 2024-01-01 @@ -4071,7 +4065,6 @@ broken-packages: - mollie-api-haskell # failure in job https://hydra.nixos.org/build/233200867 at 2023-09-02 - monad-atom # failure in job https://hydra.nixos.org/build/233243367 at 2023-09-02 - monad-atom-simple # failure in job https://hydra.nixos.org/build/233259038 at 2023-09-02 - - monad-bayes # failure in job https://hydra.nixos.org/build/307520391 at 2025-09-19 - monad-branch # failure in job https://hydra.nixos.org/build/233251253 at 2023-09-02 - monad-choice # failure in job https://hydra.nixos.org/build/233255987 at 2023-09-02 - monad-fork # failure in job https://hydra.nixos.org/build/233206855 at 2023-09-02 @@ -4562,7 +4555,6 @@ broken-packages: - pan-os-syslog # failure in job https://hydra.nixos.org/build/233244422 at 2023-09-02 - pandoc-citeproc # failure in job https://hydra.nixos.org/build/233198462 at 2023-09-02 - pandoc-columns # failure in job https://hydra.nixos.org/build/233234538 at 2023-09-02 - - pandoc-crossref # failure in job https://hydra.nixos.org/build/307611190 at 2025-09-19 - pandoc-csv2table # failure in job https://hydra.nixos.org/build/233229925 at 2023-09-02 - pandoc-dhall-decoder # failure in job https://hydra.nixos.org/build/307611186 at 2025-09-19 - pandoc-emphasize-code # failure in job https://hydra.nixos.org/build/252733347 at 2024-03-16 @@ -4653,7 +4645,6 @@ broken-packages: - pasta-curves # failure in job https://hydra.nixos.org/build/233196512 at 2023-09-02 - pastis # failure in job https://hydra.nixos.org/build/233218498 at 2023-09-02 - pasty # failure in job https://hydra.nixos.org/build/233251812 at 2023-09-02 - - patat # failure in job https://hydra.nixos.org/build/307611198 at 2025-09-19 - patches-vector # failure in job https://hydra.nixos.org/build/233244862 at 2023-09-02 - path-formatting # failure in job https://hydra.nixos.org/build/233199358 at 2023-09-02 - path-sing # failure in job https://hydra.nixos.org/build/237234354 at 2023-10-21 @@ -5309,7 +5300,6 @@ broken-packages: - registry-messagepack # failure in job https://hydra.nixos.org/build/303231364 at 2025-07-27 - registry-options # failure in job https://hydra.nixos.org/build/295096594 at 2025-04-22 - regress # failure in job https://hydra.nixos.org/build/233208901 at 2023-09-02 - - regression-simple # failure in job https://hydra.nixos.org/build/307521504 at 2025-09-19 - regular # failure in job https://hydra.nixos.org/build/233232656 at 2023-09-02 - rehoo # failure in job https://hydra.nixos.org/build/233246417 at 2023-09-02 - rei # failure in job https://hydra.nixos.org/build/233221328 at 2023-09-02 diff --git a/pkgs/development/haskell-modules/configuration-hackage2nix/main.yaml b/pkgs/development/haskell-modules/configuration-hackage2nix/main.yaml index bc775150e3a6..39a04d123178 100644 --- a/pkgs/development/haskell-modules/configuration-hackage2nix/main.yaml +++ b/pkgs/development/haskell-modules/configuration-hackage2nix/main.yaml @@ -60,8 +60,9 @@ extra-packages: - Cabal-syntax == 3.12.* - Cabal-syntax == 3.14.* - Cabal-syntax == 3.16.* # version required for cabal-install and other packages + - extensions == 0.1.0.1 # 2025-09-21: needed for Cabal 3.10 (fourmolo/ormolu with ghc 9.8) - fourmolu == 0.14.0.0 # 2023-11-13: for ghc-lib-parser 9.6 compat - - fsnotify < 0.4 # 2024-04-22: required by spago-0.21 + - fourmolu == 0.15.0.0 # 2025-09-21: for ghc-lib-parser 9.8 compat - fuzzyset == 0.2.4 # 2023-12-20: Needed for building postgrest > 10 - ghc-exactprint == 0.6.* # 2022-12-12: needed for GHC < 9.2 - ghc-exactprint == 1.5.* # 2023-03-30: needed for GHC == 9.2 @@ -74,10 +75,10 @@ extra-packages: - ghc-lib == 9.10.* # 2024-12-30: preserve for GHC 9.10/ghc-tags 1.9 - ghc-lib-parser == 9.2.* # 2022-02-17: preserve for GHC 8.10, 9.0 - ghc-lib-parser == 9.6.* # 2024-05-19: preserve for GHC 9.2, 9.4 - - ghc-lib-parser == 9.10.* # 2024-12-26: preserve for GHC 9.6, 9.8, 9.10 + - ghc-lib-parser == 9.8.* # 2024-12-26: preserve for GHC 9.6, 9.8 - ghc-lib-parser-ex == 9.2.* # 2022-07-13: preserve for GHC 8.10, 9.0 - ghc-lib-parser-ex == 9.6.* # 2024-05-19: preserve for GHC 9.2, 9.4 - - ghc-lib-parser-ex == 9.10.* # 2024-12-26: preserve for GHC 9.6, 9.8, 9.10 + - ghc-lib-parser-ex == 9.8.* # 2024-12-26: preserve for GHC 9.6, 9.8 - ghc-tags == 1.5.* # 2023-02-18: preserve for ghc-lib == 9.2.* - ghc-tags == 1.7.* # 2023-02-18: preserve for ghc-lib == 9.6.* - ghc-tags == 1.8.* # 2023-02-18: preserve for ghc-lib == 9.8.* @@ -91,15 +92,16 @@ extra-packages: - hasql-pool < 1.1 # 2025-01-19: Needed for building postgrest - hasql-transaction < 1.1.1 # 2025-01-19: Needed for building postgrest - hlint == 3.6.* # 2025-04-14: needed for hls with ghc-lib-parser 9.6 + - hlint == 3.8.* # 2025-09-21: needed for hls with ghc-lib-parser 9.8 + - hpack == 0.38.1 # 2025-09-18: to match exact version upstream stack-3.7.1 uses - hspec-megaparsec == 2.2.0 # 2023-11-18: Latest version compatible with ghc 9.0 - language-javascript == 0.7.0.0 # required by purescript - - lsp < 2.5 # 2024-07-08: need for koka - - lsp == 2.1.* # 2024-02-28: need for dhall-lsp-server - - lsp-types == 2.1.* # 2024-02-28: need for dhall-lsp-server and koka - network-run == 0.4.0 # 2024-10-20: for GHC 9.10/network == 3.1.* - ormolu == 0.5.2.0 # 2023-08-08: preserve for ghc 9.0 - ormolu == 0.7.2.0 # 2023-11-13: for ghc-lib-parser 9.6 compat + - ormolu == 0.7.4.0 # 2023-09-21: for ghc-lib-parser 9.8 compat - os-string == 1.* # 2025-07-30: dummy package we need for pre os-string GHCs + - path == 0.9.5 # 2025-09-21: Pin for hls on ghc 9.4 - postgresql-binary < 0.14 # 2025-01-19: Needed for building postgrest - primitive-unlifted == 0.1.3.1 # 2024-03-16: preserve for ghc 9.2 - retrie < 1.2.0.0 # 2022-12-30: preserve for ghc < 9.2 @@ -108,13 +110,13 @@ extra-packages: - simple-get-opt < 0.5 # 2025-05-01: for crux-0.7.2 - stylish-haskell == 0.14.4.0 # 2022-09-19: preserve for ghc 9.0 - stylish-haskell == 0.14.5.0 # 2025-04-14: needed for hls with ghc-lib 9.6 + - stylish-haskell == 0.14.6.0 # 2025-09-21: needed for hls with ghc-lib 9.8 - stylish-haskell == 0.15.0.1 # 2025-04-14: needed for hls with ghc-lib 9.10 - tar == 0.6.0.0 # 2025-02-08: last version to not require os-string (which can't be built with GHC < 9.2) - tar == 0.6.3.0 # 2025-08-17: last version to not require file-io and directory-ospath-streaming (for GHC < 9.6) - text-builder < 1 # 2025-08-27: Needed for building postgrest - text-builder-dev < 0.4 # 2025-08-27: Needed for building postgrest - text-metrics < 0.3.3 # 2025-02-08: >= 0.3.3 uses GHC2021 - - versions < 6 # 2024-04-22: required by spago-0.21 - weeder == 2.3.* # 2022-05-31: preserve for GHC 9.0.2 - weeder == 2.4.* # 2023-02-02: preserve for GHC 9.2.* # keep-sorted end diff --git a/pkgs/development/haskell-modules/configuration-hackage2nix/transitive-broken.yaml b/pkgs/development/haskell-modules/configuration-hackage2nix/transitive-broken.yaml index e5bdcb6107cd..4f70b7e6cdef 100644 --- a/pkgs/development/haskell-modules/configuration-hackage2nix/transitive-broken.yaml +++ b/pkgs/development/haskell-modules/configuration-hackage2nix/transitive-broken.yaml @@ -310,7 +310,6 @@ dont-distribute-packages: - blockio - blogination - BlogLiterately-diagrams - - bloomfilter-blocked - bloxorz - blubber - bluetile @@ -680,6 +679,7 @@ dont-distribute-packages: - datadog-tracing - datafix - dataflow + - dataframe_0_3_0_4 - datasets - date-conversions - dbjava @@ -2960,7 +2960,6 @@ dont-distribute-packages: - rfc-psql - rfc-redis - rfc-servant - - rhine-bayes - rhythm-game-tutorial - rib - ribosome @@ -3456,7 +3455,6 @@ dont-distribute-packages: - tasklite - tasklite-core - tasty-bdd - - tasty-bench-fit - tasty-groundhog-converters - tasty-integrate - tasty-jenkins-xml diff --git a/pkgs/development/haskell-modules/configuration-nix.nix b/pkgs/development/haskell-modules/configuration-nix.nix index 290706940d78..6ebd6eb8a002 100644 --- a/pkgs/development/haskell-modules/configuration-nix.nix +++ b/pkgs/development/haskell-modules/configuration-nix.nix @@ -1084,7 +1084,7 @@ builtins.intersectAttrs super { addBuildTool self.buildHaskellPackages.gtk2hs-buildtools super.pango ); - spago = + spago-legacy = let docsSearchApp_0_0_10 = pkgs.fetchurl { url = "https://github.com/purescript/purescript-docs-search/releases/download/v0.0.10/docs-search-app.js"; @@ -1106,49 +1106,43 @@ builtins.intersectAttrs super { sha256 = "1hjdprm990vyxz86fgq14ajn0lkams7i00h8k2i2g1a0hjdwppq6"; }; in - lib.pipe - (super.spago.override { - # base <4.19, text <2.1 - versions = doJailbreak self.versions_5_0_5; - fsnotify = self.fsnotify_0_3_0_1; - }) - [ - (overrideCabal (drv: { - postUnpack = (drv.postUnpack or "") + '' - # Spago includes the following two files directly into the binary - # with Template Haskell. They are fetched at build-time from the - # `purescript-docs-search` repo above. If they cannot be fetched at - # build-time, they are pulled in from the `templates/` directory in - # the spago source. - # - # However, they are not actually available in the spago source, so they - # need to fetched with nix and put in the correct place. - # https://github.com/spacchetti/spago/issues/510 - cp ${docsSearchApp_0_0_10} "$sourceRoot/templates/docs-search-app-0.0.10.js" - cp ${docsSearchApp_0_0_11} "$sourceRoot/templates/docs-search-app-0.0.11.js" - cp ${purescriptDocsSearch_0_0_10} "$sourceRoot/templates/purescript-docs-search-0.0.10" - cp ${purescriptDocsSearch_0_0_11} "$sourceRoot/templates/purescript-docs-search-0.0.11" + lib.pipe super.spago-legacy [ + (overrideCabal (drv: { + postUnpack = (drv.postUnpack or "") + '' + # Spago includes the following two files directly into the binary + # with Template Haskell. They are fetched at build-time from the + # `purescript-docs-search` repo above. If they cannot be fetched at + # build-time, they are pulled in from the `templates/` directory in + # the spago source. + # + # However, they are not actually available in the spago source, so they + # need to fetched with nix and put in the correct place. + # https://github.com/spacchetti/spago/issues/510 + cp ${docsSearchApp_0_0_10} "$sourceRoot/templates/docs-search-app-0.0.10.js" + cp ${docsSearchApp_0_0_11} "$sourceRoot/templates/docs-search-app-0.0.11.js" + cp ${purescriptDocsSearch_0_0_10} "$sourceRoot/templates/purescript-docs-search-0.0.10" + cp ${purescriptDocsSearch_0_0_11} "$sourceRoot/templates/purescript-docs-search-0.0.11" - # For some weird reason, on Darwin, the open(2) call to embed these files - # requires write permissions. The easiest resolution is just to permit that - # (doesn't cause any harm on other systems). - chmod u+w \ - "$sourceRoot/templates/docs-search-app-0.0.10.js" \ - "$sourceRoot/templates/purescript-docs-search-0.0.10" \ - "$sourceRoot/templates/docs-search-app-0.0.11.js" \ - "$sourceRoot/templates/purescript-docs-search-0.0.11" - ''; - })) + # For some weird reason, on Darwin, the open(2) call to embed these files + # requires write permissions. The easiest resolution is just to permit that + # (doesn't cause any harm on other systems). + chmod u+w \ + "$sourceRoot/templates/docs-search-app-0.0.10.js" \ + "$sourceRoot/templates/purescript-docs-search-0.0.10" \ + "$sourceRoot/templates/docs-search-app-0.0.11.js" \ + "$sourceRoot/templates/purescript-docs-search-0.0.11" + ''; + })) - # Tests require network access. - dontCheck + # Tests require network access. + dontCheck - # Overly strict upper bound on text - doJailbreak + # Overly strict upper bound on text (<1.3) + doJailbreak - # Generate shell completion for spago - (self.generateOptparseApplicativeCompletions [ "spago" ]) - ]; + # Generate shell completion for spago + (self.generateOptparseApplicativeCompletions [ "spago" ]) + ]; # checks SQL statements at compile time, and so requires a running PostgreSQL # database to run it's test suite @@ -1878,16 +1872,23 @@ builtins.intersectAttrs super { extensions = enableSeparateBinOutput super.extensions; # These test cases access the network - hpack = overrideCabal (drv: { - testFlags = drv.testFlags or [ ] ++ [ - "--skip" - "/Hpack.Defaults/ensureFile/with 404/does not create any files/" - "--skip" - "/Hpack.Defaults/ensureFile/downloads file if missing/" - "--skip" - "/EndToEnd/hpack/defaults/fails if defaults don't exist/" - ]; - }) super.hpack; + inherit + (lib.mapAttrs ( + _: + overrideCabal (drv: { + testFlags = drv.testFlags or [ ] ++ [ + "--skip" + "/Hpack.Defaults/ensureFile/with 404/does not create any files/" + "--skip" + "/Hpack.Defaults/ensureFile/downloads file if missing/" + "--skip" + "/EndToEnd/hpack/defaults/fails if defaults don't exist/" + ]; + }) + ) super) + hpack + hpack_0_38_1 + ; doctest = overrideCabal (drv: { testFlags = drv.testFlags or [ ] ++ [ diff --git a/pkgs/development/haskell-modules/hackage-packages.nix b/pkgs/development/haskell-modules/hackage-packages.nix index 687a0e3d4547..574065362823 100644 --- a/pkgs/development/haskell-modules/hackage-packages.nix +++ b/pkgs/development/haskell-modules/hackage-packages.nix @@ -81812,9 +81812,7 @@ self: { ]; description = "Automatic Rule-Based Time Tracker"; license = lib.licenses.gpl2Only; - hydraPlatforms = lib.platforms.none; maintainers = [ lib.maintainers.rvl ]; - broken = true; } ) { }; @@ -105792,9 +105790,7 @@ self: { ]; description = "Encode precise binary representations directly in types"; license = lib.licenses.mit; - hydraPlatforms = lib.platforms.none; maintainers = [ lib.maintainers.raehik ]; - broken = true; } ) { }; @@ -105816,8 +105812,6 @@ self: { ]; description = "Orphan instances for binrep"; license = lib.licenses.mit; - hydraPlatforms = lib.platforms.none; - broken = true; } ) { }; @@ -111569,7 +111563,6 @@ self: { doHaddock = false; description = "Classic and block-style bloom filters"; license = lib.licenses.asl20; - hydraPlatforms = lib.platforms.none; } ) { }; @@ -123227,9 +123220,7 @@ self: { ]; description = "A command line program for extracting compiler arguments from a cabal file"; license = lib.licenses.bsd3; - hydraPlatforms = lib.platforms.none; mainProgram = "cabal-cargs"; - broken = true; } ) { }; @@ -180627,9 +180618,7 @@ self: { ]; description = "A fast, safe, and intuitive DataFrame library"; license = lib.licenses.gpl3Plus; - hydraPlatforms = lib.platforms.none; mainProgram = "dataframe"; - broken = true; } ) { }; @@ -189293,13 +189282,11 @@ self: { ]; description = "Language Server Protocol (LSP) server for Dhall"; license = lib.licenses.mit; - hydraPlatforms = lib.platforms.none; mainProgram = "dhall-lsp-server"; maintainers = [ lib.maintainers.dalpd lib.maintainers.Gabriella439 ]; - broken = true; } ) { }; @@ -224757,6 +224744,69 @@ self: { } ) { }; + extensions_0_1_0_1 = callPackage ( + { + mkDerivation, + base, + bytestring, + Cabal, + colourista, + containers, + directory, + filepath, + ghc-boot-th, + hedgehog, + hspec, + hspec-hedgehog, + optparse-applicative, + parsec, + text, + }: + mkDerivation { + pname = "extensions"; + version = "0.1.0.1"; + sha256 = "1rf6jhmms6ll7mn9rh81amzb7nd4zjqcnxdzivw50dxcrcfmdiq2"; + revision = "1"; + editedCabalFile = "1ixf5bpxy840zdlg3gsl3whzii03fc5j16i591pakprsvprp04hk"; + isLibrary = true; + isExecutable = true; + libraryHaskellDepends = [ + base + bytestring + Cabal + containers + directory + filepath + ghc-boot-th + parsec + text + ]; + executableHaskellDepends = [ + base + colourista + containers + directory + filepath + optparse-applicative + text + ]; + testHaskellDepends = [ + base + bytestring + containers + ghc-boot-th + hedgehog + hspec + hspec-hedgehog + text + ]; + description = "Parse Haskell Language Extensions"; + license = lib.licenses.mpl20; + hydraPlatforms = lib.platforms.none; + mainProgram = "extensions"; + } + ) { }; + extensions = callPackage ( { mkDerivation, @@ -241039,6 +241089,114 @@ self: { } ) { }; + fourmolu_0_15_0_0 = callPackage ( + { + mkDerivation, + aeson, + ansi-terminal, + array, + base, + binary, + bytestring, + Cabal-syntax, + containers, + deepseq, + Diff, + directory, + file-embed, + filepath, + ghc-lib-parser, + hspec, + hspec-discover, + hspec-megaparsec, + megaparsec, + MemoTrie, + mtl, + optparse-applicative, + path, + path-io, + pretty, + process, + QuickCheck, + scientific, + syb, + temporary, + text, + th-env, + yaml, + }: + mkDerivation { + pname = "fourmolu"; + version = "0.15.0.0"; + sha256 = "11xy0k5zkhd0dz7ify0m466l90j8sblm9rzzwkc0nn0d8pxyizfq"; + revision = "1"; + editedCabalFile = "1a0wnrvygipxivjzjbbvl1vm4pc45p5p239z741xj9jj5kipjh9c"; + isLibrary = true; + isExecutable = true; + libraryHaskellDepends = [ + aeson + ansi-terminal + array + base + binary + bytestring + Cabal-syntax + containers + deepseq + Diff + directory + file-embed + filepath + ghc-lib-parser + megaparsec + MemoTrie + mtl + scientific + syb + text + yaml + ]; + executableHaskellDepends = [ + base + Cabal-syntax + containers + directory + filepath + ghc-lib-parser + optparse-applicative + text + th-env + yaml + ]; + testHaskellDepends = [ + base + bytestring + Cabal-syntax + containers + Diff + directory + filepath + ghc-lib-parser + hspec + hspec-megaparsec + megaparsec + path + path-io + pretty + process + QuickCheck + temporary + text + yaml + ]; + testToolDepends = [ hspec-discover ]; + description = "A formatter for Haskell source code"; + license = lib.licenses.bsd3; + hydraPlatforms = lib.platforms.none; + mainProgram = "fourmolu"; + } + ) { }; + fourmolu = callPackage ( { mkDerivation, @@ -245218,63 +245376,6 @@ self: { } ) { }; - fsnotify_0_3_0_1 = callPackage ( - { - mkDerivation, - async, - base, - bytestring, - containers, - directory, - filepath, - hinotify, - random, - shelly, - tasty, - tasty-hunit, - temporary, - text, - time, - unix, - unix-compat, - }: - mkDerivation { - pname = "fsnotify"; - version = "0.3.0.1"; - sha256 = "19bdbz9wb9jvln6yg6qm0hz0w84bypvkxf0wjhgrgd52f9gidlny"; - revision = "3"; - editedCabalFile = "0n5p6ljx8i5mmalkw05izjgzbqg08y7rxxn2gk8ghxlqldgqgix9"; - libraryHaskellDepends = [ - async - base - bytestring - containers - directory - filepath - hinotify - shelly - text - time - unix - unix-compat - ]; - testHaskellDepends = [ - async - base - directory - filepath - random - tasty - tasty-hunit - temporary - unix-compat - ]; - description = "Cross platform library for file change notification"; - license = lib.licenses.bsd3; - hydraPlatforms = lib.platforms.none; - } - ) { }; - fsnotify = callPackage ( { mkDerivation, @@ -258592,7 +258693,7 @@ self: { } ) { }; - ghc-lib-parser_9_10_3_20250912 = callPackage ( + ghc-lib-parser_9_8_5_20250214 = callPackage ( { mkDerivation, alex, @@ -258617,8 +258718,8 @@ self: { }: mkDerivation { pname = "ghc-lib-parser"; - version = "9.10.3.20250912"; - sha256 = "1ilh872nvzdvz1k9lnf3q4xwspbdgb9lcygfff1bnszf9jv14z7r"; + version = "9.8.5.20250214"; + sha256 = "1l07lkc4d9ryxy26fr7mry4691m0f3p0wi6b6l1jzr968hrs06cb"; enableSeparateDataOutput = true; libraryHaskellDepends = [ array @@ -258789,7 +258890,7 @@ self: { } ) { }; - ghc-lib-parser-ex_9_10_0_0 = callPackage ( + ghc-lib-parser-ex_9_8_0_2 = callPackage ( { mkDerivation, base, @@ -258805,8 +258906,8 @@ self: { }: mkDerivation { pname = "ghc-lib-parser-ex"; - version = "9.10.0.0"; - sha256 = "1v4nq8nvg9bpdnqgpy8pkzb05h7f9f6m2a6bcqj3j2i9jzqv7sb6"; + version = "9.8.0.2"; + sha256 = "1s4ibjdzrflb2r88srmdnslj09h78xqwdn6djcnirmnka7qrf09v"; libraryHaskellDepends = [ base bytestring @@ -258816,8 +258917,6 @@ self: { ]; testHaskellDepends = [ base - bytestring - containers directory extra filepath @@ -258826,7 +258925,7 @@ self: { tasty-hunit uniplate ]; - description = "Programming with GHC parse trees"; + description = "Algorithms on GHC parse trees"; license = lib.licenses.bsd3; hydraPlatforms = lib.platforms.none; } @@ -332023,6 +332122,80 @@ self: { } ) { }; + hlint_3_8 = callPackage ( + { + mkDerivation, + aeson, + ansi-terminal, + base, + bytestring, + cmdargs, + containers, + cpphs, + data-default, + deriving-aeson, + directory, + extra, + file-embed, + filepath, + filepattern, + ghc-lib-parser, + ghc-lib-parser-ex, + hscolour, + process, + refact, + text, + transformers, + uniplate, + unordered-containers, + utf8-string, + vector, + yaml, + }: + mkDerivation { + pname = "hlint"; + version = "3.8"; + sha256 = "0x5xkd8n9idmg334kj1kky6bcl4wl8ks4i87j3r8zwp75fv3dwm8"; + isLibrary = true; + isExecutable = true; + enableSeparateDataOutput = true; + libraryHaskellDepends = [ + aeson + ansi-terminal + base + bytestring + cmdargs + containers + cpphs + data-default + deriving-aeson + directory + extra + file-embed + filepath + filepattern + ghc-lib-parser + ghc-lib-parser-ex + hscolour + process + refact + text + transformers + uniplate + unordered-containers + utf8-string + vector + yaml + ]; + executableHaskellDepends = [ base ]; + description = "Source code suggestions"; + license = lib.licenses.bsd3; + hydraPlatforms = lib.platforms.none; + mainProgram = "hlint"; + maintainers = [ lib.maintainers.maralorn ]; + } + ) { }; + hlint = callPackage ( { mkDerivation, @@ -341276,6 +341449,141 @@ self: { } ) { }; + hpack_0_38_1 = callPackage ( + { + mkDerivation, + aeson, + base, + bifunctors, + bytestring, + Cabal, + containers, + crypton, + deepseq, + directory, + filepath, + Glob, + hspec, + hspec-discover, + http-client, + http-client-tls, + http-types, + HUnit, + infer-license, + interpolate, + mockery, + mtl, + pretty, + QuickCheck, + scientific, + template-haskell, + temporary, + text, + transformers, + unordered-containers, + vcr, + vector, + yaml, + }: + mkDerivation { + pname = "hpack"; + version = "0.38.1"; + sha256 = "03qygb51jb4r6sg2bkaz7k80h11wgjr27hgpx6h08xm8axdk2gba"; + revision = "1"; + editedCabalFile = "0dyd6pp2pk62nynp0x2j9kjddfv43p9inplk4iya7hdldyjs77k0"; + isLibrary = true; + isExecutable = true; + libraryHaskellDepends = [ + aeson + base + bifunctors + bytestring + Cabal + containers + crypton + deepseq + directory + filepath + Glob + http-client + http-client-tls + http-types + infer-license + mtl + pretty + scientific + text + transformers + unordered-containers + vector + yaml + ]; + executableHaskellDepends = [ + aeson + base + bifunctors + bytestring + Cabal + containers + crypton + deepseq + directory + filepath + Glob + http-client + http-client-tls + http-types + infer-license + mtl + pretty + scientific + text + transformers + unordered-containers + vector + yaml + ]; + testHaskellDepends = [ + aeson + base + bifunctors + bytestring + Cabal + containers + crypton + deepseq + directory + filepath + Glob + hspec + http-client + http-client-tls + http-types + HUnit + infer-license + interpolate + mockery + mtl + pretty + QuickCheck + scientific + template-haskell + temporary + text + transformers + unordered-containers + vcr + vector + yaml + ]; + testToolDepends = [ hspec-discover ]; + description = "A modern format for Haskell packages"; + license = lib.licenses.mit; + hydraPlatforms = lib.platforms.none; + mainProgram = "hpack"; + } + ) { }; + hpack = callPackage ( { mkDerivation, @@ -429996,176 +430304,6 @@ self: { } ) { inherit (pkgs) rocksdb; }; - lsp_2_1_0_0 = callPackage ( - { - mkDerivation, - aeson, - async, - attoparsec, - base, - bytestring, - co-log-core, - containers, - data-default, - directory, - exceptions, - filepath, - hashable, - hspec, - hspec-discover, - lens, - lsp-types, - mtl, - prettyprinter, - random, - row-types, - sorted-list, - stm, - temporary, - text, - text-rope, - transformers, - unliftio-core, - unordered-containers, - uuid, - }: - mkDerivation { - pname = "lsp"; - version = "2.1.0.0"; - sha256 = "03gk98fgf32blywdds0fc5351bmcbbfrnqwlg33l2ih75nwa59y8"; - isLibrary = true; - isExecutable = true; - libraryHaskellDepends = [ - aeson - async - attoparsec - base - bytestring - co-log-core - containers - data-default - directory - exceptions - filepath - hashable - lens - lsp-types - mtl - prettyprinter - random - row-types - sorted-list - stm - temporary - text - text-rope - transformers - unliftio-core - unordered-containers - uuid - ]; - testHaskellDepends = [ - base - containers - hspec - row-types - sorted-list - text - text-rope - unordered-containers - ]; - testToolDepends = [ hspec-discover ]; - description = "Haskell library for the Microsoft Language Server Protocol"; - license = lib.licenses.mit; - hydraPlatforms = lib.platforms.none; - } - ) { }; - - lsp_2_4_0_0 = callPackage ( - { - mkDerivation, - aeson, - async, - attoparsec, - base, - bytestring, - co-log-core, - containers, - data-default, - directory, - exceptions, - filepath, - hashable, - hspec, - hspec-discover, - lens, - lens-aeson, - lsp-types, - mtl, - prettyprinter, - random, - row-types, - sorted-list, - stm, - text, - text-rope, - transformers, - unliftio-core, - unordered-containers, - uuid, - }: - mkDerivation { - pname = "lsp"; - version = "2.4.0.0"; - sha256 = "1ggfw2wp9g9fpg9x3kj9zh6l6p2yiw4q0v1gzxjg0mcmvp4aad8w"; - isLibrary = true; - isExecutable = true; - libraryHaskellDepends = [ - aeson - async - attoparsec - base - bytestring - co-log-core - containers - data-default - directory - exceptions - filepath - hashable - lens - lens-aeson - lsp-types - mtl - prettyprinter - random - row-types - sorted-list - stm - text - text-rope - transformers - unliftio-core - unordered-containers - uuid - ]; - testHaskellDepends = [ - base - containers - hspec - row-types - sorted-list - text - text-rope - unordered-containers - ]; - testToolDepends = [ hspec-discover ]; - description = "Haskell library for the Microsoft Language Server Protocol"; - license = lib.licenses.mit; - hydraPlatforms = lib.platforms.none; - } - ) { }; - lsp = callPackage ( { mkDerivation, @@ -430429,109 +430567,6 @@ self: { } ) { }; - lsp-types_2_1_1_0 = callPackage ( - { - mkDerivation, - aeson, - base, - binary, - containers, - data-default, - deepseq, - Diff, - directory, - dlist, - exceptions, - file-embed, - filepath, - generic-arbitrary, - hashable, - hspec, - hspec-discover, - indexed-traversable, - indexed-traversable-instances, - lens, - lens-aeson, - mod, - mtl, - network-uri, - prettyprinter, - QuickCheck, - quickcheck-instances, - regex, - row-types, - safe, - some, - template-haskell, - text, - }: - mkDerivation { - pname = "lsp-types"; - version = "2.1.1.0"; - sha256 = "0gsr0v11xfav7dnq4d433y9ca0snmqaax4pp5sgmf33zl8qhi6s0"; - isLibrary = true; - isExecutable = true; - libraryHaskellDepends = [ - aeson - base - binary - containers - data-default - deepseq - Diff - dlist - exceptions - file-embed - filepath - generic-arbitrary - hashable - indexed-traversable - indexed-traversable-instances - lens - lens-aeson - mod - mtl - network-uri - prettyprinter - QuickCheck - quickcheck-instances - row-types - safe - some - template-haskell - text - ]; - executableHaskellDepends = [ - base - containers - directory - filepath - mtl - prettyprinter - regex - text - ]; - testHaskellDepends = [ - aeson - base - filepath - hspec - lens - network-uri - QuickCheck - quickcheck-instances - row-types - text - ]; - testToolDepends = [ hspec-discover ]; - doHaddock = false; - description = "Haskell library for the Microsoft Language Server Protocol, data types"; - license = lib.licenses.mit; - hydraPlatforms = lib.platforms.none; - mainProgram = "generator"; - } - ) { }; - lsp-types = callPackage ( { mkDerivation, @@ -453476,10 +453511,8 @@ self: { ]; description = "A library for probabilistic programming"; license = lib.licenses.mit; - hydraPlatforms = lib.platforms.none; mainProgram = "example"; maintainers = [ lib.maintainers.turion ]; - broken = true; } ) { }; @@ -496492,6 +496525,100 @@ self: { } ) { }; + ormolu_0_7_4_0 = callPackage ( + { + mkDerivation, + ansi-terminal, + array, + base, + binary, + bytestring, + Cabal-syntax, + containers, + deepseq, + Diff, + directory, + file-embed, + filepath, + ghc-lib-parser, + hspec, + hspec-discover, + hspec-megaparsec, + megaparsec, + MemoTrie, + mtl, + optparse-applicative, + path, + path-io, + QuickCheck, + syb, + temporary, + text, + th-env, + }: + mkDerivation { + pname = "ormolu"; + version = "0.7.4.0"; + sha256 = "1s7a9crjhbsmjkdvpv8ycygpiikv96s96p3lmjik4pb3q7idir2z"; + revision = "5"; + editedCabalFile = "107p02xhq0gfacc6j8kackqn16a0wnayq7qpi26acvzqqyxhcjxy"; + isLibrary = true; + isExecutable = true; + libraryHaskellDepends = [ + ansi-terminal + array + base + binary + bytestring + Cabal-syntax + containers + deepseq + Diff + directory + file-embed + filepath + ghc-lib-parser + megaparsec + MemoTrie + mtl + syb + text + ]; + executableHaskellDepends = [ + base + Cabal-syntax + containers + directory + filepath + ghc-lib-parser + optparse-applicative + text + th-env + ]; + testHaskellDepends = [ + base + Cabal-syntax + containers + directory + filepath + ghc-lib-parser + hspec + hspec-megaparsec + megaparsec + path + path-io + QuickCheck + temporary + text + ]; + testToolDepends = [ hspec-discover ]; + description = "A formatter for Haskell source code"; + license = lib.licenses.bsd3; + hydraPlatforms = lib.platforms.none; + mainProgram = "ormolu"; + } + ) { }; + ormolu = callPackage ( { mkDerivation, @@ -500551,9 +500678,7 @@ self: { doHaddock = false; description = "Pandoc filter for cross-references"; license = lib.licenses.gpl2Only; - hydraPlatforms = lib.platforms.none; mainProgram = "pandoc-crossref"; - broken = true; } ) { }; @@ -507229,10 +507354,8 @@ self: { ]; description = "Terminal-based presentations using Pandoc"; license = lib.licenses.gpl2Only; - hydraPlatforms = lib.platforms.none; mainProgram = "patat"; maintainers = [ lib.maintainers.dalpd ]; - broken = true; } ) { }; @@ -507415,6 +507538,60 @@ self: { } ) { }; + path_0_9_5 = callPackage ( + { + mkDerivation, + aeson, + base, + bytestring, + deepseq, + exceptions, + filepath, + genvalidity, + genvalidity-hspec, + genvalidity-property, + hashable, + hspec, + mtl, + QuickCheck, + template-haskell, + text, + validity, + }: + mkDerivation { + pname = "path"; + version = "0.9.5"; + sha256 = "0cy4vilmhzhi5nfh4v2kyvizhjzjpjib3bvgm1sgmvjzj40dfgrd"; + libraryHaskellDepends = [ + aeson + base + deepseq + exceptions + filepath + hashable + template-haskell + text + ]; + testHaskellDepends = [ + aeson + base + bytestring + filepath + genvalidity + genvalidity-hspec + genvalidity-property + hspec + mtl + QuickCheck + template-haskell + validity + ]; + description = "Support for well-typed paths"; + license = lib.licenses.bsd3; + hydraPlatforms = lib.platforms.none; + } + ) { }; + path = callPackage ( { mkDerivation, @@ -567638,8 +567815,6 @@ self: { ]; description = "Simple linear and quadratic regression"; license = lib.licenses.bsd3; - hydraPlatforms = lib.platforms.none; - broken = true; } ) { }; @@ -574591,7 +574766,6 @@ self: { ]; description = "monad-bayes backend for Rhine"; license = lib.licenses.bsd3; - hydraPlatforms = lib.platforms.none; mainProgram = "rhine-bayes-gloss"; } ) { }; @@ -644423,6 +644597,105 @@ self: { } ) { }; + stylish-haskell_0_14_6_0 = callPackage ( + { + mkDerivation, + aeson, + base, + bytestring, + Cabal, + containers, + directory, + file-embed, + filepath, + ghc-lib-parser, + ghc-lib-parser-ex, + HsYAML, + HsYAML-aeson, + HUnit, + mtl, + optparse-applicative, + random, + regex-tdfa, + strict, + syb, + test-framework, + test-framework-hunit, + text, + }: + mkDerivation { + pname = "stylish-haskell"; + version = "0.14.6.0"; + sha256 = "1v72i3dxn30z832cs19sbnj5p40y873sv4kciaivd0ls7i5mm8vb"; + isLibrary = true; + isExecutable = true; + libraryHaskellDepends = [ + aeson + base + bytestring + Cabal + containers + directory + file-embed + filepath + ghc-lib-parser + ghc-lib-parser-ex + HsYAML + HsYAML-aeson + mtl + regex-tdfa + syb + text + ]; + executableHaskellDepends = [ + aeson + base + bytestring + Cabal + containers + directory + file-embed + filepath + ghc-lib-parser + ghc-lib-parser-ex + HsYAML + HsYAML-aeson + mtl + optparse-applicative + regex-tdfa + strict + syb + text + ]; + testHaskellDepends = [ + aeson + base + bytestring + Cabal + containers + directory + file-embed + filepath + ghc-lib-parser + ghc-lib-parser-ex + HsYAML + HsYAML-aeson + HUnit + mtl + random + regex-tdfa + syb + test-framework + test-framework-hunit + text + ]; + description = "Haskell code prettifier"; + license = lib.licenses.bsd3; + hydraPlatforms = lib.platforms.none; + mainProgram = "stylish-haskell"; + } + ) { }; + stylish-haskell_0_15_0_1 = callPackage ( { mkDerivation, @@ -658585,7 +658858,6 @@ self: { ]; description = "Determine time complexity of a given function"; license = lib.licenses.mit; - hydraPlatforms = lib.platforms.none; } ) { }; @@ -707723,49 +707995,6 @@ self: { } ) { }; - versions_5_0_5 = callPackage ( - { - mkDerivation, - base, - deepseq, - hashable, - megaparsec, - microlens, - parser-combinators, - QuickCheck, - tasty, - tasty-hunit, - tasty-quickcheck, - text, - }: - mkDerivation { - pname = "versions"; - version = "5.0.5"; - sha256 = "01kn3ilizzm5n05nz0qry1vjb6bj8dzinyqn3mbshds298acn70c"; - libraryHaskellDepends = [ - base - deepseq - hashable - megaparsec - parser-combinators - text - ]; - testHaskellDepends = [ - base - megaparsec - microlens - QuickCheck - tasty - tasty-hunit - tasty-quickcheck - text - ]; - description = "Types and parsers for software version numbers"; - license = lib.licenses.bsd3; - hydraPlatforms = lib.platforms.none; - } - ) { }; - versions = callPackage ( { mkDerivation, diff --git a/pkgs/development/haskell-modules/non-hackage-packages.nix b/pkgs/development/haskell-modules/non-hackage-packages.nix index d13f5d6b8c96..e0cd3a7ac2e9 100644 --- a/pkgs/development/haskell-modules/non-hackage-packages.nix +++ b/pkgs/development/haskell-modules/non-hackage-packages.nix @@ -45,9 +45,9 @@ self: super: # https://github.com/channable/vaultenv/issues/1 krank:ignore-line vaultenv = self.callPackage ../tools/haskell/vaultenv { }; - # spago(-legacy) won't be released to Hackage: + # spago-legacy won't be released to Hackage: # https://github.com/spacchetti/spago/issues/512 krank:ignore-line - spago = self.callPackage ../tools/purescript/spago/spago.nix { }; + spago-legacy = self.callPackage ../../by-name/sp/spago-legacy/spago-legacy.nix { }; # Unofficial fork until PRs are merged https://github.com/pcapriotti/optparse-applicative/pulls/roberth # cabal2nix --maintainer roberth https://github.com/hercules-ci/optparse-applicative.git > pkgs/development/misc/haskell/hercules-ci-optparse-applicative.nix diff --git a/pkgs/development/tools/haskell/ihaskell/wrapper.nix b/pkgs/development/tools/haskell/ihaskell/wrapper.nix index 02de6f6e1ab4..f1c947d83097 100644 --- a/pkgs/development/tools/haskell/ihaskell/wrapper.nix +++ b/pkgs/development/tools/haskell/ihaskell/wrapper.nix @@ -14,9 +14,7 @@ let [ self.ihaskell self.ihaskell-blaze - # Doesn't work with latest ihaskell versions missing an unrelated change - # https://github.com/IHaskell/IHaskell/issues/1378 - # self.ihaskell-diagrams + self.ihaskell-diagrams ] ++ packages self ); diff --git a/pkgs/top-level/aliases.nix b/pkgs/top-level/aliases.nix index 928c06da2bea..f5260f75c7af 100644 --- a/pkgs/top-level/aliases.nix +++ b/pkgs/top-level/aliases.nix @@ -2380,6 +2380,7 @@ mapAliases { soundOfSorting = sound-of-sorting; # Added 2023-07-07 SP800-90B_EntropyAssessment = sp800-90b-entropyassessment; # Added on 2024-06-12 SPAdes = spades; # Added 2024-06-12 + spago = spago-legacy; # Added 2025-09-23, pkgs.spago should become spago@next which hasn't been packaged yet spark2014 = gnatprove; # Added 2024-02-25 space-orbit = throw "'space-orbit' has been removed because it is unmaintained; Debian upstream stopped tracking it in 2011."; # Added 2025-06-08 spatialite_gui = throw "spatialite_gui has been renamed to spatialite-gui"; # Added 2025-01-12 diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index 6994da0248f2..766064d20cd1 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -5092,8 +5092,6 @@ with pkgs; purenix = haskell.lib.compose.justStaticExecutables haskellPackages.purenix; - spago = callPackage ../development/tools/purescript/spago { }; - pulp = nodePackages.pulp; pscid = nodePackages.pscid; diff --git a/pkgs/top-level/release-haskell.nix b/pkgs/top-level/release-haskell.nix index 1f3d4be32d0c..12a169d57b2b 100644 --- a/pkgs/top-level/release-haskell.nix +++ b/pkgs/top-level/release-haskell.nix @@ -335,7 +335,7 @@ let shellcheck-minimal sourceAndTags spacecookie - spago + spago-legacy specup splot stack