gRPC-haskell/release.nix
Connor Clark d66a4f98b3 Update to gRPC 0.15 (#61)
* update channel arg names, add compression level arg support, add compression level arg test

* switch to temp test demonstrating bug in grpc 0.15.0

* memset op array to 0

* switch examples back

* Switch to newer `grpc` and enable tests in `release.nix`

* Split out `simple-server` test into separate shell script

* Fix bash invocation

* Add intermediate `./default-tests.nix` build

* Add `tests.patch` to version control

* Split `python` command into separate script

* Provide `python` via `nix`
2016-08-05 09:29:20 -07:00

107 lines
3.8 KiB
Nix

# To build this repository with `nix` you run:
#
# $ nix-build release.nix -I ssh-config-file=/path/to/ssh/config
#
# ... where the `ssh-config-file` is an SSH configuration file with enough
# information to authenticate (i.e. an `IdentityFile` readable by the user that
# builds this expression, for example).
#
# If you update the `.cabal` file (such as changing dependencies or adding new
# library/executable/test/benchmark sections), then update the `default.nix`
# expression by running:
#
# $ cabal2nix . > default.nix
#
# If you want to update a dependency like `proto3-wire` to the latest git
# revision, then run:
#
# $ nix-prefetch-git https://github.com/awakenetworks/proto3-wire.git
#
# ... and modify the `rev` and `sha256` fields of the corresponding `fetchgit`
# expression below using the output of the `nix-prefetch-git` command.
#
# If you want to test a local `proto3-wire` repository, then replace the
# `fetchgit { ... }` expression with the relative path to the source repository
# such as:
#
# let proto3-wire-src = ../proto3-wire;
# in
# ...
let
config = {
packageOverrides = pkgs: rec {
grpc = pkgs.stdenv.mkDerivation rec {
name = "grpc-${version}";
version = "0.15-${pkgs.lib.strings.substring 0 7 rev}";
rev = "03efbd34ce64615f58007eae667b375accc6c8e6";
src = pkgs.fetchgit {
inherit rev;
url = "https://github.com/grpc/grpc.git";
sha256 = "1pac3jby5p5a6p6vpqc5whkgy36hnn2ph2jbckg3w73hrxrnwmdh";
};
preInstall = "export prefix";
buildInputs =
(if pkgs.stdenv.isDarwin then [ pkgs.darwin.cctools ] else []) ++ [
pkgs.autoconf
pkgs.automake
pkgs.libtool
pkgs.which
pkgs.zlib
pkgs.openssl
];
};
haskellPackages = pkgs.haskell.packages.ghc7103.override {
overrides = haskellPackagesNew: haskellPackagesOld: rec {
proto3-wire =
let proto3-wire-src = pkgs.fetchgit {
url = "https://github.com/awakenetworks/proto3-wire.git";
rev = "b5151914873b9ede230094e742953b5062566244";
sha256 = "09vjza18gnh5mf9l8vg3ka1c7rqfbjwviyjwpvam07hf90r0yg5b";
};
in
haskellPackagesNew.callPackage proto3-wire-src { };
protobuf-wire =
let protobuf-wire-src = pkgs.fetchgitPrivate {
url = "git@github.mv.awakenetworks.net:awakenetworks/protobuf-wire.git";
rev = "c766074e3e5da9bcca1e5a5fc069983d8fbc97b3";
sha256 = "0mlpfzvnzfblq7a265q4b61xkn30ndvqp8qjshbrx7kvyjxjlvnn";
};
in
haskellPackagesNew.callPackage protobuf-wire-src { };
grpc-haskell-no-tests =
haskellPackagesNew.callPackage ./default.nix { };
grpc-haskell =
haskellPackagesNew.callPackage (import ./default-tests.nix {
inherit grpc-haskell-no-tests;
inherit (pkgs) ghc python;
}) { };
sorted-list = haskellPackagesNew.callPackage
({ mkDerivation, base, deepseq }:
mkDerivation {
pname = "sorted-list";
version = "0.2.0.0";
sha256 = "cc52c787b056f4d3a9ecc59f06701695602558a4233042ff8f613cdd4985d138";
libraryHaskellDepends = [ base deepseq ];
homepage = "https://github.com/Daniel-Diaz/sorted-list/blob/master/README.md";
description = "Type-enforced sorted lists and related functions";
license = pkgs.stdenv.lib.licenses.bsd3;
}) {};
};
};
};
allowUnfree = true;
};
in
{ pkgs ? import <nixpkgs> { inherit config; } }:
# Disable tests for now, since they don't pass yet
{ grpc-haskell = pkgs.haskell.lib.dontCheck pkgs.haskellPackages.grpc-haskell;
}