Loading pkgs/development/libraries/jbig2enc/default.nix +8 −0 Original line number Diff line number Diff line Loading @@ -2,6 +2,7 @@ , stdenv , fetchFromGitHub , fetchpatch , python3 , leptonica , zlib , libwebp Loading @@ -24,6 +25,7 @@ stdenv.mkDerivation rec { }; nativeBuildInputs = [ autoreconfHook ]; propagatedBuildInputs = [ leptonica zlib Loading @@ -42,6 +44,11 @@ stdenv.mkDerivation rec { }) ]; # We don't want to install this Python 2 script postInstall = '' rm "$out/bin/pdf.py" ''; # This is necessary, because the resulting library has # /tmp/nix-build-jbig2enc/src/.libs before /nix/store/jbig2enc/lib # in its rpath, which means that patchelf --shrink-rpath removes Loading @@ -56,5 +63,6 @@ stdenv.mkDerivation rec { license = lib.licenses.asl20; platforms = lib.platforms.all; homepage = "https://github.com/agl/jbig2enc"; mainProgram = "jbig2"; }; } pkgs/development/python-modules/ocrmypdf/default.nix +10 −11 Original line number Diff line number Diff line Loading @@ -25,14 +25,15 @@ , tqdm , typing-extensions , unpaper , wheel , installShellFiles }: buildPythonPackage rec { pname = "ocrmypdf"; version = "14.4.0"; version = "15.0.1"; disabled = pythonOlder "3.8"; disabled = pythonOlder "3.9"; format = "pyproject"; Loading @@ -46,7 +47,7 @@ buildPythonPackage rec { postFetch = '' rm "$out/.git_archival.txt" ''; hash = "sha256-i1ZUBKR8dJXZkALUFwkzYcjtZ5Li66DfD2fupCGRQC4="; hash = "sha256-WTUe4ivSEU/4KMRtKhf1MDXN1segIe/wrXYVA5zJrZw="; }; SETUPTOOLS_SCM_PRETEND_VERSION = version; Loading @@ -54,17 +55,18 @@ buildPythonPackage rec { patches = [ (substituteAll { src = ./paths.patch; gs = "${lib.getBin ghostscript}/bin/gs"; jbig2 = "${lib.getBin jbig2enc}/bin/jbig2"; pngquant = "${lib.getBin pngquant}/bin/pngquant"; tesseract = "${lib.getBin tesseract}/bin/tesseract"; unpaper = "${lib.getBin unpaper}/bin/unpaper"; gs = lib.getExe ghostscript; jbig2 = lib.getExe jbig2enc; pngquant = lib.getExe pngquant; tesseract = lib.getExe tesseract; unpaper = lib.getExe unpaper; }) ]; nativeBuildInputs = [ setuptools setuptools-scm wheel installShellFiles ]; Loading @@ -78,9 +80,6 @@ buildPythonPackage rec { pluggy reportlab rich tqdm ] ++ lib.optionals (pythonOlder "3.9") [ importlib-resources ] ++ lib.optionals (pythonOlder "3.10") [ typing-extensions ]; Loading pkgs/development/python-modules/ocrmypdf/paths.patch +39 −47 Original line number Diff line number Diff line diff --git a/src/ocrmypdf/_exec/ghostscript.py b/src/ocrmypdf/_exec/ghostscript.py index 9e21c33c..21f134b3 100644 index e28d23e9..183cd918 100644 --- a/src/ocrmypdf/_exec/ghostscript.py +++ b/src/ocrmypdf/_exec/ghostscript.py @@ -32,15 +32,7 @@ log = logging.getLogger(__name__) # Most reliable what to get the bitness of Python interpreter, according to Python docs _IS_64BIT = sys.maxsize > 2**32 -_GSWIN = None -if os.name == 'nt': - if _IS_64BIT: - _GSWIN = 'gswin64c' - else: - _GSWIN = 'gswin32c' - -GS = _GSWIN if _GSWIN else 'gs' -del _GSWIN @@ -67,7 +67,7 @@ log.addFilter(DuplicateFilter(log)) # Ghostscript executable - gswin32c is not supported -GS = 'gswin64c' if os.name == 'nt' else 'gs' +GS = '@gs@' def version(): def version() -> Version: diff --git a/src/ocrmypdf/_exec/jbig2enc.py b/src/ocrmypdf/_exec/jbig2enc.py index 0f8f7392..db792b10 100644 index 28d3dd1c..477a7d6c 100644 --- a/src/ocrmypdf/_exec/jbig2enc.py +++ b/src/ocrmypdf/_exec/jbig2enc.py @@ -12,7 +12,7 @@ from ocrmypdf.subprocess import get_version, run @@ -14,7 +14,7 @@ from ocrmypdf.subprocess import get_version, run def version(): - return get_version('jbig2', regex=r'jbig2enc (\d+(\.\d+)*).*') + return get_version('@jbig2@', regex=r'jbig2enc (\d+(\.\d+)*).*') def version() -> Version: - return Version(get_version('jbig2', regex=r'jbig2enc (\d+(\.\d+)*).*')) + return Version(get_version('@jbig2@', regex=r'jbig2enc (\d+(\.\d+)*).*')) def available(): @@ -25,7 +25,7 @@ def available(): @@ -27,7 +27,7 @@ def available(): def convert_group(*, cwd, infiles, out_prefix): def convert_group(*, cwd, infiles, out_prefix, threshold): args = [ - 'jbig2', + '@jbig2@', '-b', out_prefix, '-s', # symbol mode (lossy) @@ -44,7 +44,7 @@ def convert_group_mp(args): '--symbol-mode', # symbol mode (lossy) @@ -50,7 +50,7 @@ def convert_group_mp(args): def convert_single(*, cwd, infile, outfile): - args = ['jbig2', '-p', infile] + args = ['@jbig2@', '-p', infile] def convert_single(*, cwd, infile, outfile, threshold): - args = ['jbig2', '--pdf', '-t', str(threshold), infile] + args = ['@jbig2@', '--pdf', '-t', str(threshold), infile] with open(outfile, 'wb') as fstdout: proc = run(args, cwd=cwd, stdout=fstdout, stderr=PIPE) proc.check_returncode() diff --git a/src/ocrmypdf/_exec/pngquant.py b/src/ocrmypdf/_exec/pngquant.py index 64e91139..ab5b9c49 100644 index 8425caec..a027f041 100644 --- a/src/ocrmypdf/_exec/pngquant.py +++ b/src/ocrmypdf/_exec/pngquant.py @@ -17,7 +17,7 @@ from ocrmypdf.subprocess import get_version, run @@ -18,7 +18,7 @@ from ocrmypdf.subprocess import get_version, run def version(): - return get_version('pngquant', regex=r'(\d+(\.\d+)*).*') + return get_version('@pngquant@', regex=r'(\d+(\.\d+)*).*') def version() -> Version: - return Version(get_version('pngquant', regex=r'(\d+(\.\d+)*).*')) + return Version(get_version('@pngquant@', regex=r'(\d+(\.\d+)*).*')) def available(): @@ -44,7 +44,7 @@ def input_as_png(input_file: Path): @@ -45,7 +45,7 @@ def input_as_png(input_file: Path): def quantize(input_file: Path, output_file: Path, quality_min: int, quality_max: int): with input_as_png(input_file) as input_stream: args = [ Loading @@ -73,19 +65,19 @@ index 64e91139..ab5b9c49 100644 '--skip-if-larger', '--quality', diff --git a/src/ocrmypdf/_exec/tesseract.py b/src/ocrmypdf/_exec/tesseract.py index ad98836a..a12d3002 100644 index 4eac3470..61315d14 100644 --- a/src/ocrmypdf/_exec/tesseract.py +++ b/src/ocrmypdf/_exec/tesseract.py @@ -111,7 +111,7 @@ class TesseractVersion(Version): @@ -114,7 +114,7 @@ class TesseractVersion(Version): def version() -> str: - return get_version('tesseract', regex=r'tesseract\s(.+)') + return get_version('@tesseract@', regex=r'tesseract\s(.+)') def version() -> Version: - return TesseractVersion(get_version('tesseract', regex=r'tesseract\s(.+)')) + return TesseractVersion(get_version('@tesseract@', regex=r'tesseract\s(.+)')) def has_user_words() -> bool: @@ -138,7 +138,7 @@ def get_languages() -> set[str]: def has_thresholding() -> bool: @@ -132,7 +132,7 @@ def get_languages() -> set[str]: msg += output return msg Loading @@ -94,7 +86,7 @@ index ad98836a..a12d3002 100644 try: proc = run( args_tess, @@ -160,7 +160,7 @@ def get_languages() -> set[str]: @@ -154,7 +154,7 @@ def get_languages() -> set[str]: def tess_base_args(langs: list[str], engine_mode: int | None) -> list[str]: Loading @@ -104,19 +96,19 @@ index ad98836a..a12d3002 100644 args.extend(['-l', '+'.join(langs)]) if engine_mode is not None: diff --git a/src/ocrmypdf/_exec/unpaper.py b/src/ocrmypdf/_exec/unpaper.py index d7f24265..d14f85de 100644 index 2944b4f4..55a36140 100644 --- a/src/ocrmypdf/_exec/unpaper.py +++ b/src/ocrmypdf/_exec/unpaper.py @@ -66,7 +66,7 @@ class UnpaperImageTooLargeError(Exception): @@ -69,7 +69,7 @@ class UnpaperImageTooLargeError(Exception): def version() -> str: - return get_version('unpaper') + return get_version('@unpaper@') def version() -> Version: - return Version(get_version('unpaper')) + return Version(get_version('@unpaper@')) SUPPORTED_MODES = {'1', 'L', 'RGB'} @@ -120,7 +120,7 @@ def _setup_unpaper_io(input_file: Path) -> Iterator[tuple[Path, Path, Path]]: @@ -123,7 +123,7 @@ def _setup_unpaper_io(input_file: Path) -> Iterator[tuple[Path, Path, Path]]: def run_unpaper( input_file: Path, output_file: Path, *, dpi: DecFloat, mode_args: list[str] ) -> None: Loading pkgs/tools/graphics/pngquant/default.nix +1 −0 Original line number Diff line number Diff line Loading @@ -27,6 +27,7 @@ stdenv.mkDerivation rec { changelog = "https://github.com/kornelski/pngquant/raw/${version}/CHANGELOG"; platforms = platforms.unix; license = with licenses; [ gpl3Plus hpnd bsd2 ]; mainProgram = "pngquant"; maintainers = [ maintainers.srapenne ]; }; } pkgs/tools/graphics/unpaper/default.nix +1 −0 Original line number Diff line number Diff line Loading @@ -53,6 +53,7 @@ stdenv.mkDerivation rec { description = "Post-processing tool for scanned sheets of paper"; license = licenses.gpl2; platforms = platforms.all; mainProgram = "unpaper"; maintainers = [ maintainers.rycee ]; }; } Loading
pkgs/development/libraries/jbig2enc/default.nix +8 −0 Original line number Diff line number Diff line Loading @@ -2,6 +2,7 @@ , stdenv , fetchFromGitHub , fetchpatch , python3 , leptonica , zlib , libwebp Loading @@ -24,6 +25,7 @@ stdenv.mkDerivation rec { }; nativeBuildInputs = [ autoreconfHook ]; propagatedBuildInputs = [ leptonica zlib Loading @@ -42,6 +44,11 @@ stdenv.mkDerivation rec { }) ]; # We don't want to install this Python 2 script postInstall = '' rm "$out/bin/pdf.py" ''; # This is necessary, because the resulting library has # /tmp/nix-build-jbig2enc/src/.libs before /nix/store/jbig2enc/lib # in its rpath, which means that patchelf --shrink-rpath removes Loading @@ -56,5 +63,6 @@ stdenv.mkDerivation rec { license = lib.licenses.asl20; platforms = lib.platforms.all; homepage = "https://github.com/agl/jbig2enc"; mainProgram = "jbig2"; }; }
pkgs/development/python-modules/ocrmypdf/default.nix +10 −11 Original line number Diff line number Diff line Loading @@ -25,14 +25,15 @@ , tqdm , typing-extensions , unpaper , wheel , installShellFiles }: buildPythonPackage rec { pname = "ocrmypdf"; version = "14.4.0"; version = "15.0.1"; disabled = pythonOlder "3.8"; disabled = pythonOlder "3.9"; format = "pyproject"; Loading @@ -46,7 +47,7 @@ buildPythonPackage rec { postFetch = '' rm "$out/.git_archival.txt" ''; hash = "sha256-i1ZUBKR8dJXZkALUFwkzYcjtZ5Li66DfD2fupCGRQC4="; hash = "sha256-WTUe4ivSEU/4KMRtKhf1MDXN1segIe/wrXYVA5zJrZw="; }; SETUPTOOLS_SCM_PRETEND_VERSION = version; Loading @@ -54,17 +55,18 @@ buildPythonPackage rec { patches = [ (substituteAll { src = ./paths.patch; gs = "${lib.getBin ghostscript}/bin/gs"; jbig2 = "${lib.getBin jbig2enc}/bin/jbig2"; pngquant = "${lib.getBin pngquant}/bin/pngquant"; tesseract = "${lib.getBin tesseract}/bin/tesseract"; unpaper = "${lib.getBin unpaper}/bin/unpaper"; gs = lib.getExe ghostscript; jbig2 = lib.getExe jbig2enc; pngquant = lib.getExe pngquant; tesseract = lib.getExe tesseract; unpaper = lib.getExe unpaper; }) ]; nativeBuildInputs = [ setuptools setuptools-scm wheel installShellFiles ]; Loading @@ -78,9 +80,6 @@ buildPythonPackage rec { pluggy reportlab rich tqdm ] ++ lib.optionals (pythonOlder "3.9") [ importlib-resources ] ++ lib.optionals (pythonOlder "3.10") [ typing-extensions ]; Loading
pkgs/development/python-modules/ocrmypdf/paths.patch +39 −47 Original line number Diff line number Diff line diff --git a/src/ocrmypdf/_exec/ghostscript.py b/src/ocrmypdf/_exec/ghostscript.py index 9e21c33c..21f134b3 100644 index e28d23e9..183cd918 100644 --- a/src/ocrmypdf/_exec/ghostscript.py +++ b/src/ocrmypdf/_exec/ghostscript.py @@ -32,15 +32,7 @@ log = logging.getLogger(__name__) # Most reliable what to get the bitness of Python interpreter, according to Python docs _IS_64BIT = sys.maxsize > 2**32 -_GSWIN = None -if os.name == 'nt': - if _IS_64BIT: - _GSWIN = 'gswin64c' - else: - _GSWIN = 'gswin32c' - -GS = _GSWIN if _GSWIN else 'gs' -del _GSWIN @@ -67,7 +67,7 @@ log.addFilter(DuplicateFilter(log)) # Ghostscript executable - gswin32c is not supported -GS = 'gswin64c' if os.name == 'nt' else 'gs' +GS = '@gs@' def version(): def version() -> Version: diff --git a/src/ocrmypdf/_exec/jbig2enc.py b/src/ocrmypdf/_exec/jbig2enc.py index 0f8f7392..db792b10 100644 index 28d3dd1c..477a7d6c 100644 --- a/src/ocrmypdf/_exec/jbig2enc.py +++ b/src/ocrmypdf/_exec/jbig2enc.py @@ -12,7 +12,7 @@ from ocrmypdf.subprocess import get_version, run @@ -14,7 +14,7 @@ from ocrmypdf.subprocess import get_version, run def version(): - return get_version('jbig2', regex=r'jbig2enc (\d+(\.\d+)*).*') + return get_version('@jbig2@', regex=r'jbig2enc (\d+(\.\d+)*).*') def version() -> Version: - return Version(get_version('jbig2', regex=r'jbig2enc (\d+(\.\d+)*).*')) + return Version(get_version('@jbig2@', regex=r'jbig2enc (\d+(\.\d+)*).*')) def available(): @@ -25,7 +25,7 @@ def available(): @@ -27,7 +27,7 @@ def available(): def convert_group(*, cwd, infiles, out_prefix): def convert_group(*, cwd, infiles, out_prefix, threshold): args = [ - 'jbig2', + '@jbig2@', '-b', out_prefix, '-s', # symbol mode (lossy) @@ -44,7 +44,7 @@ def convert_group_mp(args): '--symbol-mode', # symbol mode (lossy) @@ -50,7 +50,7 @@ def convert_group_mp(args): def convert_single(*, cwd, infile, outfile): - args = ['jbig2', '-p', infile] + args = ['@jbig2@', '-p', infile] def convert_single(*, cwd, infile, outfile, threshold): - args = ['jbig2', '--pdf', '-t', str(threshold), infile] + args = ['@jbig2@', '--pdf', '-t', str(threshold), infile] with open(outfile, 'wb') as fstdout: proc = run(args, cwd=cwd, stdout=fstdout, stderr=PIPE) proc.check_returncode() diff --git a/src/ocrmypdf/_exec/pngquant.py b/src/ocrmypdf/_exec/pngquant.py index 64e91139..ab5b9c49 100644 index 8425caec..a027f041 100644 --- a/src/ocrmypdf/_exec/pngquant.py +++ b/src/ocrmypdf/_exec/pngquant.py @@ -17,7 +17,7 @@ from ocrmypdf.subprocess import get_version, run @@ -18,7 +18,7 @@ from ocrmypdf.subprocess import get_version, run def version(): - return get_version('pngquant', regex=r'(\d+(\.\d+)*).*') + return get_version('@pngquant@', regex=r'(\d+(\.\d+)*).*') def version() -> Version: - return Version(get_version('pngquant', regex=r'(\d+(\.\d+)*).*')) + return Version(get_version('@pngquant@', regex=r'(\d+(\.\d+)*).*')) def available(): @@ -44,7 +44,7 @@ def input_as_png(input_file: Path): @@ -45,7 +45,7 @@ def input_as_png(input_file: Path): def quantize(input_file: Path, output_file: Path, quality_min: int, quality_max: int): with input_as_png(input_file) as input_stream: args = [ Loading @@ -73,19 +65,19 @@ index 64e91139..ab5b9c49 100644 '--skip-if-larger', '--quality', diff --git a/src/ocrmypdf/_exec/tesseract.py b/src/ocrmypdf/_exec/tesseract.py index ad98836a..a12d3002 100644 index 4eac3470..61315d14 100644 --- a/src/ocrmypdf/_exec/tesseract.py +++ b/src/ocrmypdf/_exec/tesseract.py @@ -111,7 +111,7 @@ class TesseractVersion(Version): @@ -114,7 +114,7 @@ class TesseractVersion(Version): def version() -> str: - return get_version('tesseract', regex=r'tesseract\s(.+)') + return get_version('@tesseract@', regex=r'tesseract\s(.+)') def version() -> Version: - return TesseractVersion(get_version('tesseract', regex=r'tesseract\s(.+)')) + return TesseractVersion(get_version('@tesseract@', regex=r'tesseract\s(.+)')) def has_user_words() -> bool: @@ -138,7 +138,7 @@ def get_languages() -> set[str]: def has_thresholding() -> bool: @@ -132,7 +132,7 @@ def get_languages() -> set[str]: msg += output return msg Loading @@ -94,7 +86,7 @@ index ad98836a..a12d3002 100644 try: proc = run( args_tess, @@ -160,7 +160,7 @@ def get_languages() -> set[str]: @@ -154,7 +154,7 @@ def get_languages() -> set[str]: def tess_base_args(langs: list[str], engine_mode: int | None) -> list[str]: Loading @@ -104,19 +96,19 @@ index ad98836a..a12d3002 100644 args.extend(['-l', '+'.join(langs)]) if engine_mode is not None: diff --git a/src/ocrmypdf/_exec/unpaper.py b/src/ocrmypdf/_exec/unpaper.py index d7f24265..d14f85de 100644 index 2944b4f4..55a36140 100644 --- a/src/ocrmypdf/_exec/unpaper.py +++ b/src/ocrmypdf/_exec/unpaper.py @@ -66,7 +66,7 @@ class UnpaperImageTooLargeError(Exception): @@ -69,7 +69,7 @@ class UnpaperImageTooLargeError(Exception): def version() -> str: - return get_version('unpaper') + return get_version('@unpaper@') def version() -> Version: - return Version(get_version('unpaper')) + return Version(get_version('@unpaper@')) SUPPORTED_MODES = {'1', 'L', 'RGB'} @@ -120,7 +120,7 @@ def _setup_unpaper_io(input_file: Path) -> Iterator[tuple[Path, Path, Path]]: @@ -123,7 +123,7 @@ def _setup_unpaper_io(input_file: Path) -> Iterator[tuple[Path, Path, Path]]: def run_unpaper( input_file: Path, output_file: Path, *, dpi: DecFloat, mode_args: list[str] ) -> None: Loading
pkgs/tools/graphics/pngquant/default.nix +1 −0 Original line number Diff line number Diff line Loading @@ -27,6 +27,7 @@ stdenv.mkDerivation rec { changelog = "https://github.com/kornelski/pngquant/raw/${version}/CHANGELOG"; platforms = platforms.unix; license = with licenses; [ gpl3Plus hpnd bsd2 ]; mainProgram = "pngquant"; maintainers = [ maintainers.srapenne ]; }; }
pkgs/tools/graphics/unpaper/default.nix +1 −0 Original line number Diff line number Diff line Loading @@ -53,6 +53,7 @@ stdenv.mkDerivation rec { description = "Post-processing tool for scanned sheets of paper"; license = licenses.gpl2; platforms = platforms.all; mainProgram = "unpaper"; maintainers = [ maintainers.rycee ]; }; }