51 lines
1.6 KiB
Nix
51 lines
1.6 KiB
Nix
{ lib, stdenv, fetchFromGitHub, fetchpatch, autoreconfHook, pkg-config, libpcap, guile, openssl }:
|
|
|
|
stdenv.mkDerivation rec {
|
|
pname = "junkie";
|
|
version = "2.8.0";
|
|
|
|
src = fetchFromGitHub {
|
|
owner = "rixed";
|
|
repo = "junkie";
|
|
rev = "v${version}";
|
|
sha256 = "0kfdjgch667gfb3qpiadd2dj3fxc7r19nr620gffb1ahca02wq31";
|
|
};
|
|
|
|
patches = [
|
|
# Pull upstream patch for -fno-common toolchains:
|
|
(fetchpatch {
|
|
name = "fno-common.patch";
|
|
url = "https://github.com/rixed/junkie/commit/52209c5b0c9a09981739ede9701cd73e82a88ea5.patch";
|
|
sha256 = "1qg01jinqn5wr2mz77rzaidnrli35di0k7lnx6kfm7dh7v8kxbrr";
|
|
})
|
|
];
|
|
|
|
# IP_DONTFRAG is defined on macOS from Big Sur
|
|
postPatch = lib.optionalString (lib.versionAtLeast stdenv.hostPlatform.darwinMinVersion "11") ''
|
|
sed -i '10i#undef IP_DONTFRAG' include/junkie/proto/ip.h
|
|
'';
|
|
|
|
buildInputs = [ libpcap guile openssl ];
|
|
nativeBuildInputs = [ autoreconfHook pkg-config ];
|
|
configureFlags = [
|
|
"GUILELIBDIR=\${out}/share/guile/site"
|
|
"GUILECACHEDIR=\${out}/lib/guile/ccache"
|
|
];
|
|
|
|
meta = {
|
|
description = "Deep packet inspection swiss-army knife";
|
|
homepage = "https://github.com/rixed/junkie";
|
|
license = lib.licenses.agpl3Plus;
|
|
maintainers = [ lib.maintainers.rixed ];
|
|
platforms = lib.platforms.unix;
|
|
longDescription = ''
|
|
Junkie is a network sniffer like Tcpdump or Wireshark, but designed to
|
|
be easy to program and extend.
|
|
|
|
It comes with several command line tools to demonstrate this:
|
|
- a packet dumper;
|
|
- a nettop tool;
|
|
- a tool listing TLS certificates...
|
|
'';
|
|
};
|
|
}
|