nixpkgs mirror (for testing)
github.com/NixOS/nixpkgs
nix
1{
2 lib,
3 fetchFromGitHub,
4 versionCheckHook,
5 buildGoModule,
6 libpcap,
7}:
8
9buildGoModule (finalAttr: {
10 pname = "ptcpdump";
11 version = "0.37.0";
12
13 src = fetchFromGitHub {
14 owner = "mozillazg";
15 repo = "ptcpdump";
16 tag = "v${finalAttr.version}";
17 hash = "sha256-ouH7VFWSCOElbmbSWAkmM4dtNVp545mC/FnoNAFtaEw=";
18 };
19
20 vendorHash = null;
21
22 buildInputs = [ libpcap ];
23
24 tags = [ "dynamic" ];
25
26 ldflags = [
27 "-X github.com/mozillazg/ptcpdump/internal.Version=v${finalAttr.version}"
28 ];
29 nativeInstallCheckInputs = [ versionCheckHook ];
30 doInstallCheck = true;
31
32 checkFlags =
33 let
34 # Skip tests that require network access
35 skippedTests = [
36 "Test_loadSpecFromBTFHub"
37 "Test_loadSpecFromOpenanolis"
38 ];
39 in
40 [ "-skip=^${builtins.concatStringsSep "$|^" skippedTests}$" ];
41
42 meta = {
43 homepage = "https://github.com/mozillazg/ptcpdump/";
44 description = "Process-aware, eBPF-based tcpdump";
45 mainProgram = "ptcpdump";
46 license = lib.licenses.mit;
47 maintainers = with lib.maintainers; [ neilmayhew ];
48 platforms = lib.platforms.linux;
49 };
50})