Merge pull request #257856 from dotlambda/ocrmypdf-15.0.1
python310Packages.ocrmypdf: 14.4.0 -> 15.0.1
This commit is contained in:
@@ -2,6 +2,7 @@
|
||||
, stdenv
|
||||
, fetchFromGitHub
|
||||
, fetchpatch
|
||||
, python3
|
||||
, leptonica
|
||||
, zlib
|
||||
, libwebp
|
||||
@@ -24,6 +25,7 @@ stdenv.mkDerivation rec {
|
||||
};
|
||||
|
||||
nativeBuildInputs = [ autoreconfHook ];
|
||||
|
||||
propagatedBuildInputs = [
|
||||
leptonica
|
||||
zlib
|
||||
@@ -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
|
||||
@@ -56,5 +63,6 @@ stdenv.mkDerivation rec {
|
||||
license = lib.licenses.asl20;
|
||||
platforms = lib.platforms.all;
|
||||
homepage = "https://github.com/agl/jbig2enc";
|
||||
mainProgram = "jbig2";
|
||||
};
|
||||
}
|
||||
|
||||
@@ -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";
|
||||
|
||||
@@ -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;
|
||||
@@ -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
|
||||
];
|
||||
|
||||
@@ -78,9 +80,6 @@ buildPythonPackage rec {
|
||||
pluggy
|
||||
reportlab
|
||||
rich
|
||||
tqdm
|
||||
] ++ lib.optionals (pythonOlder "3.9") [
|
||||
importlib-resources
|
||||
] ++ lib.optionals (pythonOlder "3.10") [
|
||||
typing-extensions
|
||||
];
|
||||
|
||||
@@ -1,69 +1,61 @@
|
||||
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
|
||||
@@ -67,7 +67,7 @@ log.addFilter(DuplicateFilter(log))
|
||||
|
||||
-_GSWIN = None
|
||||
-if os.name == 'nt':
|
||||
- if _IS_64BIT:
|
||||
- _GSWIN = 'gswin64c'
|
||||
- else:
|
||||
- _GSWIN = 'gswin32c'
|
||||
-
|
||||
-GS = _GSWIN if _GSWIN else 'gs'
|
||||
-del _GSWIN
|
||||
|
||||
# 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 = [
|
||||
@@ -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
|
||||
|
||||
@@ -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]:
|
||||
@@ -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:
|
||||
|
||||
@@ -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 ];
|
||||
};
|
||||
}
|
||||
|
||||
@@ -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 ];
|
||||
};
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user