Unverified Commit 6ad37252 authored by K900's avatar K900 Committed by GitHub
Browse files

kdePackages.spectacle: fix OCR runtime loading (#512240)

parents e67edd13 296f6616
Loading
Loading
Loading
Loading
+14 −9
Original line number Diff line number Diff line
{
  lib,
  fetchpatch,
  mkKdeDerivation,
  pkg-config,
  qtwayland,
  qtmultimedia,
  opencv,
  tesseractLanguages ? [ ],
  tesseract5,
}:
let
  tesseract = tesseract5.override { enableLanguages = tesseractLanguages; };
in
mkKdeDerivation {
  pname = "spectacle";

  # Backport the upstream switch from runtime QLibrary loading to direct
  # linking so Spectacle OCR can find Tesseract reliably on NixOS.
  patches = [
    (fetchpatch {
      url = "https://invent.kde.org/graphics/spectacle/-/commit/13b0be099e7abe9bbb17b90e62c2e83afb248db7.patch";
      hash = "sha256-HEgHsuajaF+WVMiRp0YKRmi+/NsIy5s8frwMJRIdDY8=";
    })
  ];

  extraNativeBuildInputs = [ pkg-config ];

  extraBuildInputs = [
    (tesseract5.override { enableLanguages = tesseractLanguages; })
    qtwayland
    qtmultimedia
    (opencv.override {
@@ -26,10 +36,5 @@ mkKdeDerivation {
    })
  ];

  # no point adding the dependency when we have no language packs
  preFixup = lib.optionalString (tesseractLanguages != [ ]) ''
    patchelf --add-needed libtesseract.so.5 --add-rpath ${tesseract}/lib $out/bin/spectacle
  '';

  meta.mainProgram = "spectacle";
}