Files
nixpkgs/pkgs/by-name/ng/ngrep/package.nix
Dark Steveneq 646b892680
Some checks failed
Periodic Merges (6h) / master → staging-nixos (push) Failing after 12m50s
Periodic Merges (6h) / master → staging-next (push) Failing after 12m54s
Periodic Merges (24h) / merge-base(master,staging) → haskell-updates (push) Failing after 11m54s
Periodic Merges (6h) / staging-next → staging (push) Failing after 12m13s
Periodic Merges (24h) / staging-next-25.05 → staging-25.05 (push) Failing after 13m24s
Periodic Merges (24h) / release-25.05 → staging-next-25.05 (push) Failing after 14m28s
push sheeet
2025-10-09 14:15:47 +02:00

69 lines
1.9 KiB
Nix

{
lib,
stdenv,
fetchFromGitHub,
fetchpatch,
autoreconfHook,
libpcap,
pcre,
}:
stdenv.mkDerivation rec {
pname = "ngrep";
version = "1.47";
src = fetchFromGitHub {
owner = "jpr5";
repo = "ngrep";
rev = "V${lib.replaceStrings [ "." ] [ "_" ] version}";
sha256 = "1x2fyd7wdqlj1r76ilal06cl2wmbz0ws6i3ys204sbjh1cj6dcl7";
};
patches = [
(fetchpatch {
url = "https://patch-diff.githubusercontent.com/raw/jpr5/ngrep/pull/11.patch";
sha256 = "0k5qzvj8j3r1409qwwvzp7m3clgs2g7hs4q68bhrqbrsvvb2h5dh";
})
];
nativeBuildInputs = [ autoreconfHook ];
buildInputs = [
libpcap
pcre
];
configureFlags = [
"--enable-ipv6"
"--enable-pcre"
"--disable-pcap-restart"
"--with-pcap-includes=${libpcap}/include"
];
preConfigure = ''
sed -i "s|BPF=.*|BPF=${libpcap}/include/pcap/bpf.h|" configure
'';
meta = with lib; {
description = "Network packet analyzer";
longDescription = ''
ngrep strives to provide most of GNU grep's common features, applying
them to the network layer. ngrep is a pcap-aware tool that will allow you
to specify extended regular or hexadecimal expressions to match against
data payloads of packets. It currently recognizes IPv4/6, TCP, UDP,
ICMPv4/6, IGMP and Raw across Ethernet, PPP, SLIP, FDDI, Token Ring and
null interfaces, and understands BPF filter logic in the same fashion as
more common packet sniffing tools, such as tcpdump and snoop.
'';
homepage = "https://github.com/jpr5/ngrep/";
license = {
shortName = "ngrep"; # BSD-style, see README.md and LICENSE
url = "https://github.com/jpr5/ngrep/blob/master/LICENSE";
free = true;
redistributable = true;
};
platforms = with platforms; linux ++ darwin;
maintainers = [ maintainers.bjornfor ];
mainProgram = "ngrep";
};
}