nixpkgs/pkgs/tools/networking/ngrep/default.nix
Nikola Knezevic 0278e1e297 ngrep: Make available on darwin
ngrep works on macos/Darwin without problems. The official page even
states that:

```
Confirmed Working Platforms

 Linux 2.0+ (RH6+, SuSE, TurboLinux, Debian, Gentoo, Ubuntu, Mandrake, Slackware)/x86, RedHat/alpha Cobalt, (Qube2) Linux/MIPS
 Solaris 2.5.1, 2.6/SPARC, Solaris 7, Solaris 8/SPARC, Solaris 9/SPARC
 FreeBSD 2.2.5, 3.1, 3.2, 3.4-RC, 3.4-RELEASE, 4.0, 5.0
 OpenBSD 2.4 (after upgrading pcap from 0.2), 2.9, 3.0, 3.1+
 NetBSD 1.5/SPARC
 Digital Unix V4.0D (OSF/1), Tru64 5.0, Tru64 5.1A
 HPUX 11
 IRIX
 AIX 4.3.3.0/PowerPC
 BeOS R5
 Mac OS X 10+
 GNU HURD
 Windows 95, 98, NT, 2000, XP, 2003/x86, 7, 8, 8.1, 10
```
2021-11-05 10:08:50 +01:00

55 lines
1.8 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/";
# <ngrep>/doc/README.txt says that ngrep itself is licensed under a
# 'BSD-like' license but that the 'regex' library (in the ngrep tarball) is
# GPLv2.
license = "ngrep"; # Some custom BSD-style, see LICENSE.txt
platforms = with platforms; linux ++ darwin;
maintainers = [ maintainers.bjornfor ];
};
}