1
0
Fork 1
mirror of https://github.com/NixOS/nixpkgs.git synced 2024-11-30 01:20:40 +00:00
nixpkgs/pkgs/tools/security/john/default.nix
aszlig 37429a2c74
john: Enable parallel building by default.
I've built this a lot of times on different machines without getting
compile errors, so I'd assume this to be safe. Of course, the compile
time is very small in comparison to bigger packages but it's still an
annoyance to wait for up to a few minutes, especially during
development.

Signed-off-by: aszlig <aszlig@redmoonstudios.org>
2015-10-13 04:42:40 +02:00

55 lines
1.6 KiB
Nix

{ stdenv, fetchurl, openssl, nss, nspr, kerberos, gmp, zlib, libpcap, re2
, writeText
}:
with stdenv.lib;
stdenv.mkDerivation rec {
name = "john-${version}";
version = "1.8.0-jumbo-1";
src = fetchurl {
url = "http://www.openwall.com/john/j/${name}.tar.xz";
sha256 = "08q92sfdvkz47rx6qjn7qv57cmlpy7i7rgddapq5384mb413vjds";
};
postPatch = ''
sed -ri -e '
s!^(#define\s+CFG_[A-Z]+_NAME\s+).*/!\1"'"$out"'/etc/john/!
/^#define\s+JOHN_SYSTEMWIDE/s!/usr!'"$out"'!
' src/params.h
sed -ri -e '/^\.include/ {
s!\$JOHN!'"$out"'/etc/john!
s!^(\.include\s*)<([^./]+\.conf)>!\1"'"$out"'/etc/john/\2"!
}' run/*.conf
'';
preConfigure = "cd src";
configureFlags = [ "--disable-native-macro" ];
buildInputs = [ openssl nss nspr kerberos gmp zlib libpcap re2 ];
enableParallelBuilding = true;
NIX_CFLAGS_COMPILE = [ "-DJOHN_SYSTEMWIDE=1" ];
installPhase = ''
mkdir -p "$out/etc/john" "$out/share/john" "$out/share/doc/john"
find ../run -mindepth 1 -maxdepth 1 -type f -executable \
-exec "${stdenv.shell}" "${writeText "john-binary-install.sh" ''
filename="$(basename "$1")"
install -vD "$1" "$out/bin/''${filename%.*}"
''}" {} \;
cp -vt "$out/etc/john" ../run/*.conf
cp -vt "$out/share/john" ../run/*.chr ../run/password.lst
cp -vrt "$out/share/doc/john" ../doc/*
'';
meta = {
description = "John the Ripper password cracker";
license = licenses.gpl2;
homepage = https://github.com/magnumripper/JohnTheRipper/;
maintainers = with maintainers; [ offline ];
platforms = with platforms; unix;
};
}