about summary refs log tree commit diff
path: root/nixpkgs/pkgs/servers/hasura/default.nix
diff options
context:
space:
mode:
Diffstat (limited to 'nixpkgs/pkgs/servers/hasura/default.nix')
-rw-r--r--nixpkgs/pkgs/servers/hasura/default.nix63
1 files changed, 63 insertions, 0 deletions
diff --git a/nixpkgs/pkgs/servers/hasura/default.nix b/nixpkgs/pkgs/servers/hasura/default.nix
new file mode 100644
index 000000000000..085274660351
--- /dev/null
+++ b/nixpkgs/pkgs/servers/hasura/default.nix
@@ -0,0 +1,63 @@
+{ haskell }:
+
+with haskell.lib;
+
+let
+  # version in cabal file is invalid
+  version = "1.2.1";
+
+  pkgs = haskell.packages.ghc865.override {
+    overrides = self: super: {
+      # cabal2nix  --subpath server --maintainer offline --no-check --revision 1.2.1 https://github.com/hasura/graphql-engine.git
+      hasura-graphql-engine = justStaticExecutables
+        ((self.callPackage ./graphql-engine.nix { }).overrideDerivation (d: {
+          name = "graphql-engine-${version}";
+
+          inherit version;
+
+          # hasura needs VERSION env exported during build
+          preBuild = "export VERSION=${version}";
+        }));
+
+      hasura-cli = self.callPackage ./cli.nix {
+        hasura-graphql-engine = self.hasura-graphql-engine // {
+          inherit version;
+        };
+      };
+
+      # internal dependencies, non published on hackage (find revisions in cabal.project file)
+      # cabal2nix --revision <rev> https://github.com/hasura/ci-info-hs.git
+      ci-info = self.callPackage ./ci-info.nix { };
+      # cabal2nix --revision <rev> https://github.com/hasura/graphql-parser-hs.git
+      graphql-parser = self.callPackage ./graphql-parser.nix { };
+      # cabal2nix --revision <rev> https://github.com/hasura/pg-client-hs.git
+      pg-client = self.callPackage ./pg-client.nix { };
+
+      # version constrained dependencies, without these hasura will not build,
+      # find versions in graphql-engine.cabal
+      # cabal2nix cabal://dependent-map-0.2.4.0
+      dependent-map = self.callPackage ./dependent-map.nix { };
+      # cabal2nix cabal://dependent-sum-0.4
+      dependent-sum = self.callPackage ./dependent-sum.nix { };
+      # cabal2nix cabal://these-0.7.6
+      these = doJailbreak (self.callPackage ./these.nix { });
+      # cabal2nix cabal://immortal-0.2.2.1
+      immortal = self.callPackage ./immortal.nix { };
+      # cabal2nix cabal://network-uri-2.6.1.0
+      network-uri = self.callPackage ./network-uri.nix { };
+      # cabal2nix cabal://ghc-heap-view-0.6.0
+      ghc-heap-view = disableLibraryProfiling (self.callPackage ./ghc-heap-view.nix { });
+
+      # unmark broewn packages and do required modifications
+      stm-hamt = doJailbreak (unmarkBroken super.stm-hamt);
+      superbuffer = dontCheck (doJailbreak (unmarkBroken super.superbuffer));
+      Spock-core = dontCheck (unmarkBroken super.Spock-core);
+      stm-containers = dontCheck (unmarkBroken super.stm-containers);
+      ekg-json = unmarkBroken super.ekg-json;
+      list-t = dontCheck (unmarkBroken super.list-t);
+      primitive-extras = unmarkBroken super.primitive-extras;
+    };
+  };
+in {
+  inherit (pkgs) hasura-graphql-engine hasura-cli;
+}