1{ lib
2, stdenv
3, rustPlatform
4, fetchFromGitHub
5, pkg-config
6, openssl
7
8# darwin
9, Security
10, SystemConfiguration
11
12# tests
13, firefox-esr-unwrapped
14, firefox-unwrapped
15, thunderbird-unwrapped
16}:
17
18let
19 pname = "dump_syms";
20 version = "2.3.1";
21in
22rustPlatform.buildRustPackage {
23 inherit pname version;
24
25 src = fetchFromGitHub {
26 owner = "mozilla";
27 repo = pname;
28 rev = "v${version}";
29 hash = "sha256-mSup3AMYsPu/Az6QXhdCFSxGcIpel4zNN0g/95gPDS0=";
30 };
31
32 cargoSha256 = "sha256-INzCyF/tvCp4L6Btrw8AGTBAgdFiBlywzO3+SSE4beI=";
33
34 nativeBuildInputs = [
35 pkg-config
36 ];
37
38 buildInputs = [
39 openssl
40 ] ++ lib.optionals (stdenv.isDarwin) [
41 Security
42 SystemConfiguration
43 ];
44
45 checkFlags = [
46 # Disable tests that require network access
47 # ConnectError("dns error", Custom { kind: Uncategorized, error: "failed to lookup address information: Temporary failure in name resolution" })) }', src/windows/pdb.rs:725:56
48 "--skip windows::pdb::tests::test_ntdll"
49 "--skip windows::pdb::tests::test_oleaut32"
50 ];
51
52 passthru.tests = {
53 inherit firefox-esr-unwrapped firefox-unwrapped thunderbird-unwrapped;
54 };
55
56 meta = with lib; {
57 changelog = "https://github.com/mozilla/dump_syms/releases/tag/v${version}";
58 description = "Command-line utility for parsing the debugging information the compiler provides in ELF or stand-alone PDB files";
59 mainProgram = "dump_syms";
60 license = licenses.asl20;
61 homepage = "https://github.com/mozilla/dump_syms/";
62 maintainers = with maintainers; [ hexa ];
63 };
64}