fix: Ghostscript-Angebot log nicht mehr, fehlende Voraussetzungen dokumentiert (v0.7.1)

Befunde aus dem ersten echten Erstinstallations-Test auf frischen Debian-12-
und Debian-13-Containern. Der Weg selbst hat getragen (Basis-Install,
Instanz-Anlage, zweite Instanz, Update mit Rauchtest, Rollback) — diese
Stellen haben gelogen oder gefehlt:

- Das Ghostscript-Backports-Angebot auf Debian 12 war ein garantierter
  Leerlauf, der "aktualisiert ✓" meldete: bookworm-backports enthaelt gar
  kein ghostscript (am Paketindex verifiziert). Die Routine sucht jetzt den
  echten Kandidaten, vergleicht vorher/nachher und raeumt eine nur zur Probe
  angelegte Quelle wieder weg.
- Derselbe untaugliche Rat stand in der Preflight-Meldung, der
  pdfa_level-Warnung, config.example.toml und vier Doku-Dateien — ueberall
  ersetzt durch die echten Optionen.
- Mehrzeilige Log-Hinweise waren durch "echo -e" zerrissen und nicht
  kopierbar; log_* nutzt jetzt printf mit %s.
- pip-freeze.txt landete beim Rollback als /pip-freeze.txt im
  Wurzelverzeichnis, liegt jetzt unter opt/pdf-ocr-hotfolder/.
- git und sudo fehlen auf dem Proxmox-Debian-Template; "sudo ./install.sh"
  scheitert dort. Beide Wege dokumentiert, git als Voraussetzung ergaenzt,
  HTTPS-Clone als Normalfall.
- Rollback: systemctl start kann kein Glob. journald-Reparatur: Instanzen
  danach neu starten, sonst bleibt das Journal leer.

254 Tests gruen.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
This commit is contained in:
2026-09-23 01:36:42 +02:00
parent cd803a3dfe
commit 465ff8873f
15 changed files with 611 additions and 101 deletions
+27 -9
View File
@@ -254,19 +254,37 @@ def _gs_block_reason(pdfa_level: str, skip_text: bool) -> str | None:
"einzelne PDF würde in error/ landen"
)
if pdfa_level:
abhilfe = (
"Abhilfe — eines davon: "
"(1) [ocr].pdfa_level = \"\" setzen (der Default; ohne PDF/A-Ausgabe "
"fasst ocrmypdf >= 17 Ghostscript gar nicht an, die betroffene "
"Version ist dann unproblematisch) — kostet allerdings PDF/A; "
"(2) [ocr].skip_text = false setzen (dann wird vorhandener Text neu "
"erkannt statt übersprungen, das kostet Laufzeit); "
"(3) eine Distribution mit neuerem Ghostscript einsetzen — "
"Debian 13 liefert 10.05.1."
)
else:
abhilfe = (
"Abhilfe — eines davon: "
"(1) ocrmypdf >= 17 einsetzen (requirements.txt pinnt 17.x; dort "
"wird Ghostscript ohne PDF/A-Ausgabe gar nicht angefasst) — nach "
"einem Downgrade also die venv neu bauen; "
"(2) [ocr].skip_text = false setzen (dann wird vorhandener Text neu "
"erkannt statt übersprungen, das kostet Laufzeit); "
"(3) eine Distribution mit neuerem Ghostscript einsetzen — "
"Debian 13 liefert 10.05.1."
)
return (
f"Ghostscript {gs_version} ist von einem bekannten Fehler betroffen "
"(10.0.0–10.02.0, der Debian-12-Standard) und wird von ocrmypdf "
f"abgelehnt: {ursache}. "
"Abhilfe — eines von beidem: "
"(1) Ghostscript >= 10.02.1 aus bookworm-backports installieren "
"(install.sh bietet das an): "
"echo 'deb http://deb.debian.org/debian bookworm-backports main' | "
"sudo tee /etc/apt/sources.list.d/bookworm-backports.list && "
"sudo apt update && sudo apt install -t bookworm-backports ghostscript — "
"oder (2) in der Config [ocr].skip_text = false setzen "
"(dann wird vorhandener Text neu erkannt statt übersprungen)"
+ (" bzw. [ocr].pdfa_level = \"\"." if pdfa_level else ".")
+ abhilfe
+ " Ein Ghostscript-Upgrade auf Debian 12 gibt es NICHT: "
"bookworm-backports enthält kein Ghostscript-Paket. Wer auf Debian 12 "
"PDF/A zusammen mit skip_text = true braucht, hat dort keinen Weg."
)