{ lib , fetchFromGitHub , rustPlatform , cmake , llvmPackages , openssl , pkg-config , stdenv , systemd , darwin }: rustPlatform.buildRustPackage rec { pname = "openethereum"; version = "3.1.1"; src = fetchFromGitHub { owner = "openethereum"; repo = "openethereum"; rev = "v${version}"; sha256 = "sha256-RUrJuJF0R0mc7XdLyk915fRWtMfzjp5QE6oeWxHfyEQ="; }; cargoSha256 = "sha256-b+winsCzU0sXGDX6nUtWq4JrIyTcJ3uva7RlV5VsXfk="; LIBCLANG_PATH = "${llvmPackages.libclang}/lib"; nativeBuildInputs = [ cmake llvmPackages.clang llvmPackages.libclang pkg-config ]; buildInputs = [ openssl ] ++ lib.optionals stdenv.isLinux [ systemd ] ++ lib.optionals stdenv.isDarwin [ darwin.Security ]; cargoBuildFlags = [ "--features final" ]; # Fix tests by preventing them from writing to /homeless-shelter. preCheck = '' export HOME=$(mktemp -d) ''; # Exclude some tests that don't work in the sandbox # - Nat test requires network access checkFlags = "--skip configuration::tests::should_resolve_external_nat_hosts"; meta = with lib; { description = "Fast, light, robust Ethereum implementation"; homepage = "http://parity.io/ethereum"; license = licenses.gpl3; maintainers = with maintainers; [ akru xrelkd ]; platforms = lib.platforms.unix; }; }