From 82b853c41a295af71cbc853ab00d7952fe355ad3 Mon Sep 17 00:00:00 2001 From: Lukas Geiger Date: Sat, 7 Nov 2026 19:28:02 +0100 Subject: [PATCH] docs(license): PyMuPDF nicht als "optional" ausweisen, Lizenz nennen (THIRD_PARTY_LICENSES) Umsetzung D-20261107-002 (Ticket T-20261031-411493180): Lizenzangaben je Repo gleich und ehrlich. Keine Lizenzaenderung, keine Variantenaenderung. THIRD_PARTY_LICENSES.md und .txt fuehrten PyMuPDF unter "Direct runtime requirements" als "Optional PDF extraction", obwohl pyproject.toml PyMuPDF in dependencies deklariert und das Paket es mitinstalliert. Der Import im Quelltext ist abgesichert (HAS_FITZ); das macht die Abhaengigkeit nicht optional. Die Zeile nannte ausserdem die Lizenz nicht, die ProFiler AGPL-3.0 macht. Jetzt: deklarierte Abhaengigkeit (Import abgesichert, in den Metadaten nicht optional), Lizenz AGPL-3.0 oder Artifex-Kommerzlizenz, von ProFiler unter AGPL-3.0 genutzt. Sonst nichts geaendert. Nicht angefasst: die Variantenangaben ("AGPL-3.0-only" in README, pyproject, store_package.json, llms.txt; "or later" im App-Info-Dialog und im LICENSE-Anhang). Das ist eine eigene Lizenzentscheidung. Geprueft: tests/test_metadata.py, test_security_license_contract.py, test_store_materials.py -> 60 passed. Co-Authored-By: Claude Sonnet 5.5 Claude-Session: https://claude.ai/code/session_01THB2EysTVQFXz5moenpBvW --- THIRD_PARTY_LICENSES.md | 2 +- THIRD_PARTY_LICENSES.txt | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/THIRD_PARTY_LICENSES.md b/THIRD_PARTY_LICENSES.md index 7ca828a..6e8ce04 100644 --- a/THIRD_PARTY_LICENSES.md +++ b/THIRD_PARTY_LICENSES.md @@ -16,7 +16,7 @@ The constraints below are from `pyproject.toml` and `requirements.txt`. The requ | PySide6 | `>=6.5.0` | Desktop UI | [Qt for Python](https://doc.qt.io/qtforpython-6/) | | pypdf | `>=6.14.2` | PDF reading and writing | [pypdf](https://github.com/py-pdf/pypdf) | | pikepdf | `>=8.0.0` | PDF structure and encryption workflows | [pikepdf](https://github.com/pikepdf/pikepdf) | -| PyMuPDF | `>=1.23.0` | Optional PDF extraction and redaction paths | [PyMuPDF licensing and project](https://github.com/pymupdf/PyMuPDF) | +| PyMuPDF | `>=1.23.0` | PDF extraction and redaction paths; declared as a regular dependency in `pyproject.toml` (the import is guarded in the source, but the dependency is not optional in the metadata) | [PyMuPDF licensing and project](https://github.com/pymupdf/PyMuPDF); AGPL-3.0 or Artifex commercial license, used here under AGPL-3.0 | | pdf2image | `>=1.16.0` | PDF page rendering through host tools | [pdf2image](https://github.com/Belval/pdf2image) | | python-docx | `>=1.0.0` | DOCX reading | [python-docx](https://github.com/python-openxml/python-docx) | | pytesseract | `>=0.3.10` | Tesseract OCR interface | [pytesseract](https://github.com/madmaze/pytesseract) | diff --git a/THIRD_PARTY_LICENSES.txt b/THIRD_PARTY_LICENSES.txt index 9818919..b87bbfa 100644 --- a/THIRD_PARTY_LICENSES.txt +++ b/THIRD_PARTY_LICENSES.txt @@ -14,7 +14,7 @@ DIRECT RUNTIME REQUIREMENTS (pyproject.toml / requirements.txt) - PySide6 >=6.5.0 - desktop UI - https://doc.qt.io/qtforpython-6/ - pypdf >=6.14.2 - PDF reading and writing - https://github.com/py-pdf/pypdf - pikepdf >=8.0.0 - PDF structure/encryption workflows - https://github.com/pikepdf/pikepdf -- PyMuPDF >=1.23.0 - optional PDF extraction/redaction - https://github.com/pymupdf/PyMuPDF +- PyMuPDF >=1.23.0 - PDF extraction/redaction; declared as a regular dependency (the import is guarded in the source, but it is not optional in pyproject.toml); AGPL-3.0 or Artifex commercial license, used here under AGPL-3.0 - https://github.com/pymupdf/PyMuPDF - pdf2image >=1.16.0 - PDF page rendering interface - https://github.com/Belval/pdf2image - python-docx >=1.0.0 - DOCX reading - https://github.com/python-openxml/python-docx - pytesseract >=0.3.10 - Tesseract OCR interface - https://github.com/madmaze/pytesseract