{ lib , fetchFromGitHub , rustPlatform , cmake , llvmPackages , openssl , pkg-config , stdenv , systemd , darwin }: rustPlatform.buildRustPackage rec { pname = "openethereum"; version = "3.3.5"; src = fetchFromGitHub { owner = "openethereum"; repo = "openethereum"; rev = "v${version}"; sha256 = "sha256-PpRRoufuZ9fXbLonMAo6qaA/jtJZXW98uM0BEXdJ2oU="; }; cargoSha256 = "sha256-xXUNXQvVq6XqW/hmCfJ2/mHKkZu0amRZ77vX+Jib0iM="; nativeBuildInputs = [ cmake pkg-config ]; buildInputs = [ openssl ] ++ lib.optionals stdenv.isLinux [ systemd ] ++ lib.optionals stdenv.isDarwin [ darwin.Security ]; buildFeatures = [ "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; { broken = stdenv.isDarwin; description = "Fast, light, robust Ethereum implementation"; homepage = "http://parity.io/ethereum"; license = licenses.gpl3; maintainers = with maintainers; [ akru ]; platforms = lib.platforms.unix; }; }