From bc279962123fadb47726c47f12d5bb7eff16b8c5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Sebasti=C3=A1n=20Mancilla?= Date: Tue, 26 Jul 2022 01:10:06 -0400 Subject: [PATCH] pmd: 6.43.0 -> 6.47.0 - Download from GitHub releases as the webpage does. - Fix installation: - Put jars into a private `$out/lib/pmd` directory. - Don't install .bat files into `$out/bin`. - Don't use `run.sh` as the main binary, put it in `$out/libexec` with a proper name. - Create binary wrappers for all programs instead of using `run.sh `. --- .../tools/analysis/pmd/default.nix | 24 ++++++++++++++----- 1 file changed, 18 insertions(+), 6 deletions(-) diff --git a/pkgs/development/tools/analysis/pmd/default.nix b/pkgs/development/tools/analysis/pmd/default.nix index 503d5c630498..25259ae64cd3 100644 --- a/pkgs/development/tools/analysis/pmd/default.nix +++ b/pkgs/development/tools/analysis/pmd/default.nix @@ -2,20 +2,32 @@ stdenv.mkDerivation rec { pname = "pmd"; - version = "6.43.0"; + version = "6.47.0"; src = fetchurl { - url = "mirror://sourceforge/pmd/pmd-bin-${version}.zip"; - sha256 = "sha256-+eJCN890vm4WBcMZ2VCGOS8WUyIckL+DfQVNaUSovGE="; + url = "https://github.com/pmd/pmd/releases/download/pmd_releases/${version}/pmd-bin-${version}.zip"; + hash = "sha256-0rOV6l5VCdBkk5+F/k2vYtHQWzwugvp3ogaTRuXUKXE="; }; nativeBuildInputs = [ unzip makeWrapper ]; + dontConfigure = true; + dontBuild = true; + installPhase = '' runHook preInstall - mkdir -p $out - cp -R {bin,lib} $out - wrapProgram $out/bin/run.sh --prefix PATH : ${openjdk.jre}/bin + + 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 '';