From 319a9b0673d3bfa330f4ee5da23ca3a70609ffe0 Mon Sep 17 00:00:00 2001 From: Pol Dellaiera Date: Wed, 17 Jul 2024 13:07:49 +0200 Subject: [PATCH 1/2] tika: add `enableOcr` top level parameter, set to `true` by default --- pkgs/by-name/ti/tika/package.nix | 30 ++++++++++++++++++------------ 1 file changed, 18 insertions(+), 12 deletions(-) diff --git a/pkgs/by-name/ti/tika/package.nix b/pkgs/by-name/ti/tika/package.nix index 748e24222df1..4e8e685e6945 100644 --- a/pkgs/by-name/ti/tika/package.nix +++ b/pkgs/by-name/ti/tika/package.nix @@ -6,6 +6,8 @@ fetchFromGitHub, makeWrapper, mvnDepsHash ? null, + enableOcr ? true, + tesseract, nixosTests, }: @@ -52,21 +54,25 @@ maven'.buildMavenPackage rec { nativeBuildInputs = [ makeWrapper ]; - installPhase = '' - runHook preInstall + installPhase = + let + binPath = lib.makeBinPath ([ jdk8.jre ] ++ lib.optionals enableOcr [ tesseract ]); + in + '' + runHook preInstall - # Note: using * instead of version would match multiple files - install -Dm644 tika-app/target/tika-app-${version}.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 + # Note: using * instead of version would match multiple files + install -Dm644 tika-app/target/tika-app-${version}.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 - 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 : ${lib.makeBinPath [ jdk8.jre ]} \ - --add-flags "-jar $out/share/tika/tika-server.jar" + 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} \ + --add-flags "-jar $out/share/tika/tika-server.jar" - runHook postInstall - ''; + runHook postInstall + ''; passthru.tests = { inherit (nixosTests) tika; From 6b3c00c65af2076b572f4d9ab911db3b6d36a282 Mon Sep 17 00:00:00 2001 From: Pol Dellaiera Date: Wed, 17 Jul 2024 13:09:58 +0200 Subject: [PATCH 2/2] nixos/tika: add `enableOcr` option --- nixos/modules/services/search/tika.nix | 28 +++++++++++++++++++------- 1 file changed, 21 insertions(+), 7 deletions(-) diff --git a/nixos/modules/services/search/tika.nix b/nixos/modules/services/search/tika.nix index 7ab0433e220a..94096b6db29f 100644 --- a/nixos/modules/services/search/tika.nix +++ b/nixos/modules/services/search/tika.nix @@ -51,6 +51,14 @@ in example = literalExpression "./tika/tika-config.xml"; }; + enableOcr = mkOption { + type = types.bool; + default = true; + description = '' + Whether to enable OCR support by adding the `tesseract` package as a dependency. + ''; + }; + openFirewall = mkOption { type = types.bool; default = false; @@ -69,14 +77,20 @@ in wantedBy = [ "multi-user.target" ]; after = [ "network.target" ]; - serviceConfig = { - Type = "simple"; + serviceConfig = + let + package = cfg.package.override { inherit (cfg) enableOcr; }; + in + { + Type = "simple"; - ExecStart = "${getExe cfg.package} --host ${cfg.listenAddress} --port ${toString cfg.port} ${lib.optionalString (cfg.configFile != null) "--config ${cfg.configFile}"}"; - DynamicUser = true; - StateDirectory = "tika"; - CacheDirectory = "tika"; - }; + ExecStart = "${getExe package} --host ${cfg.listenAddress} --port ${toString cfg.port} ${ + lib.optionalString (cfg.configFile != null) "--config ${cfg.configFile}" + }"; + DynamicUser = true; + StateDirectory = "tika"; + CacheDirectory = "tika"; + }; }; networking.firewall = mkIf cfg.openFirewall { allowedTCPPorts = [ cfg.port ]; };