{ lib, stdenv , fetchurl , makeWrapper , opencl-headers , ocl-icd , xxHash }: stdenv.mkDerivation rec { pname = "hashcat"; version = "6.2.3"; src = fetchurl { url = "https://hashcat.net/files/hashcat-${version}.tar.gz"; sha256 = "sha256-wL4cZpPuHzXHvvH3m/njCpVPcX70LQDjd4eq7/MnHlE="; }; nativeBuildInputs = [ makeWrapper ]; buildInputs = [ opencl-headers xxHash ]; makeFlags = [ "PREFIX=${placeholder "out"}" "COMPTIME=1337" "VERSION_TAG=${version}" "USE_SYSTEM_OPENCL=1" "USE_SYSTEM_XXHASH=1" ]; preFixup = '' for f in $out/share/hashcat/OpenCL/*.cl; do # Rewrite files to be included for compilation at runtime for opencl offload sed "s|#include \"\(.*\)\"|#include \"$out/share/hashcat/OpenCL/\1\"|g" -i "$f" sed "s|#define COMPARE_\([SM]\) \"\(.*\.cl\)\"|#define COMPARE_\1 \"$out/share/hashcat/OpenCL/\2\"|g" -i "$f" done ''; postFixup = '' wrapProgram $out/bin/hashcat --prefix LD_LIBRARY_PATH : ${ocl-icd}/lib ''; meta = with lib; { description = "Fast password cracker"; homepage = "https://hashcat.net/hashcat/"; license = licenses.mit; platforms = platforms.linux; maintainers = with maintainers; [ kierdavis zimbatm ]; }; }