diff --git a/pkgs/development/libraries/liblinear/default.nix b/pkgs/development/libraries/liblinear/default.nix index e8d8e971bc54..7b70510dec3c 100644 --- a/pkgs/development/libraries/liblinear/default.nix +++ b/pkgs/development/libraries/liblinear/default.nix @@ -18,17 +18,19 @@ stdenv.mkDerivation rec { libSuff = stdenv.hostPlatform.extensions.sharedLibrary; in '' mkdir -p $out/lib $out/bin $out/include - cp liblinear.so.3 $out/lib/liblinear.3${libSuff} - ln -s $out/lib/liblinear.3${libSuff} $out/lib/liblinear${libSuff} + ${if stdenv.isDarwin then '' + cp liblinear.so.3 $out/lib/liblinear.3.dylib + ln -s $out/lib/liblinear.3.dylib $out/lib/liblinear.dylib + install_name_tool -id liblinear.3.dylib $out/lib/liblinear.3.dylib + '' else '' + cp liblinear.so.3 $out/lib/liblinear.so.3 + ln -s $out/lib/liblinear.so.3 $out/lib/liblinear.so + ''} cp train $out/bin/liblinear-train cp predict $out/bin/liblinear-predict cp linear.h $out/include ''; - postFixup = stdenv.lib.optionalString stdenv.isDarwin '' - install_name_tool -id liblinear.3.dylib $out/lib/liblinear.3.dylib - ''; - meta = with stdenv.lib; { description = "A library for large linear classification"; homepage = https://www.csie.ntu.edu.tw/~cjlin/liblinear/; diff --git a/pkgs/tools/security/nmap/default.nix b/pkgs/tools/security/nmap/default.nix index 1b66dab35c8f..f88c533d71d3 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