shell.nix
with import <nixpkgs> {};
let h2-lwt = ocamlPackages.buildDunePackage rec {
pname = "h2-lwt";
version = "0.12.0";
src = pkgs.fetchurl {
url = "https://github.com/anmonteiro/ocaml-h2/releases/download/0.12.0/h2-0.12.0.tbz";
sha256 = "sha256-NuQLET2Q6jg2GajHvZk/hmExw8XZV2GbaEnrMq+MU8Y=";
};
propagatedBuildInputs = with pkgs; [
h2
ocamlPackages.faraday-async
ocamlPackages.gluten-lwt
ocamlPackages.gluten-async
];
};
h2-lwt-unix = ocamlPackages.buildDunePackage rec {
pname = "h2-lwt-unix";
version = "0.12.0";
src = pkgs.fetchurl {
url = "https://github.com/anmonteiro/ocaml-h2/releases/download/0.12.0/h2-0.12.0.tbz";
sha256 = "sha256-NuQLET2Q6jg2GajHvZk/hmExw8XZV2GbaEnrMq+MU8Y=";
};
propagatedBuildInputs = with pkgs; [
h2-lwt
ocamlPackages.faraday-lwt-unix
ocamlPackages.gluten-lwt-unix
];
};
h2 = ocamlPackages.buildDunePackage rec {
pname = "h2";
version = "0.12.0";
src = pkgs.fetchurl {
url = "https://github.com/anmonteiro/ocaml-h2/releases/download/0.12.0/h2-0.12.0.tbz";
sha256 = "sha256-NuQLET2Q6jg2GajHvZk/hmExw8XZV2GbaEnrMq+MU8Y=";
};
propagatedBuildInputs = with pkgs; [
ocamlPackages.base64
ocamlPackages.angstrom
ocamlPackages.faraday
ocamlPackages.bigstringaf
ocamlPackages.psq
ocamlPackages.hpack
ocamlPackages.httpun-types
ocamlPackages.alcotest
ocamlPackages.yojson
ocamlPackages.hex
];
};
grpc-src = pkgs.fetchFromGitHub {
owner = "dialohq";
repo = "ocaml-grpc";
rev = "0.2.0";
sha256 = "sha256-YARAm3EVTbptAoKA0lysJRYeKPaCaeWU6X9Lzkn+30E=";
};
grpc = ocamlPackages.buildDunePackage rec {
pname = "grpc";
version = "0.2.0";
src = grpc-src;
propagatedBuildInputs = with pkgs; [
ocamlPackages.uri
h2
ocamlPackages.ppx_deriving
ocamlPackages.ppxlib
];
};
grpc-lwt = ocamlPackages.buildDunePackage rec {
pname = "grpc-lwt";
version = "0.2.0";
src = grpc-src;
propagatedBuildInputs = with pkgs; [
ocamlPackages.stringext
ocamlPackages.lwt
grpc
];
};
in
clangStdenv.mkDerivation {
name = "elpe";
buildInputs = [
openssl nettle zstd.dev sequoia-sq
xz.dev
pkg-config
ocaml
opam
ocamlPackages.ocaml
ocamlPackages.dune_3
ocamlPackages.ocaml-protoc
ocamlPackages.findlib
ocamlPackages.core
ocamlPackages.core_unix
ocamlPackages.ocaml-protoc-plugin
ocamlPackages.yojson
ocamlPackages.toml
ocamlPackages.hex
ocamlPackages.ppx_string
ocamlPackages.ppx_blob
grpc-lwt
h2-lwt-unix
ocamlformat
protobuf
checksec
linuxPackages_latest.perf
];
nativeBuildInputs = [ pkg-config b3sum ];
LIBCLANG_PATH="${llvmPackages.libclang.lib}/lib";
PROTOC="${protobuf}/bin/protoc";
}