diff options
Diffstat (limited to 'pkgs/tools/security/nmap/default.nix')
-rw-r--r-- | pkgs/tools/security/nmap/default.nix | 43 |
1 files changed, 25 insertions, 18 deletions
diff --git a/pkgs/tools/security/nmap/default.nix b/pkgs/tools/security/nmap/default.nix index f9c7dba5660b..9413f9920866 100644 --- a/pkgs/tools/security/nmap/default.nix +++ b/pkgs/tools/security/nmap/default.nix @@ -1,38 +1,45 @@ { stdenv, fetchurl, libpcap, pkgconfig, openssl , graphicalSupport ? false +, gtk2 ? null , libX11 ? null -, gtk ? null -, pythonPackages -, makeWrapper ? null +, withPython ? false # required for the `ndiff` binary +, python2 ? null }: +assert withPython -> python2 != null; + with stdenv.lib; let - inherit (pythonPackages) python pygtk pygobject pycairo pysqlite; + + # Zenmap (the graphical program) also requires Python, + # so automatically enable pythonSupport if graphicalSupport is requested. + pythonSupport = withPython || graphicalSupport; + + pythonEnv = python2.withPackages(ps: with ps; [] + ++ optionals graphicalSupport [ pycairo pygobject2 pygtk pysqlite ] + ); + in stdenv.mkDerivation rec { name = "nmap${optionalString graphicalSupport "-graphical"}-${version}"; - version = "7.12"; + version = "7.31"; src = fetchurl { - url = "http://nmap.org/dist/nmap-${version}.tar.bz2"; - sha256 = "014vagh9ak10hidwzp9s6g30y5h5fhsh8wykcnc1hnn9hwm0ipv3"; + url = "https://nmap.org/dist/nmap-${version}.tar.bz2"; + sha256 = "0hiqb28950kn4bjsmw0ksfyss7j2qdmgrj3xsjf7073pq01lx7yb"; }; patches = ./zenmap.patch; - configureFlags = optionalString (!graphicalSupport) "--without-zenmap"; - - postInstall = '' - 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 - ''; + configureFlags = [] + ++ optional (!pythonSupport) "--without-ndiff" + ++ optional (!graphicalSupport) "--without-zenmap" + ; - buildInputs = [ libpcap pkgconfig openssl makeWrapper python ] - ++ optionals graphicalSupport [ - libX11 gtk pygtk pysqlite pygobject pycairo - ]; + buildInputs = [ libpcap pkgconfig openssl ] + ++ optional pythonSupport pythonEnv + ++ optionals graphicalSupport [ gtk2 libX11 ] + ; meta = { description = "A free and open source utility for network discovery and security auditing"; |