diff --git a/pkgs/by-name/so/sonarlint-ls/package.nix b/pkgs/by-name/so/sonarlint-ls/package.nix
index 50319f1d8e78..eb3699fa50d6 100644
--- a/pkgs/by-name/so/sonarlint-ls/package.nix
+++ b/pkgs/by-name/so/sonarlint-ls/package.nix
@@ -6,34 +6,27 @@
jdk17,
makeWrapper,
writeShellApplication,
- runCommand,
- sonarlint-ls,
curl,
pcre,
common-updater-scripts,
jq,
gnused,
+ versionCheckHook,
}:
maven.buildMavenPackage rec {
pname = "sonarlint-ls";
- version = "3.14.1.75775";
+ version = "3.17.0.75948";
src = fetchFromGitHub {
owner = "SonarSource";
repo = "sonarlint-language-server";
rev = version;
- hash = "sha256-QXBSdXpkhqcvfjihcWwy4oCjTMmbAJRZG1T66sa8T4U=";
+ hash = "sha256-9ZZPAkfYnHYaPFGo/WfOhUIZ+Aq7SNsVmyXgDwe68gk=";
};
- # Replaces unavailable versions with available ones in maven central. Can be
- # removed again if
- # https://github.com/SonarSource/sonarlint-language-server/pull/427 is
- # merged.
- patches = [ ./sonar-analyzers-versions.patch ];
-
mvnJdk = jdk17;
- mvnHash = "sha256-SKkOf3f9Ze3Rm6i2uYbFkvSnnEySARvaoiAS1e2kFi0=";
+ mvnHash = "sha256-tsYkp6Zr9gCgb0l6vQViSB7zcbf6JX+JwO4ZYqeG52c=";
# Disables failing tests which either need network access or are flaky.
mvnParameters = lib.escapeShellArgs [
@@ -56,7 +49,6 @@ maven.buildMavenPackage rec {
makeWrapper ${jre_headless}/bin/java $out/bin/sonarlint-ls \
--add-flags "-jar $out/share/sonarlint-ls.jar" \
- --add-flags "-stdio" \
--add-flags "-analyzers $(ls -1 $out/share/plugins | tr '\n' ' ')"
runHook postInstall
@@ -64,51 +56,47 @@ maven.buildMavenPackage rec {
nativeBuildInputs = [ makeWrapper ];
- passthru = {
- tests = {
- sonarlint-ls-starts-successfully = runCommand "${pname}-test" { } ''
- ${sonarlint-ls}/bin/sonarlint-ls > $out
- cat $out | grep "SonarLint backend started"
+ nativeInstallCheckInputs = [ versionCheckHook ];
+ doInstallCheck = true;
+ preVersionCheck = "export version=${lib.versions.majorMinor version}";
+ versionCheckProgramArg = "-V";
+
+ passthru.updateScript =
+ let
+ pkgFile = builtins.toString ./package.nix;
+ in
+ lib.getExe (writeShellApplication {
+ name = "update-${pname}";
+ runtimeInputs = [
+ curl
+ pcre
+ common-updater-scripts
+ jq
+ gnused
+ ];
+ text = ''
+ if [ -z "''${GITHUB_TOKEN:-}" ]; then
+ echo "no GITHUB_TOKEN provided - you could meet API request limiting" >&2
+ fi
+
+ LATEST_TAG=$(curl -H "Accept: application/vnd.github+json" \
+ ''${GITHUB_TOKEN:+-H "Authorization: bearer $GITHUB_TOKEN"} \
+ -Lsf https://api.github.com/repos/${src.owner}/${src.repo}/tags | \
+ jq -r '[.[] | select(.name | test("^[0-9]"))] | sort_by(.name | split(".") |
+ map(tonumber)) | reverse | .[0].name')
+ update-source-version ${pname} "$LATEST_TAG"
+ sed -i '0,/mvnHash *= *"[^"]*"/{s/mvnHash = "[^"]*"/mvnHash = ""/}' ${pkgFile}
+
+ echo -e "\nFetching all mvn dependencies to calculate the mvnHash. This may take a while ..."
+ nix-build -A ${pname}.fetchedMavenDeps 2> ${pname}-stderr.log || true
+
+ NEW_MVN_HASH=$(grep "got:" ${pname}-stderr.log | awk '{print ''$2}')
+ rm ${pname}-stderr.log
+ # escaping double quotes looks ugly but is needed for variable substitution
+ # use # instead of / as separator because the sha256 might contain the / character
+ sed -i "0,/mvnHash *= *\"[^\"]*\"/{s#mvnHash = \"[^\"]*\"#mvnHash = \"$NEW_MVN_HASH\"#}" ${pkgFile}
'';
- };
-
- updateScript =
- let
- pkgFile = builtins.toString ./package.nix;
- in
- lib.getExe (writeShellApplication {
- name = "update-${pname}";
- runtimeInputs = [
- curl
- pcre
- common-updater-scripts
- jq
- gnused
- ];
- text = ''
- if [ -z "''${GITHUB_TOKEN:-}" ]; then
- echo "no GITHUB_TOKEN provided - you could meet API request limiting" >&2
- fi
-
- LATEST_TAG=$(curl -H "Accept: application/vnd.github+json" \
- ''${GITHUB_TOKEN:+-H "Authorization: bearer $GITHUB_TOKEN"} \
- -Lsf https://api.github.com/repos/${src.owner}/${src.repo}/tags | \
- jq -r '[.[] | select(.name | test("^[0-9]"))] | sort_by(.name | split(".") |
- map(tonumber)) | reverse | .[0].name')
- update-source-version ${pname} "$LATEST_TAG"
- sed -i '0,/mvnHash *= *"[^"]*"/{s/mvnHash = "[^"]*"/mvnHash = ""/}' ${pkgFile}
-
- echo -e "\nFetching all mvn dependencies to calculate the mvnHash. This may take a while ..."
- nix-build -A ${pname}.fetchedMavenDeps 2> ${pname}-stderr.log || true
-
- NEW_MVN_HASH=$(grep "got:" ${pname}-stderr.log | awk '{print ''$2}')
- rm ${pname}-stderr.log
- # escaping double quotes looks ugly but is needed for variable substitution
- # use # instead of / as separator because the sha256 might contain the / character
- sed -i "0,/mvnHash *= *\"[^\"]*\"/{s#mvnHash = \"[^\"]*\"#mvnHash = \"$NEW_MVN_HASH\"#}" ${pkgFile}
- '';
- });
- };
+ });
meta = {
description = "Sonarlint language server";
diff --git a/pkgs/by-name/so/sonarlint-ls/sonar-analyzers-versions.patch b/pkgs/by-name/so/sonarlint-ls/sonar-analyzers-versions.patch
deleted file mode 100644
index 75eb412f44d6..000000000000
--- a/pkgs/by-name/so/sonarlint-ls/sonar-analyzers-versions.patch
+++ /dev/null
@@ -1,17 +0,0 @@
-diff --git a/pom.xml b/pom.xml
-index c020fd1..fd4146b 100644
---- a/pom.xml
-+++ b/pom.xml
-@@ -34,10 +34,10 @@
- 4.17.0.14845
- 3.16.0.5274
- 2.10.0.4108
-- 2.18.0.4812
-+ 2.18.0.4866
- 1.15.0.4655
- 1.27.0.9518
-- 10.2.0.103721
-+ 10.2.0.105762
- 1.25.0.100242
- sonarlint-language-server
-