1{ stdenv, fetchurl, libpcap, tcl }:
2
3stdenv.mkDerivation rec {
4 name = "hping-${version}";
5 version = "20051105";
6
7 src = fetchurl {
8 url = "http://www.hping.org/hping3-${version}.tar.gz";
9 sha256 = "1s5f9xd1msx05ibhwaw37jmc7l9fahcxxslqz8a83p0i5ak739pm";
10 };
11
12 buildInputs = [ libpcap tcl ];
13
14 configurePhase = ''
15 MANPATH="$out/share/man" ./configure
16 sed -i -r -e 's|/usr(/s?bin)|'"$out"'\1|g' Makefile
17 '';
18
19 TCLSH = "${tcl}/bin/tclsh";
20
21 prePatch = ''
22 sed -i -e '/#if.*defined(__i386__)/a \
23 || defined(__x86_64__) \\
24 ' bytesex.h
25
26 sed -i -e 's|#include.*net/bpf.h|#include <pcap/bpf.h>|' \
27 libpcap_stuff.c script.c
28
29 sed -i -r -e 's|"(/usr/(local/)?)?bin/"|"${tcl}/bin"|g' \
30 -e 's!/usr/(local/)?(lib|include)!${tcl}/\2!g' \
31 configure
32 '';
33
34 preInstall = ''
35 mkdir -vp "$out/sbin" "$out/share/man/man8"
36 '';
37
38 postInstall = ''
39 ln -vs hping3.8.gz "$out/share/man/man8/hping.8.gz"
40 ln -vs hping3.8.gz "$out/share/man/man8/hping2.8.gz"
41 '';
42
43 meta = {
44 description = "A command-line oriented TCP/IP packet assembler/analyzer";
45 homepage = "http://www.hping.org/";
46 license = stdenv.lib.licenses.gpl2;
47 platforms = stdenv.lib.platforms.all;
48 };
49}