summary refs log tree commit diff
path: root/pkgs/servers/hasura
diff options
context:
space:
mode:
authorJaka Hudoklin <jaka@x-truder.net>2019-12-11 20:41:31 +0000
committerJaka Hudoklin <jaka@x-truder.net>2020-05-07 18:54:01 +0700
commit9a8454a7a9e10a6e5d789b4049faa3876c1db3df (patch)
treed88025e3da213555f8d80c6bfce1a0da4021361b /pkgs/servers/hasura
parent4acf1e66506e05f41c4a4d0a86e999b30f35bdf3 (diff)
downloadnixpkgs-9a8454a7a9e10a6e5d789b4049faa3876c1db3df.tar
nixpkgs-9a8454a7a9e10a6e5d789b4049faa3876c1db3df.tar.gz
nixpkgs-9a8454a7a9e10a6e5d789b4049faa3876c1db3df.tar.bz2
nixpkgs-9a8454a7a9e10a6e5d789b4049faa3876c1db3df.tar.lz
nixpkgs-9a8454a7a9e10a6e5d789b4049faa3876c1db3df.tar.xz
nixpkgs-9a8454a7a9e10a6e5d789b4049faa3876c1db3df.tar.zst
nixpkgs-9a8454a7a9e10a6e5d789b4049faa3876c1db3df.zip
hasura: init at 1.2.1
Diffstat (limited to 'pkgs/servers/hasura')
-rw-r--r--pkgs/servers/hasura/ci-info.nix22
-rw-r--r--pkgs/servers/hasura/cli.nix33
-rw-r--r--pkgs/servers/hasura/default.nix63
-rw-r--r--pkgs/servers/hasura/dependent-map.nix13
-rw-r--r--pkgs/servers/hasura/dependent-sum.nix10
-rw-r--r--pkgs/servers/hasura/ghc-heap-view.nix18
-rw-r--r--pkgs/servers/hasura/graphql-engine.nix71
-rw-r--r--pkgs/servers/hasura/graphql-parser.nix35
-rw-r--r--pkgs/servers/hasura/immortal.nix17
-rw-r--r--pkgs/servers/hasura/network-uri.nix18
-rw-r--r--pkgs/servers/hasura/pg-client.nix30
-rw-r--r--pkgs/servers/hasura/these.nix25
12 files changed, 355 insertions, 0 deletions
diff --git a/pkgs/servers/hasura/ci-info.nix b/pkgs/servers/hasura/ci-info.nix
new file mode 100644
index 00000000000..53c85a2e5ba
--- /dev/null
+++ b/pkgs/servers/hasura/ci-info.nix
@@ -0,0 +1,22 @@
+{ mkDerivation, aeson, aeson-casing, base, fetchgit, hashable
+, hpack, stdenv, template-haskell, text, th-lift-instances
+, unordered-containers
+}:
+mkDerivation {
+  pname = "ci-info";
+  version = "0.1.0.0";
+  src = fetchgit {
+    url = "https://github.com/hasura/ci-info-hs.git";
+    sha256 = "0rn1799z4y7z1c6ijrr0gscarg25zmnfq0z9rrmk4ad727vf1ppc";
+    rev = "6af5a68450347a02295a9cd050d05a8b2f5c06ab";
+    fetchSubmodules = true;
+  };
+  libraryHaskellDepends = [
+    aeson aeson-casing base hashable template-haskell text
+    th-lift-instances unordered-containers
+  ];
+  libraryToolDepends = [ hpack ];
+  prePatch = "hpack";
+  homepage = "https://github.com/hasura/ci-info-hs#readme";
+  license = stdenv.lib.licenses.mit;
+}
diff --git a/pkgs/servers/hasura/cli.nix b/pkgs/servers/hasura/cli.nix
new file mode 100644
index 00000000000..f19ffe12f5d
--- /dev/null
+++ b/pkgs/servers/hasura/cli.nix
@@ -0,0 +1,33 @@
+{ buildGoModule, hasura-graphql-engine }:
+
+buildGoModule rec {
+  name = "hasura-${version}";
+  version = hasura-graphql-engine.version;
+
+  src = hasura-graphql-engine.src;
+  modRoot = "./cli";
+
+  goPackagePath = "github.com/hasura/graphql-engine/cli";
+  subPackages = [ "cmd/hasura" ];
+
+  modSha256 = "0bpb9r0n8n8c1p8sas3qanhvqw45rq8kygb4dmkfhj3d9vlgn6d2";
+
+  buildFlagsArray = [''-ldflags=
+    -X github.com/hasura/graphql-engine/cli/version.BuildVersion=${version}
+    -s
+    -w
+  ''];
+
+  postInstall = ''
+    mkdir -p $out/share/{bash-completion/completions,zsh/site-functions}
+
+    export HOME=$PWD
+    $out/bin/hasura completion bash > $out/share/bash-completion/completions/hasura
+    $out/bin/hasura completion zsh > $out/share/zsh/site-functions/_hasura
+  '';
+
+  meta = {
+    inherit (hasura-graphql-engine.meta) license homepage maintainers;
+    description = "Hasura GraphQL Engine CLI";
+  };
+}
diff --git a/pkgs/servers/hasura/default.nix b/pkgs/servers/hasura/default.nix
new file mode 100644
index 00000000000..08527466035
--- /dev/null
+++ b/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;
+}
diff --git a/pkgs/servers/hasura/dependent-map.nix b/pkgs/servers/hasura/dependent-map.nix
new file mode 100644
index 00000000000..68ebb616b5f
--- /dev/null
+++ b/pkgs/servers/hasura/dependent-map.nix
@@ -0,0 +1,13 @@
+{ mkDerivation, base, containers, dependent-sum, stdenv }:
+mkDerivation {
+  pname = "dependent-map";
+  version = "0.2.4.0";
+  sha256 = "5db396bdb5d156434af920c074316c3b84b4d39ba8e1cd349c7bb6679cb28246";
+  revision = "1";
+  editedCabalFile = "0a5f35d1sgfq1cl1r5bgb5pwfjniiycxiif4ycxglaizp8g5rlr1";
+  libraryHaskellDepends = [ base containers dependent-sum ];
+  homepage = "https://github.com/mokus0/dependent-map";
+  description = "Dependent finite maps (partial dependent products)";
+  license = "unknown";
+  hydraPlatforms = stdenv.lib.platforms.none;
+}
diff --git a/pkgs/servers/hasura/dependent-sum.nix b/pkgs/servers/hasura/dependent-sum.nix
new file mode 100644
index 00000000000..90717b87366
--- /dev/null
+++ b/pkgs/servers/hasura/dependent-sum.nix
@@ -0,0 +1,10 @@
+{ mkDerivation, base, stdenv }:
+mkDerivation {
+  pname = "dependent-sum";
+  version = "0.4";
+  sha256 = "a8deecb4153a1878173f8d0a18de0378ab068bc15e5035b9e4cb478e8e4e1a1e";
+  libraryHaskellDepends = [ base ];
+  homepage = "https://github.com/mokus0/dependent-sum";
+  description = "Dependent sum type";
+  license = stdenv.lib.licenses.publicDomain;
+}
diff --git a/pkgs/servers/hasura/ghc-heap-view.nix b/pkgs/servers/hasura/ghc-heap-view.nix
new file mode 100644
index 00000000000..54c873baee4
--- /dev/null
+++ b/pkgs/servers/hasura/ghc-heap-view.nix
@@ -0,0 +1,18 @@
+{ mkDerivation, base, binary, bytestring, Cabal, containers
+, deepseq, filepath, ghc-heap, stdenv, template-haskell
+, transformers
+}:
+mkDerivation {
+  pname = "ghc-heap-view";
+  version = "0.6.0";
+  sha256 = "99ed6034d02a7a942e1b6ed970e9f7028dcdfd5b5d29fd8a0fb89f1a5e7c5ec8";
+  enableSeparateDataOutput = true;
+  setupHaskellDepends = [ base Cabal filepath ];
+  libraryHaskellDepends = [
+    base binary bytestring containers ghc-heap template-haskell
+    transformers
+  ];
+  testHaskellDepends = [ base deepseq ];
+  description = "Extract the heap representation of Haskell values and thunks";
+  license = stdenv.lib.licenses.bsd3;
+}
diff --git a/pkgs/servers/hasura/graphql-engine.nix b/pkgs/servers/hasura/graphql-engine.nix
new file mode 100644
index 00000000000..05ba895be08
--- /dev/null
+++ b/pkgs/servers/hasura/graphql-engine.nix
@@ -0,0 +1,71 @@
+{ mkDerivation, aeson, aeson-casing, ansi-wl-pprint, asn1-encoding
+, asn1-types, async, attoparsec, attoparsec-iso8601, auto-update
+, base, base64-bytestring, byteorder, bytestring, case-insensitive
+, ci-info, containers, criterion, cryptonite, data-has, deepseq
+, dependent-map, dependent-sum, directory, ekg-core, ekg-json
+, fast-logger, fetchgit, file-embed, filepath, generic-arbitrary
+, ghc-heap-view, graphql-parser, hashable, hspec, hspec-core
+, hspec-expectations-lifted, http-client, http-client-tls
+, http-types, immortal, insert-ordered-containers, jose, lens
+, lifted-async, lifted-base, list-t, mime-types, monad-control
+, monad-time, monad-validate, mtl, mustache, mwc-probability
+, mwc-random, natural-transformation, network, network-uri
+, optparse-applicative, pem, pg-client, postgresql-binary
+, postgresql-libpq, process, profunctors, psqueues, QuickCheck
+, regex-tdfa, safe, scientific, semver, shakespeare, split
+, Spock-core, stdenv, stm, stm-containers, template-haskell, text
+, text-builder, text-conversions, th-lift-instances, these, time
+, transformers, transformers-base, unix, unordered-containers
+, uri-encode, uuid, vector, wai, wai-websockets, warp, websockets
+, wreq, x509, yaml, zlib
+}:
+mkDerivation {
+  pname = "graphql-engine";
+  version = "1.0.0";
+  src = fetchgit {
+    url = "https://github.com/hasura/graphql-engine.git";
+    sha256 = "0hg44zl3gqa8lq7kggwgmgbsgdc7zrv5cxs507vilg11xklsbz4l";
+    rev = "27b0b59361cebecd074bd59123f602e7b013bac1";
+    fetchSubmodules = true;
+  };
+  postUnpack = "sourceRoot+=/server; echo source root reset to $sourceRoot";
+  isLibrary = true;
+  isExecutable = true;
+  libraryHaskellDepends = [
+    aeson aeson-casing ansi-wl-pprint asn1-encoding asn1-types async
+    attoparsec attoparsec-iso8601 auto-update base base64-bytestring
+    byteorder bytestring case-insensitive ci-info containers cryptonite
+    data-has deepseq dependent-map dependent-sum directory ekg-core
+    ekg-json fast-logger file-embed filepath generic-arbitrary
+    ghc-heap-view graphql-parser hashable http-client http-client-tls
+    http-types immortal insert-ordered-containers jose lens
+    lifted-async lifted-base list-t mime-types monad-control monad-time
+    monad-validate mtl mustache network network-uri
+    optparse-applicative pem pg-client postgresql-binary
+    postgresql-libpq process profunctors psqueues QuickCheck regex-tdfa
+    scientific semver shakespeare split Spock-core stm stm-containers
+    template-haskell text text-builder text-conversions
+    th-lift-instances these time transformers transformers-base unix
+    unordered-containers uri-encode uuid vector wai wai-websockets warp
+    websockets wreq x509 yaml zlib
+  ];
+  executableHaskellDepends = [
+    base bytestring pg-client text text-conversions
+  ];
+  testHaskellDepends = [
+    aeson base bytestring hspec hspec-core hspec-expectations-lifted
+    http-client http-client-tls lifted-base monad-control mtl
+    natural-transformation optparse-applicative pg-client process
+    QuickCheck safe split text time transformers-base
+    unordered-containers
+  ];
+  benchmarkHaskellDepends = [
+    async base bytestring criterion deepseq mwc-probability mwc-random
+    split text vector
+  ];
+  doCheck = false;
+  homepage = "https://www.hasura.io";
+  description = "GraphQL API over Postgres";
+  license = stdenv.lib.licenses.asl20;
+  maintainers = with stdenv.lib.maintainers; [ offline ];
+}
diff --git a/pkgs/servers/hasura/graphql-parser.nix b/pkgs/servers/hasura/graphql-parser.nix
new file mode 100644
index 00000000000..8066bb83dd0
--- /dev/null
+++ b/pkgs/servers/hasura/graphql-parser.nix
@@ -0,0 +1,35 @@
+{ mkDerivation, aeson, attoparsec, base, bytestring, containers
+, criterion, fetchgit, filepath, hedgehog, hpack, prettyprinter
+, protolude, regex-tdfa, scientific, stdenv, template-haskell, text
+, text-builder, th-lift-instances, unordered-containers, vector
+}:
+mkDerivation {
+  pname = "graphql-parser";
+  version = "0.1.0.0";
+  src = fetchgit {
+    url = "https://github.com/hasura/graphql-parser-hs.git";
+    sha256 = "0vz0sqqmr1l02d3f1pc5k7rm7vpxmg5d5ijvdcwdm34yw6x5lz1v";
+    rev = "623ad78aa46e7ba2ef1aa58134ad6136b0a85071";
+    fetchSubmodules = true;
+  };
+  libraryHaskellDepends = [
+    aeson attoparsec base bytestring containers filepath hedgehog
+    prettyprinter protolude regex-tdfa scientific template-haskell text
+    text-builder th-lift-instances unordered-containers vector
+  ];
+  libraryToolDepends = [ hpack ];
+  testHaskellDepends = [
+    aeson attoparsec base bytestring containers filepath hedgehog
+    prettyprinter protolude regex-tdfa scientific template-haskell text
+    text-builder th-lift-instances unordered-containers vector
+  ];
+  benchmarkHaskellDepends = [
+    aeson attoparsec base bytestring containers criterion filepath
+    hedgehog prettyprinter protolude regex-tdfa scientific
+    template-haskell text text-builder th-lift-instances
+    unordered-containers vector
+  ];
+  prePatch = "hpack";
+  homepage = "https://github.com/hasura/graphql-parser-hs#readme";
+  license = stdenv.lib.licenses.bsd3;
+}
diff --git a/pkgs/servers/hasura/immortal.nix b/pkgs/servers/hasura/immortal.nix
new file mode 100644
index 00000000000..c53f0f18709
--- /dev/null
+++ b/pkgs/servers/hasura/immortal.nix
@@ -0,0 +1,17 @@
+{ mkDerivation, base, lifted-base, monad-control, stdenv, stm
+, tasty, tasty-hunit, transformers, transformers-base
+}:
+mkDerivation {
+  pname = "immortal";
+  version = "0.2.2.1";
+  sha256 = "ed4aa1a2883a693a73fec47c8c2d5332d61a0626a2013403e1a8fb25cc6c8d8e";
+  libraryHaskellDepends = [
+    base lifted-base monad-control stm transformers-base
+  ];
+  testHaskellDepends = [
+    base lifted-base stm tasty tasty-hunit transformers
+  ];
+  homepage = "https://github.com/feuerbach/immortal";
+  description = "Spawn threads that never die (unless told to do so)";
+  license = stdenv.lib.licenses.mit;
+}
diff --git a/pkgs/servers/hasura/network-uri.nix b/pkgs/servers/hasura/network-uri.nix
new file mode 100644
index 00000000000..45016d470a8
--- /dev/null
+++ b/pkgs/servers/hasura/network-uri.nix
@@ -0,0 +1,18 @@
+{ mkDerivation, base, deepseq, HUnit, parsec, stdenv
+, test-framework, test-framework-hunit, test-framework-quickcheck2
+}:
+mkDerivation {
+  pname = "network-uri";
+  version = "2.6.1.0";
+  sha256 = "423e0a2351236f3fcfd24e39cdbc38050ec2910f82245e69ca72a661f7fc47f0";
+  revision = "1";
+  editedCabalFile = "141nj7q0p9wkn5gr41ayc63cgaanr9m59yym47wpxqr3c334bk32";
+  libraryHaskellDepends = [ base deepseq parsec ];
+  testHaskellDepends = [
+    base HUnit test-framework test-framework-hunit
+    test-framework-quickcheck2
+  ];
+  homepage = "https://github.com/haskell/network-uri";
+  description = "URI manipulation";
+  license = stdenv.lib.licenses.bsd3;
+}
diff --git a/pkgs/servers/hasura/pg-client.nix b/pkgs/servers/hasura/pg-client.nix
new file mode 100644
index 00000000000..725e5e7f640
--- /dev/null
+++ b/pkgs/servers/hasura/pg-client.nix
@@ -0,0 +1,30 @@
+{ mkDerivation, aeson, aeson-casing, attoparsec, base, bytestring
+, criterion, fetchgit, file-embed, hashable, hashtables, hasql
+, hasql-pool, hasql-transaction, monad-control, mtl
+, postgresql-binary, postgresql-libpq, resource-pool, retry
+, scientific, stdenv, template-haskell, text, text-builder, th-lift
+, th-lift-instances, time, transformers-base, uuid, vector
+}:
+mkDerivation {
+  pname = "pg-client";
+  version = "0.1.0";
+  src = fetchgit {
+    url = "https://github.com/hasura/pg-client-hs.git";
+    sha256 = "1941gj5yp24kx0xb1nd774nwp5vnpsp6m83isqkwpyz9spl4sq7l";
+    rev = "70a849d09bea9461e72c5a5bbde06df65aab61c0";
+    fetchSubmodules = true;
+  };
+  libraryHaskellDepends = [
+    aeson aeson-casing attoparsec base bytestring hashable hashtables
+    monad-control mtl postgresql-binary postgresql-libpq resource-pool
+    retry scientific template-haskell text text-builder th-lift
+    th-lift-instances time transformers-base uuid vector
+  ];
+  testHaskellDepends = [ base ];
+  benchmarkHaskellDepends = [
+    base bytestring criterion file-embed hashable hasql hasql-pool
+    hasql-transaction mtl postgresql-libpq text text-builder
+  ];
+  homepage = "https://github.com/hasura/platform";
+  license = stdenv.lib.licenses.bsd3;
+}
diff --git a/pkgs/servers/hasura/these.nix b/pkgs/servers/hasura/these.nix
new file mode 100644
index 00000000000..396f9e2a282
--- /dev/null
+++ b/pkgs/servers/hasura/these.nix
@@ -0,0 +1,25 @@
+{ mkDerivation, aeson, base, base-compat, bifunctors, binary
+, containers, data-default-class, deepseq, hashable, keys, lens
+, mtl, QuickCheck, quickcheck-instances, semigroupoids, stdenv
+, tasty, tasty-quickcheck, transformers, transformers-compat
+, unordered-containers, vector, vector-instances
+}:
+mkDerivation {
+  pname = "these";
+  version = "0.7.6";
+  sha256 = "9464b83d98e626360a8ad9836ba77e5201cd1e9c89b95b1b11a28ef3c23ac746";
+  libraryHaskellDepends = [
+    aeson base base-compat bifunctors binary containers
+    data-default-class deepseq hashable keys lens mtl QuickCheck
+    semigroupoids transformers transformers-compat unordered-containers
+    vector vector-instances
+  ];
+  testHaskellDepends = [
+    aeson base base-compat bifunctors binary containers hashable lens
+    QuickCheck quickcheck-instances tasty tasty-quickcheck transformers
+    unordered-containers vector
+  ];
+  homepage = "https://github.com/isomorphism/these";
+  description = "An either-or-both data type & a generalized 'zip with padding' typeclass";
+  license = stdenv.lib.licenses.bsd3;
+}