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 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"; }