diff --git a/pkgs/tools/networking/hping/default.nix b/pkgs/tools/networking/hping/default.nix index 1ef02b599e83..daa0ba38e9ee 100644 --- a/pkgs/tools/networking/hping/default.nix +++ b/pkgs/tools/networking/hping/default.nix @@ -1,50 +1,41 @@ -{ stdenv, fetchurl, libpcap, tcl }: +{ stdenv, fetchFromGitHub, libpcap, withTcl ? true, tcl }: stdenv.mkDerivation rec { pname = "hping"; - version = "20051105"; + version = "2014-12-26"; - src = fetchurl { - url = "http://www.hping.org/hping3-${version}.tar.gz"; - sha256 = "1s5f9xd1msx05ibhwaw37jmc7l9fahcxxslqz8a83p0i5ak739pm"; + src = fetchFromGitHub { + owner = "antirez"; + repo = pname; + rev = "3547c7691742c6eaa31f8402e0ccbb81387c1b99"; # there are no tags/releases + sha256 = "0y0n1ybij3yg9lfgzcwfmjz1sjg913zcqrv391xx83dm0j80sdpb"; }; - buildInputs = [ libpcap tcl ]; + buildInputs = [ libpcap ] ++ stdenv.lib.optional withTcl tcl; - configurePhase = '' - MANPATH="$out/share/man" ./configure - sed -i -r -e 's|/usr(/s?bin)|'"$out"'\1|g' Makefile - ''; - - TCLSH = "${tcl}/bin/tclsh"; - - prePatch = '' - sed -i -e '/#if.*defined(__i386__)/a \ - || defined(__x86_64__) \\ - ' bytesex.h - - sed -i -e 's|#include.*net/bpf.h|#include |' \ + postPatch = '' + substituteInPlace Makefile.in --replace "gcc" "$CC" + substituteInPlace version.c --replace "RELEASE_DATE" "\"$version\"" + '' + stdenv.lib.optionalString stdenv.isLinux '' + sed -i -e 's|#include |#include |' \ libpcap_stuff.c script.c - - sed -i -r -e 's|"(/usr/(local/)?)?bin/"|"${tcl}/bin"|g' \ - -e 's!/usr/(local/)?(lib|include)!${tcl}/\2!g' \ - configure ''; - preInstall = '' - mkdir -vp "$out/sbin" "$out/share/man/man8" - ''; + configureFlags = [ (if withTcl then "TCLSH=${tcl}/bin/tclsh" else "--no-tcl") ]; - postInstall = '' - ln -vs hping3.8.gz "$out/share/man/man8/hping.8.gz" - ln -vs hping3.8.gz "$out/share/man/man8/hping2.8.gz" + installPhase = '' + install -Dm755 hping3 -t $out/sbin + ln -s $out/sbin/hping3 $out/sbin/hping + ln -s $out/sbin/hping3 $out/sbin/hping2 + install -Dm644 docs/hping3.8 -t $out/share/man/man8 + ln -s hping3.8.gz $out/share/man/man8/hping.8.gz + ln -s hping3.8.gz $out/share/man/man8/hping2.8.gz ''; meta = with stdenv.lib; { description = "A command-line oriented TCP/IP packet assembler/analyzer"; homepage = "http://www.hping.org/"; - license = licenses.gpl2; - platforms = platforms.all; - broken = stdenv.isDarwin; + license = licenses.gpl2Only; + platforms = platforms.unix; }; }