diff options
Diffstat (limited to '')
-rw-r--r-- | default.nix | 50 |
1 files changed, 32 insertions, 18 deletions
diff --git a/default.nix b/default.nix index a8c75d8..f714fdf 100644 --- a/default.nix +++ b/default.nix @@ -1,4 +1,4 @@ -{ nixpkgs ? import <nixpkgs> {}, compiler ? "ghc8107", doBenchmark ? false }: +{ nixpkgs ? import <nixpkgs> {}, compiler ? "ghc902", doBenchmark ? false }: let @@ -7,32 +7,36 @@ let f = { mkDerivation, aeson, base, blaze-html, blaze-markup , bytestring, cassava, conduit, conferer, conferer-aeson , conferer-warp, conferer-yaml, containers, data-default-class - , directory, either, extra, fmt, http-api-data, http-media, lens - , lib, monad-logger, mtl, path-pieces, persistent - , persistent-postgresql, protocol-buffers + , directory, either, exceptions, extra, fmt, hoauth2, http-api-data + , http-media, insert-ordered-containers, lens, lib, monad-logger + , mtl, path-pieces, persistent, persistent-postgresql + , prometheus-client, prometheus-metrics-ghc, protocol-buffers , protocol-buffers-descriptor, regex-tdfa, resource-pool, servant , servant-docs, servant-server, servant-swagger, servant-websockets , shakespeare, stm, swagger2, text, time, timezone-olson - , timezone-series, transformers, unliftio-core, uuid, vector - , vector-algorithms, wai-extra, warp, websockets, yesod, yesod-form - , zip-archive, prometheus-client, prometheus-metrics-ghc + , timezone-series, transformers, unliftio-core, uri-bytestring + , uuid, vector, vector-algorithms, wai-extra, warp, websockets + , yesod, yesod-auth, yesod-auth-oauth2, yesod-core, yesod-form + , zip-archive }: mkDerivation { pname = "tracktrain"; version = "0.1.0.0"; src = ./.; - isLibrary = true; + isLibrary = false; isExecutable = true; libraryHaskellDepends = [ aeson base blaze-html blaze-markup bytestring cassava conduit - conferer conferer-warp containers either extra fmt http-api-data - http-media lens monad-logger mtl path-pieces persistent - persistent-postgresql protocol-buffers protocol-buffers-descriptor - regex-tdfa resource-pool servant servant-docs servant-server - servant-swagger servant-websockets shakespeare stm swagger2 text - time timezone-olson timezone-series transformers unliftio-core uuid - vector vector-algorithms warp websockets yesod yesod-form - zip-archive prometheus-client prometheus-metrics-ghc + conferer conferer-warp containers either exceptions extra fmt + hoauth2 http-api-data http-media insert-ordered-containers lens + monad-logger mtl path-pieces persistent persistent-postgresql + prometheus-client prometheus-metrics-ghc protocol-buffers + protocol-buffers-descriptor regex-tdfa resource-pool servant + servant-docs servant-server servant-swagger servant-websockets + shakespeare stm swagger2 text time timezone-olson timezone-series + transformers unliftio-core uri-bytestring uuid vector + vector-algorithms warp websockets yesod yesod-auth + yesod-auth-oauth2 yesod-core yesod-form zip-archive ]; executableHaskellDepends = [ aeson base bytestring conferer conferer-aeson conferer-yaml @@ -42,7 +46,7 @@ let doHaddock = false; description = "tracktrain tracks trains on their traintracks"; license = "unknown"; - hydraPlatforms = lib.platforms.none; + mainProgram = "tracktrain"; }; haskellPackages = if compiler == "default" @@ -51,7 +55,17 @@ let variant = if doBenchmark then pkgs.haskell.lib.doBenchmark else pkgs.lib.id; - drv = variant (haskellPackages.callPackage f {}); + # we can override haskell packages in nix here; but attempt to minimise that + # since builds get pretty expensive when we do. + hpkgs = haskellPackages.override { + overrides = self: super: with pkgs.haskell.lib; { + # hoauth2 = doDistribute super.hoauth2_2_6_0; + # cryptonite = doDistribute super.cryptonite_0_30; + # memory = doDistribute super.memory_0_18_0; + }; + }; + + drv = variant (hpkgs.callPackage f {}); # this removes the /lib directory from the built derivation, which depends on ghc. # this dramatically reduces closure size |