diff --git a/README.md b/README.md index ea7710fc..9078926c 100644 --- a/README.md +++ b/README.md @@ -75,6 +75,7 @@ Linux, Windows, macOS and FreeBSD are supported. Docker images are also availabl | LinuxBrew | ``brew install ocrmypdf`` | | FreeBSD | ``pkg install py-ocrmypdf`` | | Conda | ``conda install ocrmypdf`` | +| Ubuntu Snap | ``snap install ocrmypdf`` | For everyone else, [see our documentation](https://ocrmypdf.readthedocs.io/en/latest/installation.html) for installation steps. diff --git a/docs/installation.rst b/docs/installation.rst index 9a503ee2..cb6101fa 100644 --- a/docs/installation.rst +++ b/docs/installation.rst @@ -33,6 +33,8 @@ These platforms have one-liner installs: +-------------------------------+-----------------------------------------+ | Conda (WSL, macOS, Linux) | ``conda install ocrmypdf`` | +-------------------------------+-----------------------------------------+ +| Snap (snapcraft packaging) | ``snap install ocrmypdf`` | ++-------------------------------+-----------------------------------------+ More detailed procedures are outlined below. If you want to do a manual install, or install a more recent version than your platform provides, read on. @@ -339,7 +341,7 @@ OCRmyPDF is includes in MacPorts: sudo port install ocrmypdf Note that while this will install tesseract you will need to install -the appropriate tesseract `language ports `__. +the appropriate tesseract `language ports `__. Manual installation on macOS ---------------------------- diff --git a/docs/jbig2.rst b/docs/jbig2.rst index b658c16e..c7602857 100644 --- a/docs/jbig2.rst +++ b/docs/jbig2.rst @@ -22,6 +22,7 @@ specification since 2001. JBIG encoding is automatically provided by these OCRmyPDF packages: - Docker image (both Ubuntu and Alpine) +- Snap package - ArchLinux AUR package - Alpine Linux package - Homebrew on macOS diff --git a/snapcraft.yaml b/snapcraft.yaml new file mode 100644 index 00000000..559940e4 --- /dev/null +++ b/snapcraft.yaml @@ -0,0 +1,94 @@ +# SPDX-FileCopyrightText: 2022 Alexander Langanke +# SPDX-FileCopyrightText: 2022 James R. Barlow +# SPDX-FileCopyrightText: 2023 ๆž—ๅšไป(Buo-ren, Lin) +# SPDX-License-Identifier: MPL-2.0 + +name: ocrmypdf +title: OCRmyPDF +base: core22 +version: git +summary: OCRmyPDF adds a searchable text layer to scanned PDF files +description: OCRmyPDF packaged for snap +grade: stable +confinement: strict +icon: docs/images/logo-square-256.svg +license: MPL-2.0 + +architectures: [amd64] + +environment: + TESSDATA_PREFIX: $SNAP/usr/share/tesseract-ocr/4.00/tessdata + GS_LIB: $SNAP/usr/share/ghostscript/9.55/Resource/Init + GS_FONTPATH: $SNAP/usr/share/ghostscript/9.55/Resource/Font + LD_LIBRARY_PATH: $SNAP/usr/lib/x86_64-linux-gnu + +apps: + ocrmypdf: + command: usr/bin/snapcraft-preload python3 -m ocrmypdf + plugs: + - desktop + - desktop-legacy + - wayland + - x11 + - home + - removable-media + +parts: + snapcraft-preload: + source: https://github.com/sergiusens/snapcraft-preload.git + plugin: cmake + cmake-parameters: + - -DCMAKE_INSTALL_PREFIX=/usr -DLIBPATH=/usr/lib + build-packages: + - on amd64: + - gcc-multilib + - g++-multilib + stage-packages: + - lib32stdc++6 + + jbig2enc: + plugin: autotools + source: https://github.com/agl/jbig2enc.git + source-tag: "0.29" + build-packages: + - libleptonica-dev + + ocrmypdf: + plugin: python + source: . + + build-packages: + - python3-pip + + stage-packages: + - ghostscript + - icc-profiles-free + - liblept5 + - libxml2 + - pngquant + - tesseract-ocr-all + - unpaper + - qpdf + - zlib1g + + python-packages: + - cffi + - pdfminer.six + - pikepdf + - Pillow + - pluggy + - reportlab + - setuptools + - tqdm + - pipe + - wheel + + override-build: | + pip3 install --user dephell[full] + $HOME/.local/bin/dephell deps convert \ + --from-path pyproject.toml \ + --from-format pyproject \ + --to-path setup.py \ + --to-format setuppy + snapcraftctl build + ln -sf ../usr/lib/libsnapcraft-preload.so $SNAPCRAFT_PART_INSTALL/lib/libsnapcraft-preload.so