mirror of
https://github.com/NixOS/nixpkgs.git
synced 2025-06-10 11:45:45 +03:00
tika: bump jdk to 17, add option to disable GUI and use minimal jdk
Upstream uses jdk 17 in their CI, too https://github.com/apache/tika/tree/2.9.3/.github/workflows
This commit is contained in:
parent
2a9a12ff66
commit
f9bca2bcab
2 changed files with 57 additions and 16 deletions
|
@ -79,7 +79,10 @@ in
|
||||||
|
|
||||||
serviceConfig =
|
serviceConfig =
|
||||||
let
|
let
|
||||||
package = cfg.package.override { inherit (cfg) enableOcr; };
|
package = cfg.package.override {
|
||||||
|
inherit (cfg) enableOcr;
|
||||||
|
enableGui = false;
|
||||||
|
};
|
||||||
in
|
in
|
||||||
{
|
{
|
||||||
Type = "simple";
|
Type = "simple";
|
||||||
|
|
|
@ -2,26 +2,41 @@
|
||||||
lib,
|
lib,
|
||||||
stdenv,
|
stdenv,
|
||||||
maven,
|
maven,
|
||||||
jdk8,
|
jdk17,
|
||||||
|
jre17_minimal,
|
||||||
fetchFromGitHub,
|
fetchFromGitHub,
|
||||||
makeWrapper,
|
makeWrapper,
|
||||||
mvnDepsHash ? null,
|
mvnDepsHash ? null,
|
||||||
|
enableGui ? true,
|
||||||
enableOcr ? true,
|
enableOcr ? true,
|
||||||
|
runCommand,
|
||||||
tesseract,
|
tesseract,
|
||||||
nixosTests,
|
nixosTests,
|
||||||
}:
|
}:
|
||||||
|
|
||||||
let
|
let
|
||||||
mvnDepsHashes = {
|
mvnDepsHashes = {
|
||||||
"x86_64-linux" = "sha256-a2EIxok7Ov2QQntu3fpagzvMAQcBjKwcd1whDNdCm2E=";
|
"x86_64-linux" = "sha256-OTd51n6SSlFziqvvHmfyMAyQRwIzsHxFGuJ62zlX1Ec=";
|
||||||
"aarch64-linux" = "sha256-TUJmlnFJeYY4Pzrmd+9uKb07Tq7HYd4EnAXkbgGCFDk=";
|
"aarch64-linux" = "sha256-tPaGLqm0jgEoz0BD/C6AG9xupovQvib/v0kB/jjqwB8=";
|
||||||
"x86_64-darwin" = "sha256-OTctUd4lsH6Z6H7rDYbyAcrBmzpSzFELjPBRN8zUyhY=";
|
"x86_64-darwin" = "sha256-Rs7nTiGazUW8oJJr6fbJKelzFqd2n278sJYoMy2/0N4=";
|
||||||
"aarch64-darwin" = "sha256-0tNFHEaxAEqrZTTrGCIX53K9MczkqIuDABD/bB6R1KU=";
|
"aarch64-darwin" = "sha256-gnP+G33LPRMQ6HRzeZ8cEV9oSohrlPcMwlBB4rvH7+E=";
|
||||||
};
|
};
|
||||||
|
|
||||||
knownMvnDepsHash =
|
knownMvnDepsHash =
|
||||||
mvnDepsHashes.${stdenv.system}
|
mvnDepsHashes.${stdenv.system}
|
||||||
or (lib.warn "This platform doesn't have a default mvnDepsHash value, you'll need to specify it manually" lib.fakeHash);
|
or (lib.warn "This platform doesn't have a default mvnDepsHash value, you'll need to specify it manually" lib.fakeHash);
|
||||||
|
|
||||||
|
jdk = jre17_minimal.override {
|
||||||
|
modules = [
|
||||||
|
"java.base"
|
||||||
|
"java.desktop"
|
||||||
|
"java.logging"
|
||||||
|
"java.management"
|
||||||
|
"java.naming"
|
||||||
|
"java.sql"
|
||||||
|
];
|
||||||
|
jdk = jdk17;
|
||||||
|
};
|
||||||
in
|
in
|
||||||
maven.buildMavenPackage rec {
|
maven.buildMavenPackage rec {
|
||||||
pname = "tika";
|
pname = "tika";
|
||||||
|
@ -43,30 +58,53 @@ maven.buildMavenPackage rec {
|
||||||
"org.junit.platform:junit-platform-launcher:1.10.0"
|
"org.junit.platform:junit-platform-launcher:1.10.0"
|
||||||
];
|
];
|
||||||
|
|
||||||
mvnJdk = jdk8;
|
mvnJdk = jdk17;
|
||||||
mvnHash = if mvnDepsHash != null then mvnDepsHash else knownMvnDepsHash;
|
mvnHash = if mvnDepsHash != null then mvnDepsHash else knownMvnDepsHash;
|
||||||
|
|
||||||
mvnParameters = toString [
|
mvnParameters = toString (
|
||||||
|
[
|
||||||
"-DskipTests=true" # skip tests (out of memory exceptions)
|
"-DskipTests=true" # skip tests (out of memory exceptions)
|
||||||
"-Dossindex.skip" # skip dependency with vulnerability (recommended by upstream)
|
"-Dossindex.skip" # skip dependency with vulnerability (recommended by upstream)
|
||||||
];
|
]
|
||||||
|
++ lib.optionals (!enableGui) [
|
||||||
|
"-am -pl :tika-server-standard"
|
||||||
|
]
|
||||||
|
);
|
||||||
|
|
||||||
nativeBuildInputs = [ makeWrapper ];
|
nativeBuildInputs = [ makeWrapper ];
|
||||||
|
|
||||||
installPhase =
|
installPhase =
|
||||||
let
|
let
|
||||||
binPath = lib.makeBinPath ([ jdk8.jre ] ++ lib.optionals enableOcr [ tesseract ]);
|
flags = "--add-opens java.base/jdk.internal.ref=ALL-UNNAMED --add-opens java.base/java.nio=ALL-UNNAMED";
|
||||||
|
|
||||||
|
binPath = lib.makeBinPath (
|
||||||
|
[
|
||||||
|
(runCommand "jdk-tika"
|
||||||
|
{
|
||||||
|
nativeBuildInputs = [ makeWrapper ];
|
||||||
|
}
|
||||||
|
''
|
||||||
|
makeWrapper ${jdk}/bin/java $out/bin/java \
|
||||||
|
--add-flags "${flags}"
|
||||||
|
''
|
||||||
|
)
|
||||||
|
]
|
||||||
|
++ lib.optionals enableOcr [ tesseract ]
|
||||||
|
);
|
||||||
in
|
in
|
||||||
''
|
''
|
||||||
runHook preInstall
|
runHook preInstall
|
||||||
|
|
||||||
# Note: using * instead of version would match multiple files
|
# Note: using * instead of version would match multiple files
|
||||||
|
''
|
||||||
|
+ lib.optionalString enableGui ''
|
||||||
install -Dm644 tika-app/target/tika-app-${version}.jar $out/share/tika/tika-app.jar
|
install -Dm644 tika-app/target/tika-app-${version}.jar $out/share/tika/tika-app.jar
|
||||||
|
makeWrapper ${jdk}/bin/java $out/bin/tika-app \
|
||||||
|
--add-flags "${flags} -jar $out/share/tika/tika-app.jar"
|
||||||
|
''
|
||||||
|
+ ''
|
||||||
install -Dm644 tika-server/tika-server-standard/target/tika-server-standard-${version}.jar $out/share/tika/tika-server.jar
|
install -Dm644 tika-server/tika-server-standard/target/tika-server-standard-${version}.jar $out/share/tika/tika-server.jar
|
||||||
|
makeWrapper ${jdk}/bin/java $out/bin/tika-server \
|
||||||
makeWrapper ${jdk8.jre}/bin/java $out/bin/tika-app \
|
|
||||||
--add-flags "-jar $out/share/tika/tika-app.jar"
|
|
||||||
makeWrapper ${jdk8.jre}/bin/java $out/bin/tika-server \
|
|
||||||
--prefix PATH : ${binPath} \
|
--prefix PATH : ${binPath} \
|
||||||
--add-flags "-jar $out/share/tika/tika-server.jar"
|
--add-flags "-jar $out/share/tika/tika-server.jar"
|
||||||
|
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue