{ lib , fetchFromGitHub , python3Packages , wrapGAppsHook4 , meson , ninja , pkg-config , appstream-glib , desktop-file-utils , glib , gobject-introspection , blueprint-compiler , libxml2 , libnotify , libadwaita , libportal , gettext , librsvg , tesseract5 , zbar , gst_all_1 }: python3Packages.buildPythonApplication rec { pname = "gnome-frog"; version = "1.5.2"; src = fetchFromGitHub { owner = "TenderOwl"; repo = "Frog"; rev = "refs/tags/${version}"; sha256 = "sha256-Zu1xUGpjqpFiPQAAgaVYtnXI4jMtyywrJqn+38K5VHo="; }; format = "other"; patches = [ ./update-compatible-with-non-flatpak-env.patch ]; postPatch = '' chmod +x ./build-aux/meson/postinstall.py patchShebangs ./build-aux/meson/postinstall.py substituteInPlace ./build-aux/meson/postinstall.py \ --replace "gtk-update-icon-cache" "gtk4-update-icon-cache" substituteInPlace ./frog/language_manager.py --subst-var out ''; nativeBuildInputs = [ appstream-glib desktop-file-utils gettext meson ninja pkg-config glib wrapGAppsHook4 gobject-introspection blueprint-compiler libxml2 ]; buildInputs = [ librsvg libnotify libadwaita libportal zbar tesseract5 gst_all_1.gstreamer ]; propagatedBuildInputs = with python3Packages; [ loguru nanoid posthog pygobject3 python-dateutil pillow pytesseract pyzbar gtts ]; # This is to prevent double-wrapping the package. We'll let # Python do it by adding certain arguments inside of the # wrapper instead. dontWrapGApps = true; preFixup = '' makeWrapperArgs+=("''${gappsWrapperArgs[@]}") ''; meta = with lib; { homepage = "https://getfrog.app/"; description = "Intuitive text extraction tool (OCR) for GNOME desktop"; license = licenses.mit; mainProgram = "frog"; maintainers = with maintainers; [ foo-dogsquared ]; platforms = platforms.linux; }; }