biome: 1.9.2 -> 1.9.3
[NixPkgs.git] / pkgs / tools / networking / ngrep / default.nix
blob31707ce00d5a89ed2c324fe19af2c29d1117d786
1 { lib, stdenv, fetchFromGitHub, fetchpatch, autoreconfHook, libpcap, pcre }:
3 stdenv.mkDerivation rec {
4   pname = "ngrep";
5   version = "1.47";
7   src = fetchFromGitHub {
8     owner = "jpr5";
9     repo = "ngrep";
10     rev = "V${lib.replaceStrings ["."] ["_"] version}";
11     sha256 = "1x2fyd7wdqlj1r76ilal06cl2wmbz0ws6i3ys204sbjh1cj6dcl7";
12   };
14   patches = [
15     (fetchpatch {
16       url = "https://patch-diff.githubusercontent.com/raw/jpr5/ngrep/pull/11.patch";
17       sha256 = "0k5qzvj8j3r1409qwwvzp7m3clgs2g7hs4q68bhrqbrsvvb2h5dh";
18     })
19   ];
21   nativeBuildInputs = [ autoreconfHook ];
22   buildInputs = [ libpcap pcre ];
24   configureFlags = [
25     "--enable-ipv6"
26     "--enable-pcre"
27     "--disable-pcap-restart"
28     "--with-pcap-includes=${libpcap}/include"
29   ];
31   preConfigure = ''
32     sed -i "s|BPF=.*|BPF=${libpcap}/include/pcap/bpf.h|" configure
33   '';
35   meta = with lib; {
36     description = "Network packet analyzer";
37     longDescription = ''
38       ngrep strives to provide most of GNU grep's common features, applying
39       them to the network layer. ngrep is a pcap-aware tool that will allow you
40       to specify extended regular or hexadecimal expressions to match against
41       data payloads of packets. It currently recognizes IPv4/6, TCP, UDP,
42       ICMPv4/6, IGMP and Raw across Ethernet, PPP, SLIP, FDDI, Token Ring and
43       null interfaces, and understands BPF filter logic in the same fashion as
44       more common packet sniffing tools, such as tcpdump and snoop.
45     '';
46     homepage = "https://github.com/jpr5/ngrep/";
47     license = {
48       shortName = "ngrep";  # BSD-style, see README.md and LICENSE
49       url = "https://github.com/jpr5/ngrep/blob/master/LICENSE";
50       free = true;
51       redistributable = true;
52     };
53     platforms = with platforms; linux ++ darwin;
54     maintainers = [ maintainers.bjornfor ];
55     mainProgram = "ngrep";
56   };