{ lib , fetchFromGitHub , rustPlatform , cmake , llvmPackages , openssl , pkg-config , stdenv , systemd , darwin }: rustPlatform.buildRustPackage.override { stdenv = stdenv; } rec { pname = "openethereum"; version = "3.2.5"; src = fetchFromGitHub { owner = "openethereum"; repo = "openethereum"; rev = "v${version}"; sha256 = "1g48fkznvr9fs3j9zy2d9pcwnahmyghxg2b9bsn2mxpyczmfqrki"; }; cargoSha256 = "02nlm5ariv4dr6b3rckzs7hw1xrl83yvhimrzb0g5l0j0sxh1nhc"; nativeBuildInputs = [ cmake 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; }; }