12 # A list of binaries to put into separate outputs
20 pname = "go-ethereum";
23 src = fetchFromGitHub {
27 hash = "sha256-s1BSFTjqro3gFyKphU8FdpjViKyyZc0bt1m+lzkAcBU=";
31 vendorHash = "sha256-IEwy3XRyj+5GjAWRjPsd5qzwEMpI/pZIwPjKdeATgkE=";
35 outputs = [ "out" ] ++ bins;
37 # Move binaries to separate outputs and symlink them back to $out
38 postInstall = lib.concatStringsSep "\n" (
41 "mkdir -p \$${bin}/bin && mv $out/bin/${bin} \$${bin}/bin/ && ln -s \$${bin}/bin/${bin} $out/bin/"
60 # Following upstream: https://github.com/ethereum/go-ethereum/blob/v1.11.6/build/ci.go#L218
61 tags = [ "urfave_cli_no_docs" ];
63 # Fix for usb-related segmentation faults on darwin
64 propagatedBuildInputs = lib.optionals stdenv.hostPlatform.isDarwin [
69 passthru.tests = { inherit (nixosTests) geth; };
72 homepage = "https://geth.ethereum.org/";
73 description = "Official golang implementation of the Ethereum protocol";
74 license = with licenses; [
78 maintainers = with maintainers; [ RaghavSood ];