aboutsummaryrefslogtreecommitdiff
path: root/default.nix
diff options
context:
space:
mode:
Diffstat (limited to 'default.nix')
-rw-r--r--default.nix50
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