diff --git a/pkgs/development/haskell-modules/configuration-nix.nix b/pkgs/development/haskell-modules/configuration-nix.nix index 472e4c66fc73..8a8f2860186e 100644 --- a/pkgs/development/haskell-modules/configuration-nix.nix +++ b/pkgs/development/haskell-modules/configuration-nix.nix @@ -644,8 +644,8 @@ self: super: builtins.intersectAttrs super { # we can safely jailbreak spago and use the older directory package from # LTS-14. spagoWithOverrides = doJailbreak (super.spago.override { - # spago requires the latest version of dhall. - directory = self.dhall_1_28_0; + # spago requires dhall_1_27_0. + dhall = self.dhall_1_27_0; }); docsSearchAppJsFile = pkgs.fetchurl { @@ -683,13 +683,9 @@ self: super: builtins.intersectAttrs super { ''; }); - # Haddock generation is broken for spago. - # https://github.com/spacchetti/spago/issues/511 - spagoWithoutHaddocks = dontHaddock spagoFixHpack; - # Because of the problem above with pulling in hspec defaults to the # package.yaml file, the tests are disabled. - spagoWithoutChecks = dontCheck spagoWithoutHaddocks; + spagoWithoutChecks = dontCheck spagoFixHpack; in spagoWithoutChecks; } diff --git a/pkgs/development/haskell-modules/non-hackage-packages.nix b/pkgs/development/haskell-modules/non-hackage-packages.nix index c292eeec128f..092af07637f0 100644 --- a/pkgs/development/haskell-modules/non-hackage-packages.nix +++ b/pkgs/development/haskell-modules/non-hackage-packages.nix @@ -15,5 +15,5 @@ self: super: { # spago is not released to Hackage. # https://github.com/spacchetti/spago/issues/512 - spago = self.callPackage ../tools/purescript/spago { }; + spago = self.callPackage ../tools/purescript/spago/spago.nix { }; } diff --git a/pkgs/development/tools/purescript/spago/default.nix b/pkgs/development/tools/purescript/spago/default.nix index 6879d6875cc4..2fc5efedb20b 100644 --- a/pkgs/development/tools/purescript/spago/default.nix +++ b/pkgs/development/tools/purescript/spago/default.nix @@ -1,47 +1,14 @@ -{ mkDerivation, aeson, aeson-pretty, ansi-terminal, async-pool -, base, bower-json, bytestring, Cabal, containers, dhall, directory -, either, exceptions, extra, fetchgit, file-embed, filepath, foldl -, fsnotify, github, Glob, hpack, hspec, hspec-discover -, hspec-megaparsec, http-client, http-conduit, lens-family-core -, megaparsec, mtl, network-uri, open-browser, optparse-applicative -, prettyprinter, process, QuickCheck, retry, rio, rio-orphans, safe -, semver-range, stdenv, stm, tar, template-haskell, temporary, text -, time, transformers, turtle, unliftio, unordered-containers -, vector, versions, zlib +{ haskellPackages +, haskell +, lib }: -mkDerivation { - pname = "spago"; - version = "0.12.1.0"; - src = fetchgit { - url = "https://github.com/spacchetti/spago"; - sha256 = "17xgp75yxangmb65sv3raysad31kmc109c4q4aj9dgcdqz23fcn2"; - rev = "a4679880402ead320f8be2f091b25d30e27b62df"; - fetchSubmodules = true; + +haskell.lib.justStaticExecutables (haskell.lib.overrideCabal haskellPackages.spago (oldAttrs: { + maintainers = (oldAttrs.maintainers or []) ++ [ + lib.maintainers.cdepillabout + ]; + + passthru = (oldAttrs.passthru or {}) // { + updateScript = ./update.sh; }; - isLibrary = true; - isExecutable = true; - libraryHaskellDepends = [ - aeson aeson-pretty ansi-terminal async-pool base bower-json - bytestring Cabal containers dhall directory either exceptions - file-embed filepath foldl fsnotify github Glob http-client - http-conduit lens-family-core megaparsec mtl network-uri - open-browser prettyprinter process retry rio rio-orphans safe - semver-range stm tar template-haskell temporary text time - transformers turtle unliftio unordered-containers vector versions - zlib - ]; - libraryToolDepends = [ hpack ]; - executableHaskellDepends = [ - aeson-pretty async-pool base bytestring containers dhall filepath - github lens-family-core megaparsec optparse-applicative process - retry stm temporary text time turtle vector - ]; - testHaskellDepends = [ - base containers directory extra hspec hspec-megaparsec megaparsec - process QuickCheck temporary text turtle versions - ]; - testToolDepends = [ hspec-discover ]; - prePatch = "hpack"; - homepage = "https://github.com/spacchetti/spago#readme"; - license = stdenv.lib.licenses.bsd3; -} +})) diff --git a/pkgs/development/tools/purescript/spago/spago.nix b/pkgs/development/tools/purescript/spago/spago.nix new file mode 100644 index 000000000000..c85cff2f03a4 --- /dev/null +++ b/pkgs/development/tools/purescript/spago/spago.nix @@ -0,0 +1,47 @@ +{ mkDerivation, aeson, aeson-pretty, ansi-terminal, async-pool +, base, bower-json, bytestring, Cabal, containers, dhall, directory +, either, exceptions, extra, fetchgit, file-embed, filepath, foldl +, fsnotify, github, Glob, hpack, hspec, hspec-discover +, hspec-megaparsec, http-client, http-conduit, lens-family-core +, megaparsec, mtl, network-uri, open-browser, optparse-applicative +, prettyprinter, process, QuickCheck, retry, rio, rio-orphans, safe +, semver-range, stdenv, stm, tar, template-haskell, temporary, text +, time, transformers, turtle, unliftio, unordered-containers +, vector, versions, zlib +}: +mkDerivation { + pname = "spago"; + version = "0.13.0"; + src = fetchgit { + url = "https://github.com/spacchetti/spago.git"; + sha256 = "158xq5zn32iwswxmpma92763hl6kzq7kb01cyvphmmlilx55b6yk"; + rev = "426838670ba9de4593f4c533a6947efb2d8ad4ba"; + fetchSubmodules = true; + }; + isLibrary = true; + isExecutable = true; + libraryHaskellDepends = [ + aeson aeson-pretty ansi-terminal async-pool base bower-json + bytestring Cabal containers dhall directory either exceptions + file-embed filepath foldl fsnotify github Glob http-client + http-conduit lens-family-core megaparsec mtl network-uri + open-browser prettyprinter process retry rio rio-orphans safe + semver-range stm tar template-haskell temporary text time + transformers turtle unliftio unordered-containers vector versions + zlib + ]; + libraryToolDepends = [ hpack ]; + executableHaskellDepends = [ + aeson-pretty async-pool base bytestring containers dhall filepath + github lens-family-core megaparsec optparse-applicative process + retry stm temporary text time turtle vector + ]; + testHaskellDepends = [ + base containers directory extra hspec hspec-megaparsec megaparsec + process QuickCheck temporary text turtle versions + ]; + testToolDepends = [ hspec-discover ]; + prePatch = "hpack"; + homepage = "https://github.com/spacchetti/spago#readme"; + license = stdenv.lib.licenses.bsd3; +} diff --git a/pkgs/development/tools/purescript/spago/update.sh b/pkgs/development/tools/purescript/spago/update.sh index df903abd598e..00c9c6d85f1d 100755 --- a/pkgs/development/tools/purescript/spago/update.sh +++ b/pkgs/development/tools/purescript/spago/update.sh @@ -14,7 +14,7 @@ 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}/default.nix" +spago_derivation_file="${script_dir}/spago.nix" # This is the current revision of spago in Nixpkgs. old_version="$(sed -En 's/.*\bversion = "(.*?)".*/\1/p' "$spago_derivation_file")" diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index b68c58ce42ed..84c3e3aef693 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -8154,7 +8154,7 @@ in purescript-psa = nodePackages.purescript-psa; - spago = haskell.lib.justStaticExecutables haskellPackages.spago; + spago = callPackage ../development/tools/purescript/spago { }; pulp = nodePackages.pulp;