{ lib , rustPlatform , fetchFromGitHub , pkg-config , bzip2 , openssl , zstd , stdenv , darwin }: rustPlatform.buildRustPackage rec { pname = "symbolicator"; version = "24.7.1"; src = fetchFromGitHub { owner = "getsentry"; repo = "symbolicator"; rev = version; hash = "sha256-thc1VXKtOc+kgIMHGDBp4InaSFG9mK9WYS7g90b5Fzs="; fetchSubmodules = true; }; cargoLock = { lockFile = ./Cargo.lock; outputHashes = { "cpp_demangle-0.4.1" = "sha256-9QopX2TOJc8bZ+UlSOFdjoe8NTJLVGrykyFL732tE3A="; "reqwest-0.12.2" = "sha256-m46NyzsgXsDxb6zwVXP0wCdtCH+rb5f0x+oPNHuBF8s="; }; }; nativeBuildInputs = [ pkg-config rustPlatform.bindgenHook ]; buildInputs = [ bzip2 openssl zstd ] ++ lib.optionals stdenv.hostPlatform.isDarwin [ darwin.apple_sdk.frameworks.Security darwin.apple_sdk.frameworks.SystemConfiguration ]; env = { SYMBOLICATOR_GIT_VERSION = src.rev; SYMBOLICATOR_RELEASE = version; ZSTD_SYS_USE_PKG_CONFIG = true; }; # tests require network access doCheck = false; meta = with lib; { description = "Native Symbolication as a Service"; homepage = "https://getsentry.github.io/symbolicator/"; changelog = "https://github.com/getsentry/symbolicator/blob/${src.rev}/CHANGELOG.md"; license = licenses.mit; maintainers = with maintainers; [ figsoda ]; mainProgram = "symbolicator"; }; }