From 10c44b5ca109230720b4a1a05ff5345a60eae642 Mon Sep 17 00:00:00 2001 From: hellwolf Date: Mon, 24 Jun 2024 15:59:22 +0300 Subject: [PATCH] echidna: 2.2.2 -> 2.2.3 Co-authored-by: Sandro --- pkgs/tools/security/echidna/default.nix | 100 ++++++++++++++++++------ 1 file changed, 78 insertions(+), 22 deletions(-) diff --git a/pkgs/tools/security/echidna/default.nix b/pkgs/tools/security/echidna/default.nix index b6c0d652ebb31..d7e51f7866f62 100644 --- a/pkgs/tools/security/echidna/default.nix +++ b/pkgs/tools/security/echidna/default.nix @@ -1,53 +1,109 @@ -{ lib -, mkDerivation -, fetchFromGitHub -, haskellPackages -, slither-analyzer +{ + lib, + fetchpatch, + mkDerivation, + fetchFromGitHub, + haskellPackages, + slither-analyzer, }: mkDerivation rec { pname = "echidna"; - version = "2.2.2"; + version = "2.2.3"; src = fetchFromGitHub { owner = "crytic"; repo = "echidna"; rev = "v${version}"; - sha256 = "sha256-l1ILdO+xb0zx/TFM6Am9j5hq1RnIMNf2HU6YvslAj0w="; + sha256 = "sha256-NJ2G6EkexYE4P3GD7PZ+lLEs1dqnoqIB2zfAOD5SQ8M="; }; - isLibrary = true; + patches = [ + # Support cross platform vty 6.x with vty-crossplatform + # https://github.com/crytic/echidna/pull/1290 + (fetchpatch { + url = "https://github.com/crytic/echidna/commit/2913b027d7e793390ed489ef6a47d23ec9b3c800.patch"; + hash = "sha256-5CGD9nDbDUTG869xUybWYSvGRsrm7JP7n0WMBNYfayw="; + }) + ]; + isExecutable = true; - libraryToolDepends = with haskellPackages; [ - haskellPackages.hpack - ]; + libraryToolDepends = with haskellPackages; [ haskellPackages.hpack ]; - executableHaskellDepends = with haskellPackages; [ aeson base base16-bytestring binary bytestring code-page - containers data-bword data-dword deepseq directory exceptions extra filepath hashable hevm html-conduit html-entities - http-conduit ListLike MonadRandom mtl optics optics-core optparse-applicative process random rosezipper semver split - strip-ansi-escape text time transformers unliftio utf8-string vector wai-extra warp with-utf8 word-wrap xml-conduit - yaml ]; + executableHaskellDepends = with haskellPackages; [ + # package.yaml - dependencies + base + aeson + async + base16-bytestring + binary + bytestring + code-page + containers + data-bword + data-dword + deepseq + extra + directory + exceptions + filepath + hashable + hevm + html-entities + ListLike + MonadRandom + mtl + optparse-applicative + optics + optics-core + process + random + rosezipper + semver + split + text + transformers + time + unliftio + utf8-string + vector + with-utf8 + word-wrap + yaml + http-conduit + html-conduit + warp + wai-extra + xml-conduit + strip-ansi-escape + # package.yaml - dependencies when "!os(windows)" + brick + unix + vty + ]; - # Note: there is also a runtime dependency of slither-analyzer, let's include it also. + # Note: there is also a runtime dependency of slither-analyzer. So, let's include it. executableSystemDepends = [ slither-analyzer ]; - testHaskellDepends = with haskellPackages; [ tasty tasty-hunit tasty-quickcheck ]; - preConfigure = '' hpack - # re-enable dynamic build for Linux - sed -i -e 's/os(linux)/false/' echidna.cabal ''; + shellHook = "hpack"; + doHaddock = false; + # tests depend on a specific version of solc doCheck = false; description = "Ethereum smart contract fuzzer"; homepage = "https://github.com/crytic/echidna"; license = lib.licenses.agpl3Plus; - maintainers = with lib.maintainers; [ arturcygan hellwolf ]; + maintainers = with lib.maintainers; [ + arturcygan + hellwolf + ]; platforms = lib.platforms.unix; mainProgram = "echidna-test"; }