{ stdenv, cmake, curl, fetchFromGitHub, gss, hwloc, lib, libsodium, libuv, nix-update-script, openssl, pkg-config, zeromq, darwin, }: let inherit (darwin.apple_sdk.frameworks) Foundation; in stdenv.mkDerivation rec { pname = "p2pool"; version = "4.2"; src = fetchFromGitHub { owner = "SChernykh"; repo = "p2pool"; rev = "v${version}"; hash = "sha256-zowRQeFrT0sY9L5XJQ10f8tRnEchjKVdBixtPbAQyvo="; fetchSubmodules = true; }; nativeBuildInputs = [ cmake pkg-config ]; buildInputs = [ libuv zeromq libsodium gss hwloc openssl curl ] ++ lib.optionals stdenv.hostPlatform.isDarwin [ Foundation ]; cmakeFlags = [ "-DWITH_LTO=OFF" ]; env.NIX_CFLAGS_COMPILE = toString ( lib.optionals (stdenv.hostPlatform.isDarwin && lib.versionOlder stdenv.hostPlatform.darwinMinVersion "10.13") [ "-faligned-allocation" ] ); installPhase = '' runHook preInstall install -vD p2pool $out/bin/p2pool runHook postInstall ''; passthru = { updateScript = nix-update-script { }; }; meta = with lib; { description = "Decentralized pool for Monero mining"; homepage = "https://github.com/SChernykh/p2pool"; license = licenses.gpl3Only; maintainers = with maintainers; [ ratsclub ]; mainProgram = "p2pool"; platforms = platforms.all; }; }