%global debug_package %{nil} Name: djpdf %global forgeurl https://github.com/Unrud/%{name} Version: 0.5.12 %forgemeta %global app_id com.github.unrud.%{name} Release: 1%{?dist} Summary: Create small, searchable PDFs from scanned documents License: GPL-3.0-or-later URL: %{forgeurl} Source: %{forgesource} BuildRequires: desktop-file-utils BuildRequires: gettext BuildRequires: hicolor-icon-theme BuildRequires: libappstream-glib BuildRequires: make BuildRequires: meson BuildRequires: ninja-build BuildRequires: pkgconfig(exempi-2.0) BuildRequires: pkgconfig(ImageMagick) BuildRequires: pkgconfig(lept) BuildRequires: pkgconfig(tesseract) BuildRequires: python3-devel BuildRequires: python3-rpm-macros Requires: tesseract Suggests: tesseract-equ Suggests: (tesseract-langpack-afr if langpacks-af) Suggests: (tesseract-langpack-amh if langpacks-am) Suggests: (tesseract-langpack-ara if langpacks-ar) Suggests: (tesseract-langpack-asm if langpacks-as) Suggests: (tesseract-langpack-aze if glibc-langpack-az) Suggests: (tesseract-langpack-aze_cyrl if glibc-langpack-az) Suggests: (tesseract-langpack-bel if langpacks-be) Suggests: (tesseract-langpack-ben if langpacks-bn) Suggests: (tesseract-langpack-bod if langpacks-bo) Suggests: (tesseract-langpack-bos if langpacks-bs) Suggests: (tesseract-langpack-bre if langpacks-br) Suggests: (tesseract-langpack-bul if langpacks-bg) Suggests: (tesseract-langpack-cat if langpacks-ca) # Suggests: (tesseract-langpack-ceb if langpacks-) Suggests: (tesseract-langpack-ces if langpacks-cs) Suggests: (tesseract-langpack-chi_sim if langpacks-zh_CN) Suggests: (tesseract-langpack-chi_sim_vert if langpacks-zh_CN) Suggests: (tesseract-langpack-chi_tra if langpacks-zh_CN) Suggests: (tesseract-langpack-chi_tra_vert if langpacks-zh_CN) Suggests: (tesseract-langpack-chr if langpacks-chr) # Suggests: (tesseract-langpack-cos if langpacks-) Suggests: (tesseract-langpack-cym if langpacks-cy) Suggests: (tesseract-langpack-dan if langpacks-da) Suggests: (tesseract-langpack-deu if langpacks-de) Suggests: (tesseract-langpack-div if glibc-langpack-dv) Suggests: (tesseract-langpack-dzo if langpacks-dz) Suggests: (tesseract-langpack-ell if langpacks-el) Suggests: (tesseract-langpack-eng if langpacks-en) Suggests: (tesseract-langpack-enm if langpacks-en) Suggests: (tesseract-langpack-epo if langpacks-eo) Suggests: (tesseract-langpack-est if langpacks-et) Suggests: (tesseract-langpack-eus if langpacks-eu) Suggests: (tesseract-langpack-fao if glibc-langpack-fo) Suggests: (tesseract-langpack-fas if langpacks-fa) Suggests: (tesseract-langpack-fil if glibc-langpack-fil) Suggests: (tesseract-langpack-fin if langpacks-fi) Suggests: (tesseract-langpack-fra if langpacks-fr) # Suggests: (tesseract-langpack-frk if langpacks-) Suggests: (tesseract-langpack-frm if langpacks-fr) Suggests: (tesseract-langpack-fry if glibc-langpack-fy) Suggests: (tesseract-langpack-gla if glibc-langpack-gd) Suggests: (tesseract-langpack-gle if langpacks-ga) Suggests: (tesseract-langpack-glg if langpacks-gl) Suggests: (tesseract-langpack-grc if langpacks-el) Suggests: (tesseract-langpack-guj if langpacks-gu) Suggests: (tesseract-langpack-hat if glibc-langpack-ht) Suggests: (tesseract-langpack-heb if langpacks-he) Suggests: (tesseract-langpack-hin if langpacks-hi) Suggests: (tesseract-langpack-hrv if langpacks-hr) Suggests: (tesseract-langpack-hun if langpacks-hu) Suggests: (tesseract-langpack-hye if langpacks-hy) Suggests: (tesseract-langpack-iku if langpacks-iu) Suggests: (tesseract-langpack-ind if langpacks-id) Suggests: (tesseract-langpack-isl if langpacks-is) Suggests: (tesseract-langpack-ita if langpacks-it) Suggests: (tesseract-langpack-ita_old if langpacks-it) Suggests: (tesseract-langpack-jav if langpacks-id) Suggests: (tesseract-langpack-jpn if langpacks-ja) Suggests: (tesseract-langpack-jpn_vert if langpacks-ja) Suggests: (tesseract-langpack-kan if langpacks-kn) Suggests: (tesseract-langpack-kat if langpacks-ka) Suggests: (tesseract-langpack-kat_old if langpacks-ka) Suggests: (tesseract-langpack-kaz if langpacks-kk) Suggests: (tesseract-langpack-khm if langpacks-kh) Suggests: (tesseract-langpack-kir if glibc-langpack-ky) Suggests: (tesseract-langpack-kmr if langpacks-km) Suggests: (tesseract-langpack-kor if langpacks-ko) Suggests: (tesseract-langpack-kor_vert if langpacks-ko) Suggests: (tesseract-langpack-lao if langpacks-lo) # Suggests: (tesseract-langpack-lat if langpacks-) Suggests: (tesseract-langpack-lav if langpacks-lv) Suggests: (tesseract-langpack-lit if langpacks-lt) Suggests: (tesseract-langpack-ltz if glibc-langpack-lb) Suggests: (tesseract-langpack-mal if langpacks-ml) Suggests: (tesseract-langpack-mar if langpacks-mr) Suggests: (tesseract-langpack-mkd if langpacks-mk) Suggests: (tesseract-langpack-mlt if glibc-langpack-mt) Suggests: (tesseract-langpack-mon if glibc-langpack-mn) Suggests: (tesseract-langpack-mri if glibc-langpack-mi) Suggests: (tesseract-langpack-msa if langpacks-ms) Suggests: (tesseract-langpack-mya if langpacks-my) Suggests: (tesseract-langpack-nep if langpacks-ne) Suggests: (tesseract-langpack-nld if langpacks-nl) Suggests: (tesseract-langpack-nor if langpacks-nb) Suggests: (tesseract-langpack-oci if glibc-langpack-oc) Suggests: (tesseract-langpack-ori if langpacks-or) Suggests: (tesseract-langpack-pan if langpacks-pa) Suggests: (tesseract-langpack-pol if langpacks-pl) Suggests: (tesseract-langpack-por if langpacks-pt) Suggests: (tesseract-langpack-pus if glibc-langpack-ps) Suggests: (tesseract-langpack-que if glibc-langpack-quz) Suggests: (tesseract-langpack-ron if langpacks-ro) Suggests: (tesseract-langpack-rus if langpacks-ru) Suggests: (tesseract-langpack-san if glibc-langpack-sa) Suggests: (tesseract-langpack-sin if langpacks-si) Suggests: (tesseract-langpack-slk if langpacks-sk) Suggests: (tesseract-langpack-slv if langpacks-sl) Suggests: (tesseract-langpack-snd if glibc-langpack-sd) Suggests: (tesseract-langpack-spa if langpacks-es) Suggests: (tesseract-langpack-spa_old if langpacks-es) Suggests: (tesseract-langpack-sqi if langpacks-sq) Suggests: (tesseract-langpack-srp if langpacks-sr) Suggests: (tesseract-langpack-srp_latn if langpacks-sr) Suggests: (tesseract-langpack-sun if glibc-langpack-su) Suggests: (tesseract-langpack-swa if glibc-langpack-sw) Suggests: (tesseract-langpack-swe if langpacks-sv) Suggests: (tesseract-langpack-syr if langpacks-syr) Suggests: (tesseract-langpack-tam if langpacks-ta) Suggests: (tesseract-langpack-tat if glibc-langpack-tt) Suggests: (tesseract-langpack-tel if langpacks-te) Suggests: (tesseract-langpack-tgk if glibc-langpack-tg) Suggests: (tesseract-langpack-tha if langpacks-th) Suggests: (tesseract-langpack-tir if glibc-langpack-ti) Suggests: (tesseract-langpack-ton if glibc-langpack-to) Suggests: (tesseract-langpack-tur if langpacks-tr) Suggests: (tesseract-langpack-uig if glibc-langpack-ug) Suggests: (tesseract-langpack-ukr if langpacks-uk) Suggests: (tesseract-langpack-urd if langpacks-ur) Suggests: (tesseract-langpack-uzb if glibc-langpack-uz) Suggests: (tesseract-langpack-uzb_cyrl if glibc-langpack-uz) Suggests: (tesseract-langpack-vie if langpacks-vi) Suggests: (tesseract-langpack-yid if langpacks-yi) Suggests: (tesseract-langpack-yor if glibc-langpack-yo) Suggests: tesseract-osd Suggests: (tesseract-script-arabic if langpacks-ar) Suggests: (tesseract-script-armenian if langpacks-hy) Suggests: (tesseract-script-bengali if langpacks-bn) # Suggests: (tesseract-script-canadian_aboriginal if langpacks-) Suggests: (tesseract-script-cherokee if langpacks-chr) Suggests: (tesseract-script-cyrillic if langpacks-ru) Suggests: (tesseract-script-devanagari if langpacks-hi) # Suggests: (tesseract-script-ethiopic if langpacks-) # Suggests: (tesseract-script-fraktur if langpacks-) Suggests: (tesseract-script-georgian if langpacks-ka) Suggests: (tesseract-script-greek if langpacks-el) Suggests: (tesseract-script-gujarati if langpacks-gu) Suggests: (tesseract-script-gurmukhi if langpacks-pa) Suggests: (tesseract-script-hangul if langpacks-ko) Suggests: (tesseract-script-hangul_vert if langpacks-ko) Suggests: (tesseract-script-hans if langpacks-zh_CN) Suggests: (tesseract-script-hans_vert if langpacks-zh_CN) Suggests: (tesseract-script-hant if langpacks-zh_CN) Suggests: (tesseract-script-hant_vert if langpacks-zh_CN) Suggests: (tesseract-script-hebrew if langpacks-he) Suggests: (tesseract-script-japanese if langpacks-ja) Suggests: (tesseract-script-japanese_vert if langpacks-ja) Suggests: (tesseract-script-kannada if langpacks-kn) Suggests: (tesseract-script-khmer if langpacks-km) Suggests: (tesseract-script-lao if langpacks-lo) # Suggests: (tesseract-script-latin if langpacks-) Suggests: (tesseract-script-malayalam if langpacks-ml) Suggests: (tesseract-script-myanmar if langpacks-my) Suggests: (tesseract-script-oriya if langpacks-or) Suggests: (tesseract-script-sinhala if langpacks-si) Suggests: (tesseract-script-syriac if langpacks-syr) Suggests: (tesseract-script-tamil if langpacks-ta) Suggests: (tesseract-script-telugu if langpacks-te) # Suggests: (tesseract-script-thaana if langpacks-) Suggests: (tesseract-script-thai if langpacks-th) Suggests: (tesseract-script-tibetan if langpacks-bo) Suggests: (tesseract-script-vietnamese if langpacks-vi) %description Create small, searchable PDFs from scanned documents. The program divides images into bitonal foreground images (text) and a color background image, then compresses them separately. An invisible OCR text layer is added, making the PDF searchable. Color and grayscale scans need some preparation for good results. Recommended tools are Scan Tailor or GIMP. A GUI and command line interface are included. #------------------------------------------------------------------ %package gui Summary: Graphical user interface for %{name} Requires: python3-%{name} = %{version} Requires: python3-pyside6 Requires: python3-dbus Requires: python3-pillow Requires: qt6-qtbase Requires: qt6-qtdeclarative %description gui Create small, searchable PDFs from scanned documents. The program divides images into bitonal foreground images (text) and a color background image, then compresses them separately. An invisible OCR text layer is added, making the PDF searchable. Color and grayscale scans need some preparation for good results. Recommended tools are Scan Tailor or GIMP. This package contains the graphical user interface for %{name} %files gui -f %{name}gui.lang %{_bindir}/scans2pdf-gui %{_datadir}/%{name}gui %{_datadir}/applications/%{app_id}.desktop %{_datadir}/icons/hicolor/*/apps/%{app_id}.png %{_metainfodir}/%{app_id}.metainfo.xml #------------------------------------------------------------------ %package -n python3-%{name} Summary: Python library and command line interface for %{name} Requires: ImageMagick Requires: jbig2enc Requires: exempi Requires: qpdf Requires: tesseract %description -n python3-%{name} Create small, searchable PDFs from scanned documents. The program divides images into bitonal foreground images (text) and a color background image, then compresses them separately. An invisible OCR text layer is added, making the PDF searchable. Color and grayscale scans need some preparation for good results. Recommended tools are Scan Tailor or GIMP. This package contains the python library and command line interface for %{name} %files -n python3-%{name} -f %{pyproject_files} %{_bindir}/%{name}-json %{_bindir}/hocr-json %{_bindir}/scans2pdf %{_bindir}/scans2pdf-json #------------------------------------------------------------------ %prep %forgeautosetup -p1 %generate_buildrequires %pyproject_buildrequires %build %pyproject_wheel %meson %meson_build %install %pyproject_install %pyproject_save_files %{name} %meson_install %py_byte_compile %{python3} %{buildroot}%{_datadir}/%{name}gui/scans2pdf_gui/*.py %find_lang %{name}gui %check %pyproject_check_import %{name} desktop-file-validate %{buildroot}%{_datadir}/applications/%{app_id}.desktop appstream-util validate-relax --nonet %{buildroot}%{_metainfodir}/%{app_id}.metainfo.xml #------------------------------------------------------------------ %changelog * Thu Feb 19 2026 Hazel Bunny - 0.5.12-1 - Update to 0.5.12 * Mon Jul 7 2025 Hazel Bunny - 0.5.10-1 - Update to 0.5.10 * Mon Apr 28 2025 Hazel Bunny - 0.5.9-1 - Update to 0.5.9 * Sun Nov 17 2024 Hazel Bunny - 0.5.7-1 - initial package