diff options
Diffstat (limited to 'pkgs/by-name/go/go-ethereum/package.nix')
-rw-r--r-- | pkgs/by-name/go/go-ethereum/package.nix | 64 |
1 files changed, 64 insertions, 0 deletions
diff --git a/pkgs/by-name/go/go-ethereum/package.nix b/pkgs/by-name/go/go-ethereum/package.nix new file mode 100644 index 0000000000000..fc8d252636cf8 --- /dev/null +++ b/pkgs/by-name/go/go-ethereum/package.nix @@ -0,0 +1,64 @@ +{ lib, stdenv, buildGoModule, fetchFromGitHub, libobjc, IOKit, nixosTests }: + +let + # A list of binaries to put into separate outputs + bins = [ + "geth" + "clef" + ]; + +in buildGoModule rec { + pname = "go-ethereum"; + version = "1.14.8"; + + src = fetchFromGitHub { + owner = "ethereum"; + repo = pname; + rev = "v${version}"; + sha256 = "sha256-y831v6ar1RdDvGQMZf2lZKgq2IQzAAQrNwDCL0xbj24="; + }; + + proxyVendor = true; + vendorHash = "sha256-CLGf64Fftu4u8Vaj66Q4xuRKBEMNZmpltUyaUMVyVJk="; + + doCheck = false; + + outputs = [ "out" ] ++ bins; + + # Move binaries to separate outputs and symlink them back to $out + postInstall = lib.concatStringsSep "\n" ( + builtins.map (bin: "mkdir -p \$${bin}/bin && mv $out/bin/${bin} \$${bin}/bin/ && ln -s \$${bin}/bin/${bin} $out/bin/") bins + ); + + subPackages = [ + "cmd/abidump" + "cmd/abigen" + "cmd/blsync" + "cmd/bootnode" + "cmd/clef" + "cmd/devp2p" + "cmd/era" + "cmd/ethkey" + "cmd/evm" + "cmd/geth" + "cmd/rlpdump" + "cmd/utils" + ]; + + # Following upstream: https://github.com/ethereum/go-ethereum/blob/v1.11.6/build/ci.go#L218 + tags = [ "urfave_cli_no_docs" ]; + + # Fix for usb-related segmentation faults on darwin + propagatedBuildInputs = + lib.optionals stdenv.isDarwin [ libobjc IOKit ]; + + passthru.tests = { inherit (nixosTests) geth; }; + + meta = with lib; { + homepage = "https://geth.ethereum.org/"; + description = "Official golang implementation of the Ethereum protocol"; + license = with licenses; [ lgpl3Plus gpl3Plus ]; + maintainers = with maintainers; [ RaghavSood ]; + mainProgram = "geth"; + }; +} |