From c08aa3c2a8d66acefcc7784a016af64100fcc580 Mon Sep 17 00:00:00 2001 From: Jörg Thalheim Date: Wed, 15 Jan 2020 11:39:52 +0000 Subject: nmap: fix zenmap, reduce vendored libraries --- pkgs/tools/security/nmap/default.nix | 43 +++++++++++++++--------------------- 1 file changed, 18 insertions(+), 25 deletions(-) (limited to 'pkgs/tools/security/nmap/default.nix') diff --git a/pkgs/tools/security/nmap/default.nix b/pkgs/tools/security/nmap/default.nix index 1b66dab35c8..f88c533d71d 100644 --- a/pkgs/tools/security/nmap/default.nix +++ b/pkgs/tools/security/nmap/default.nix @@ -1,24 +1,16 @@ { stdenv, fetchurl, fetchpatch, libpcap, pkgconfig, openssl, lua5_3 +, pcre, liblinear, libssh2 , graphicalSupport ? false , libX11 ? null , gtk2 ? null -, withPython ? false # required for the `ndiff` binary -, python2Packages ? null +, python2 ? null , makeWrapper ? null , withLua ? true }: -assert withPython -> python2Packages != null; - with stdenv.lib; -let - - # Zenmap (the graphical program) also requires Python, - # so automatically enable pythonSupport if graphicalSupport is requested. - pythonSupport = withPython || graphicalSupport; - -in stdenv.mkDerivation rec { +stdenv.mkDerivation rec { name = "nmap${optionalString graphicalSupport "-graphical"}-${version}"; version = "7.80"; @@ -48,10 +40,7 @@ in stdenv.mkDerivation rec { configureFlags = [ (if withLua then "--with-liblua=${lua5_3}" else "--without-liblua") - ] - ++ optional (!pythonSupport) "--without-ndiff" - ++ optional (!graphicalSupport) "--without-zenmap" - ; + ] ++ optionals (!graphicalSupport) [ "--without-ndiff" "--without-zenmap" ]; makeFlags = optionals (stdenv.buildPlatform != stdenv.hostPlatform) [ "AR=${stdenv.cc.bintools.targetPrefix}ar" @@ -59,18 +48,22 @@ in stdenv.mkDerivation rec { "CC=${stdenv.cc.targetPrefix}gcc" ]; - postInstall = optionalString pythonSupport '' - wrapProgram $out/bin/ndiff --prefix PYTHONPATH : "$(toPythonPath $out)" --prefix PYTHONPATH : "$PYTHONPATH" - '' + optionalString graphicalSupport '' - wrapProgram $out/bin/zenmap --prefix PYTHONPATH : "$(toPythonPath $out)" --prefix PYTHONPATH : "$PYTHONPATH" --prefix PYTHONPATH : $(toPythonPath $pygtk)/gtk-2.0 --prefix PYTHONPATH : $(toPythonPath $pygobject)/gtk-2.0 --prefix PYTHONPATH : $(toPythonPath $pycairo)/gtk-2.0 + pythonPath = with python2.pkgs; optionals graphicalSupport [ + pygtk pysqlite pygobject2 pycairo + ]; + + nativeBuildInputs = [ pkgconfig ] ++ optionals graphicalSupport [ python2.pkgs.wrapPython ]; + buildInputs = [ pcre liblinear libssh2 libpcap openssl ] ++ optionals graphicalSupport (with python2.pkgs; [ + python2 libX11 gtk2 + ]); + + postInstall = optionalString graphicalSupport '' + buildPythonPath "$out $pythonPath" + patchPythonScript $out/bin/ndiff + patchPythonScript $out/bin/zenmap ''; - nativeBuildInputs = [ pkgconfig ]; - buildInputs = with python2Packages; [ libpcap openssl ] - ++ optionals pythonSupport [ makeWrapper python ] - ++ optionals graphicalSupport [ - libX11 gtk2 pygtk pysqlite pygobject2 pycairo - ]; + enableParallelBuilding = true; doCheck = false; # fails 3 tests, probably needs the net -- cgit 1.4.1