languagetool: use minimal jre (#483238)

This commit is contained in:
Doron Behar
2026-02-02 07:24:09 +00:00
committed by GitHub
2 changed files with 32 additions and 9 deletions
+9 -4
View File
@@ -55,8 +55,6 @@ in
'';
};
jrePackage = lib.mkPackageOption pkgs "jre" { };
jvmOptions = lib.mkOption {
description = ''
Extra command line options for the JVM running languagetool.
@@ -70,8 +68,15 @@ in
};
};
config = lib.mkIf cfg.enable {
imports = [
(lib.mkRemovedOptionModule [
"services"
"languagetool"
"jrePackage"
] "The jre is now always taken from the package's jre attribute.")
];
config = lib.mkIf cfg.enable {
systemd.services.languagetool = {
description = "LanguageTool HTTP server";
wantedBy = [ "multi-user.target" ];
@@ -89,7 +94,7 @@ in
ProtectHome = "yes";
Restart = "on-failure";
ExecStart = ''
${cfg.jrePackage}/bin/java \
${lib.getExe cfg.package.jre} \
-cp ${cfg.package}/share/languagetool-server.jar \
${toString cfg.jvmOptions} \
org.languagetool.server.HTTPServer \
+23 -5
View File
@@ -2,20 +2,34 @@
lib,
stdenv,
fetchzip,
jre,
jre_minimal,
makeWrapper,
nixosTests,
}:
let
jre = jre_minimal.override {
modules = [
"java.base"
"java.datatransfer"
"java.desktop"
"java.naming"
"java.sql"
"java.xml"
"jdk.httpserver"
];
};
in
stdenv.mkDerivation rec {
pname = "LanguageTool";
pname = "languagetool";
version = "6.6";
src = fetchzip {
url = "https://www.languagetool.org/download/${pname}-${version}.zip";
url = "https://www.languagetool.org/download/LanguageTool-${version}.zip";
sha256 = "sha256-BNiUIk5h38oEM4IliHdy8rNmZY0frQ1RaFeJ7HI5nOI=";
};
nativeBuildInputs = [ makeWrapper ];
buildInputs = [ jre ];
installPhase = ''
@@ -35,7 +49,10 @@ stdenv.mkDerivation rec {
runHook postInstall
'';
passthru.tests.languagetool = nixosTests.languagetool;
passthru = {
inherit jre;
tests.languagetool = nixosTests.languagetool;
};
meta = {
homepage = "https://languagetool.org";
@@ -44,5 +61,6 @@ stdenv.mkDerivation rec {
maintainers = with lib.maintainers; [ edwtjo ];
platforms = jre.meta.platforms;
description = "Proofreading program for English, French German, Polish, and more";
mainProgram = "languagetool";
};
}