depot/third_party/nixpkgs/pkgs/tools/security/echidna/default.nix
Default email 7e47f3658e Project import generated by Copybara.
GitOrigin-RevId: 1925c603f17fc89f4c8f6bf6f631a802ad85d784
2024-09-26 11:04:55 +00:00

121 lines
2.5 KiB
Nix

{
stdenv,
lib,
fetchpatch,
mkDerivation,
fetchFromGitHub,
haskellPackages,
slither-analyzer,
}:
mkDerivation (
rec {
pname = "echidna";
version = "2.2.3";
src = fetchFromGitHub {
owner = "crytic";
repo = "echidna";
rev = "v${version}";
sha256 = "sha256-NJ2G6EkexYE4P3GD7PZ+lLEs1dqnoqIB2zfAOD5SQ8M=";
};
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 ];
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. So, let's include it.
executableSystemDepends = [ slither-analyzer ];
preConfigure = ''
hpack
'';
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
];
platforms = lib.platforms.unix;
mainProgram = "echidna-test";
}
// lib.optionalAttrs (stdenv.hostPlatform.isDarwin && stdenv.hostPlatform.isAarch64) {
# https://github.com/NixOS/nixpkgs/pull/304352
postInstall = with haskellPackages; ''
remove-references-to -t ${warp.out} "$out/bin/echidna"
remove-references-to -t ${wreq.out} "$out/bin/echidna"
'';
}
)