{ lib, stdenv, fetchurl, unzip, makeWrapper, openjdk }: stdenv.mkDerivation rec { pname = "pmd"; version = "6.55.0"; src = fetchurl { url = "https://github.com/pmd/pmd/releases/download/pmd_releases/${version}/pmd-bin-${version}.zip"; hash = "sha256-Iaz5bUPLQNWRyszMHCCmb8eW6t32nqYYEllER7rHoR0="; }; nativeBuildInputs = [ unzip makeWrapper ]; dontConfigure = true; dontBuild = true; installPhase = '' runHook preInstall install -Dm755 bin/run.sh $out/libexec/pmd install -Dm644 lib/*.jar -t $out/lib/pmd wrapProgram $out/libexec/pmd \ --prefix PATH : ${openjdk.jre}/bin \ --set LIB_DIR $out/lib/pmd for app in pmd cpd cpdgui designer bgastviewer designerold ast-dump; do makeWrapper $out/libexec/pmd $out/bin/$app --argv0 $app --add-flags $app done runHook postInstall ''; meta = with lib; { description = "An extensible cross-language static code analyzer"; homepage = "https://pmd.github.io/"; changelog = "https://pmd.github.io/pmd-${version}/pmd_release_notes.html"; platforms = platforms.unix; license = with licenses; [ bsdOriginal asl20 ]; }; }