git: 868b6deef616 - main - textproc/py-*docling*: new ports: 38 Docling ports for document manipulation
- Go to: [ bottom of page ] [ top of archives ] [ this month ]
Date: Fri, 10 Jul 2026 02:37:55 UTC
The branch main has been updated by yuri:
URL: https://cgit.FreeBSD.org/ports/commit/?id=868b6deef6165e5f9a84aa56446ee9a03b569a53
commit 868b6deef6165e5f9a84aa56446ee9a03b569a53
Author: Yuri Victorovich <yuri@FreeBSD.org>
AuthorDate: 2026-07-10 02:31:28 +0000
Commit: Yuri Victorovich <yuri@FreeBSD.org>
CommitDate: 2026-07-10 02:37:41 +0000
textproc/py-*docling*: new ports: 38 Docling ports for document manipulation
---
textproc/Makefile | 38 +++++++++++++
textproc/py-docling-agent/Makefile | 33 ++++++++++++
textproc/py-docling-agent/distinfo | 3 ++
.../py-docling-agent/files/patch-pyproject.toml | 13 +++++
textproc/py-docling-agent/pkg-descr | 4 ++
textproc/py-docling-analysis-framework/Makefile | 25 +++++++++
textproc/py-docling-analysis-framework/distinfo | 3 ++
textproc/py-docling-analysis-framework/pkg-descr | 4 ++
textproc/py-docling-core/Makefile | 36 +++++++++++++
textproc/py-docling-core/distinfo | 3 ++
.../py-docling-core/files/patch-pyproject.toml | 13 +++++
textproc/py-docling-core/pkg-descr | 4 ++
textproc/py-docling-cvat-tools/Makefile | 34 ++++++++++++
textproc/py-docling-cvat-tools/distinfo | 3 ++
.../files/patch-pyproject.toml | 12 +++++
textproc/py-docling-cvat-tools/pkg-descr | 4 ++
textproc/py-docling-demo/Makefile | 35 ++++++++++++
textproc/py-docling-demo/distinfo | 3 ++
.../py-docling-demo/files/patch-pyproject.toml | 10 ++++
textproc/py-docling-demo/pkg-descr | 4 ++
textproc/py-docling-enhanced-onnx/Makefile | 29 ++++++++++
textproc/py-docling-enhanced-onnx/distinfo | 3 ++
textproc/py-docling-enhanced-onnx/pkg-descr | 4 ++
textproc/py-docling-enhanced/Makefile | 46 ++++++++++++++++
textproc/py-docling-enhanced/distinfo | 3 ++
textproc/py-docling-enhanced/pkg-descr | 4 ++
textproc/py-docling-eval/Makefile | 52 ++++++++++++++++++
textproc/py-docling-eval/distinfo | 3 ++
.../py-docling-eval/files/patch-pyproject.toml | 12 +++++
textproc/py-docling-eval/pkg-descr | 4 ++
textproc/py-docling-extractor/Makefile | 25 +++++++++
textproc/py-docling-extractor/distinfo | 3 ++
textproc/py-docling-extractor/pkg-descr | 4 ++
textproc/py-docling-glm-ocr/Makefile | 25 +++++++++
textproc/py-docling-glm-ocr/distinfo | 3 ++
textproc/py-docling-glm-ocr/pkg-descr | 3 ++
textproc/py-docling-google-ocr/Makefile | 47 ++++++++++++++++
textproc/py-docling-google-ocr/distinfo | 3 ++
textproc/py-docling-google-ocr/pkg-descr | 4 ++
textproc/py-docling-graph/Makefile | 33 ++++++++++++
textproc/py-docling-graph/distinfo | 3 ++
textproc/py-docling-graph/pkg-descr | 4 ++
textproc/py-docling-haystack/Makefile | 26 +++++++++
textproc/py-docling-haystack/distinfo | 3 ++
.../py-docling-haystack/files/patch-pyproject.toml | 12 +++++
textproc/py-docling-haystack/pkg-descr | 4 ++
textproc/py-docling-hierarchical-pdf/Makefile | 26 +++++++++
textproc/py-docling-hierarchical-pdf/distinfo | 3 ++
textproc/py-docling-hierarchical-pdf/pkg-descr | 4 ++
textproc/py-docling-ibm-models/Makefile | 36 +++++++++++++
textproc/py-docling-ibm-models/distinfo | 3 ++
.../files/patch-pyproject.toml | 12 +++++
textproc/py-docling-ibm-models/pkg-descr | 4 ++
textproc/py-docling-jobkit/Makefile | 29 ++++++++++
textproc/py-docling-jobkit/distinfo | 3 ++
.../py-docling-jobkit/files/patch-pyproject.toml | 12 +++++
textproc/py-docling-jobkit/pkg-descr | 4 ++
textproc/py-docling-langchain/Makefile | 24 +++++++++
textproc/py-docling-langchain/distinfo | 3 ++
textproc/py-docling-langchain/pkg-descr | 4 ++
.../Makefile | 25 +++++++++
.../distinfo | 3 ++
.../files/patch-pyproject.toml | 10 ++++
.../pkg-descr | 4 ++
textproc/py-docling-mcp/Makefile | 29 ++++++++++
textproc/py-docling-mcp/distinfo | 3 ++
textproc/py-docling-mcp/files/patch-pyproject.toml | 13 +++++
textproc/py-docling-mcp/pkg-descr | 4 ++
textproc/py-docling-metrics-chemistry/Makefile | 25 +++++++++
textproc/py-docling-metrics-chemistry/distinfo | 3 ++
.../files/patch-pyproject.toml | 12 +++++
textproc/py-docling-metrics-chemistry/pkg-descr | 4 ++
textproc/py-docling-metrics-core/Makefile | 22 ++++++++
textproc/py-docling-metrics-core/distinfo | 3 ++
.../files/patch-pyproject.toml | 12 +++++
textproc/py-docling-metrics-core/pkg-descr | 3 ++
textproc/py-docling-metrics-layout/Makefile | 31 +++++++++++
textproc/py-docling-metrics-layout/distinfo | 3 ++
.../files/patch-pyproject.toml | 12 +++++
textproc/py-docling-metrics-layout/pkg-descr | 4 ++
textproc/py-docling-metrics-table/Makefile | 31 +++++++++++
textproc/py-docling-metrics-table/distinfo | 3 ++
.../files/patch-cmake_extlib__cxxopts.cmake | 24 +++++++++
.../files/patch-cmake_extlib__loguru.cmake | 31 +++++++++++
.../files/patch-pyproject.toml | 20 +++++++
textproc/py-docling-metrics-table/pkg-descr | 4 ++
textproc/py-docling-metrics-text/Makefile | 33 ++++++++++++
textproc/py-docling-metrics-text/distinfo | 3 ++
.../files/cpp_include/edit_distance.h | 63 ++++++++++++++++++++++
.../files/cpp_include/text_manager.h | 44 +++++++++++++++
.../files/cpp_include/treebank.h | 42 +++++++++++++++
.../files/cpp_include/utils.h | 19 +++++++
.../files/patch-cmake_extlib__abseil.cmake | 17 ++++++
.../files/patch-cmake_extlib__loguru.cmake | 16 ++++++
.../files/patch-cmake_extlib__re2.cmake | 15 ++++++
.../files/patch-pyproject.toml | 11 ++++
textproc/py-docling-metrics-text/pkg-descr | 4 ++
textproc/py-docling-ocr-mistral/Makefile | 26 +++++++++
textproc/py-docling-ocr-mistral/distinfo | 3 ++
.../files/patch-pyproject.toml | 12 +++++
textproc/py-docling-ocr-mistral/pkg-descr | 4 ++
textproc/py-docling-ocr-onnxtr/Makefile | 25 +++++++++
textproc/py-docling-ocr-onnxtr/distinfo | 3 ++
textproc/py-docling-ocr-onnxtr/pkg-descr | 4 ++
textproc/py-docling-ocr/Makefile | 26 +++++++++
textproc/py-docling-ocr/distinfo | 3 ++
textproc/py-docling-ocr/pkg-descr | 4 ++
textproc/py-docling-onnx-models/Makefile | 29 ++++++++++
textproc/py-docling-onnx-models/distinfo | 3 ++
textproc/py-docling-onnx-models/pkg-descr | 4 ++
textproc/py-docling-parse/Makefile | 37 +++++++++++++
textproc/py-docling-parse/distinfo | 3 ++
.../py-docling-parse/files/patch-CMakeLists.txt | 15 ++++++
.../files/patch-cmake_extlib__loguru.cmake | 37 +++++++++++++
.../files/patch-cmake_extlib__utf8.git.cmake | 25 +++++++++
.../files/patch-cmake_os__opts.cmake | 27 ++++++++++
.../py-docling-parse/files/patch-pyproject.toml | 42 +++++++++++++++
textproc/py-docling-parse/pkg-descr | 5 ++
textproc/py-docling-sdg/Makefile | 33 ++++++++++++
textproc/py-docling-sdg/distinfo | 3 ++
textproc/py-docling-sdg/files/patch-pyproject.toml | 12 +++++
textproc/py-docling-sdg/pkg-descr | 4 ++
textproc/py-docling-serve-client/Makefile | 25 +++++++++
textproc/py-docling-serve-client/distinfo | 3 ++
.../files/patch-pyproject.toml | 12 +++++
textproc/py-docling-serve-client/pkg-descr | 3 ++
textproc/py-docling-serve-haystack/Makefile | 25 +++++++++
textproc/py-docling-serve-haystack/distinfo | 3 ++
.../files/patch-pyproject.toml | 12 +++++
textproc/py-docling-serve-haystack/pkg-descr | 4 ++
textproc/py-docling-serve-sdk/Makefile | 24 +++++++++
textproc/py-docling-serve-sdk/distinfo | 3 ++
.../files/patch-pyproject.toml | 12 +++++
textproc/py-docling-serve-sdk/pkg-descr | 3 ++
textproc/py-docling-serve/Makefile | 42 +++++++++++++++
textproc/py-docling-serve/distinfo | 3 ++
textproc/py-docling-serve/pkg-descr | 4 ++
textproc/py-docling-slim/Makefile | 30 +++++++++++
textproc/py-docling-slim/distinfo | 3 ++
.../py-docling-slim/files/patch-pyproject.toml | 12 +++++
textproc/py-docling-slim/pkg-descr | 5 ++
textproc/py-docling/Makefile | 60 +++++++++++++++++++++
textproc/py-docling/distinfo | 3 ++
textproc/py-docling/files/patch-pyproject.toml | 23 ++++++++
textproc/py-docling/pkg-descr | 8 +++
textproc/py-extended-docling/Makefile | 47 ++++++++++++++++
textproc/py-extended-docling/distinfo | 3 ++
textproc/py-extended-docling/pkg-descr | 5 ++
textproc/py-langchain-docling/Makefile | 25 +++++++++
textproc/py-langchain-docling/distinfo | 3 ++
.../files/patch-pyproject.toml | 13 +++++
textproc/py-langchain-docling/pkg-descr | 4 ++
152 files changed, 2229 insertions(+)
diff --git a/textproc/Makefile b/textproc/Makefile
index b36e823ae5a2..7005f0f13382 100644
--- a/textproc/Makefile
+++ b/textproc/Makefile
@@ -1386,6 +1386,42 @@
SUBDIR += py-diff-match-patch
SUBDIR += py-dirtyjson
SUBDIR += py-doclang
+ SUBDIR += py-docling
+ SUBDIR += py-docling-agent
+ SUBDIR += py-docling-analysis-framework
+ SUBDIR += py-docling-core
+ SUBDIR += py-docling-cvat-tools
+ SUBDIR += py-docling-demo
+ SUBDIR += py-docling-enhanced
+ SUBDIR += py-docling-enhanced-onnx
+ SUBDIR += py-docling-eval
+ SUBDIR += py-docling-extractor
+ SUBDIR += py-docling-glm-ocr
+ SUBDIR += py-docling-google-ocr
+ SUBDIR += py-docling-graph
+ SUBDIR += py-docling-haystack
+ SUBDIR += py-docling-hierarchical-pdf
+ SUBDIR += py-docling-ibm-models
+ SUBDIR += py-docling-jobkit
+ SUBDIR += py-docling-langchain
+ SUBDIR += py-docling-litellm-picture-description
+ SUBDIR += py-docling-mcp
+ SUBDIR += py-docling-metrics-chemistry
+ SUBDIR += py-docling-metrics-core
+ SUBDIR += py-docling-metrics-layout
+ SUBDIR += py-docling-metrics-table
+ SUBDIR += py-docling-metrics-text
+ SUBDIR += py-docling-ocr
+ SUBDIR += py-docling-ocr-mistral
+ SUBDIR += py-docling-ocr-onnxtr
+ SUBDIR += py-docling-onnx-models
+ SUBDIR += py-docling-parse
+ SUBDIR += py-docling-sdg
+ SUBDIR += py-docling-serve
+ SUBDIR += py-docling-serve-client
+ SUBDIR += py-docling-serve-haystack
+ SUBDIR += py-docling-serve-sdk
+ SUBDIR += py-docling-slim
SUBDIR += py-docrepr
SUBDIR += py-docstring-to-markdown
SUBDIR += py-docstring_parser
@@ -1415,6 +1451,7 @@
SUBDIR += py-epy-reader
SUBDIR += py-et_xmlfile
SUBDIR += py-evtx2splunk
+ SUBDIR += py-extended-docling
SUBDIR += py-fastavro
SUBDIR += py-fasttext-predict
SUBDIR += py-faust-cchardet
@@ -1472,6 +1509,7 @@
SUBDIR += py-jupyter_sphinx
SUBDIR += py-jupyterlab-pygments
SUBDIR += py-kidash
+ SUBDIR += py-langchain-docling
SUBDIR += py-langcodes
SUBDIR += py-langdetect
SUBDIR += py-langid
diff --git a/textproc/py-docling-agent/Makefile b/textproc/py-docling-agent/Makefile
new file mode 100644
index 000000000000..ec60aae3638f
--- /dev/null
+++ b/textproc/py-docling-agent/Makefile
@@ -0,0 +1,33 @@
+PORTNAME= docling-agent
+DISTVERSION= 0.6.0
+CATEGORIES= textproc python
+MASTER_SITES= PYPI
+PKGNAMEPREFIX= ${PYTHON_PKGNAMEPREFIX}
+DISTNAME= ${PORTNAME:S/-/_/}-${DISTVERSION}
+
+MAINTAINER= yuri@FreeBSD.org
+COMMENT= Python library to simplify agentic operations on documents
+WWW= https://github.com/docling-project/docling-agent
+
+LICENSE= MIT
+LICENSE_FILE= ${WRKSRC}/LICENSE
+
+BUILD_DEPENDS= ${PYTHON_PKGNAMEPREFIX}hatchling>=0:devel/py-hatchling@${PY_FLAVOR}
+RUN_DEPENDS= ${PYTHON_PKGNAMEPREFIX}boto3>=1.35:www/py-boto3@${PY_FLAVOR} \
+ ${PYTHON_PKGNAMEPREFIX}docling>=2.61.0:textproc/py-docling@${PY_FLAVOR} \
+ ${PYTHON_PKGNAMEPREFIX}docling-core>=2.79.0:textproc/py-docling-core@${PY_FLAVOR} \
+ ${PYTHON_PKGNAMEPREFIX}httpx>=0.28:www/py-httpx@${PY_FLAVOR} \
+ ${PYTHON_PKGNAMEPREFIX}mellea>=0.3:devel/py-mellea@${PY_FLAVOR} \
+ ${PYTHON_PKGNAMEPREFIX}pandas>=2.2:math/py-pandas@${PY_FLAVOR} \
+ ${PYTHON_PKGNAMEPREFIX}pyarrow>=19.0:databases/py-pyarrow@${PY_FLAVOR} \
+ ${PYTHON_PKGNAMEPREFIX}pydantic2>=2.10:devel/py-pydantic2@${PY_FLAVOR} \
+ ${PYTHON_PKGNAMEPREFIX}pydantic-settings>=2.4:devel/py-pydantic-settings@${PY_FLAVOR} \
+ ${PYTHON_PKGNAMEPREFIX}pyyaml>=6.0:devel/py-pyyaml@${PY_FLAVOR} \
+ ${PYTHON_PKGNAMEPREFIX}typer>=0.12.5:devel/py-typer@${PY_FLAVOR}
+
+USES= python
+USE_PYTHON= autoplist concurrent pep517
+
+NO_ARCH= yes
+
+.include <bsd.port.mk>
diff --git a/textproc/py-docling-agent/distinfo b/textproc/py-docling-agent/distinfo
new file mode 100644
index 000000000000..b709351e4d64
--- /dev/null
+++ b/textproc/py-docling-agent/distinfo
@@ -0,0 +1,3 @@
+TIMESTAMP = 1783064426
+SHA256 (docling_agent-0.6.0.tar.gz) = c1b877651d139aeca1aacf3f5152c657c42f90f6ef2c1f70f601bee22df2c93f
+SIZE (docling_agent-0.6.0.tar.gz) = 66201
diff --git a/textproc/py-docling-agent/files/patch-pyproject.toml b/textproc/py-docling-agent/files/patch-pyproject.toml
new file mode 100644
index 000000000000..a5aa77481ebe
--- /dev/null
+++ b/textproc/py-docling-agent/files/patch-pyproject.toml
@@ -0,0 +1,13 @@
+-- Fix license declaration format for PEP 621 compatibility and remove license-files path not present in distfile.
+--- pyproject.toml.orig 2026-07-09 20:28:11 UTC
++++ pyproject.toml
+@@ -2,8 +2,7 @@ description = "A python library to simplify agentic op
+ name = "docling-agent"
+ version = "0.6.0" # DO NOT EDIT, updated automatically
+ description = "A python library to simplify agentic operations on documents, such as writing, editing, summarizing, extracting, and enriching."
+-license = "MIT"
+-license-files = ["LICENSE"]
++license = {text = "MIT"}
+ keywords = ["docling", "agent", "agentic", "document processing", "writing", "editing", "extraction", "enrichment", "summarization"]
+ readme = "README.md"
+ authors = [
diff --git a/textproc/py-docling-agent/pkg-descr b/textproc/py-docling-agent/pkg-descr
new file mode 100644
index 000000000000..8def22858ad4
--- /dev/null
+++ b/textproc/py-docling-agent/pkg-descr
@@ -0,0 +1,4 @@
+Docling Agent is a Python library that simplifies agentic operations on
+documents, such as writing, editing, summarizing, extracting, and enriching
+content. It builds on top of the Docling document understanding platform to
+enable AI agents to work with structured document representations.
diff --git a/textproc/py-docling-analysis-framework/Makefile b/textproc/py-docling-analysis-framework/Makefile
new file mode 100644
index 000000000000..d30cd92186f6
--- /dev/null
+++ b/textproc/py-docling-analysis-framework/Makefile
@@ -0,0 +1,25 @@
+PORTNAME= docling-analysis-framework
+DISTVERSION= 2.0.0
+CATEGORIES= textproc python
+MASTER_SITES= PYPI
+PKGNAMEPREFIX= ${PYTHON_PKGNAMEPREFIX}
+DISTNAME= ${PORTNAME:S/-/_/g}-${DISTVERSION}
+
+MAINTAINER= yuri@FreeBSD.org
+COMMENT= AI-ready analysis framework for PDF and Office documents using Docling
+WWW= https://github.com/rdwj/docling-analysis-framework
+
+LICENSE= MIT
+LICENSE_FILE= ${WRKSRC}/LICENSE
+
+BUILD_DEPENDS= ${PYTHON_PKGNAMEPREFIX}setuptools>=0:devel/py-setuptools@${PY_FLAVOR} \
+ ${PYTHON_PKGNAMEPREFIX}wheel>=0:devel/py-wheel@${PY_FLAVOR}
+RUN_DEPENDS= ${PYTHON_PKGNAMEPREFIX}analysis-framework-base>=1.0.0:misc/py-analysis-framework-base@${PY_FLAVOR} \
+ ${PYTHON_PKGNAMEPREFIX}docling>=1.0.0:textproc/py-docling@${PY_FLAVOR}
+
+USES= python
+USE_PYTHON= autoplist concurrent pep517
+
+NO_ARCH= yes
+
+.include <bsd.port.mk>
diff --git a/textproc/py-docling-analysis-framework/distinfo b/textproc/py-docling-analysis-framework/distinfo
new file mode 100644
index 000000000000..deb78442667b
--- /dev/null
+++ b/textproc/py-docling-analysis-framework/distinfo
@@ -0,0 +1,3 @@
+TIMESTAMP = 1783064446
+SHA256 (docling_analysis_framework-2.0.0.tar.gz) = f3f6fb642786e3fbee9d45d0af6ef0b3e80179cee263790f10eed574a3ba6edc
+SIZE (docling_analysis_framework-2.0.0.tar.gz) = 40817
diff --git a/textproc/py-docling-analysis-framework/pkg-descr b/textproc/py-docling-analysis-framework/pkg-descr
new file mode 100644
index 000000000000..21ef3ea26681
--- /dev/null
+++ b/textproc/py-docling-analysis-framework/pkg-descr
@@ -0,0 +1,4 @@
+Docling Analysis Framework provides an AI-ready analysis framework for PDF
+and Office documents using Docling for content extraction. It is part of
+the unified analysis framework suite and enables systematic evaluation and
+analysis of document processing pipelines.
diff --git a/textproc/py-docling-core/Makefile b/textproc/py-docling-core/Makefile
new file mode 100644
index 000000000000..90beecfd7c50
--- /dev/null
+++ b/textproc/py-docling-core/Makefile
@@ -0,0 +1,36 @@
+PORTNAME= docling-core
+DISTVERSION= 2.85.0
+CATEGORIES= textproc python
+MASTER_SITES= PYPI
+PKGNAMEPREFIX= ${PYTHON_PKGNAMEPREFIX}
+DISTNAME= ${PORTNAME:S/-/_/}-${DISTVERSION}
+
+MAINTAINER= yuri@FreeBSD.org
+COMMENT= Library to define and validate data types in Docling
+WWW= https://github.com/docling-project/docling-core
+
+LICENSE= MIT
+LICENSE_FILE= ${WRKSRC}/LICENSE
+
+BUILD_DEPENDS= ${PYTHON_PKGNAMEPREFIX}setuptools>=0:devel/py-setuptools@${PY_FLAVOR} \
+ ${PYTHON_PKGNAMEPREFIX}wheel>=0:devel/py-wheel@${PY_FLAVOR}
+RUN_DEPENDS= ${PYTHON_PKGNAMEPREFIX}defusedxml>=0.7.1:devel/py-defusedxml@${PY_FLAVOR} \
+ ${PYTHON_PKGNAMEPREFIX}doclang>=0.7:textproc/py-doclang@${PY_FLAVOR} \
+ ${PYTHON_PKGNAMEPREFIX}jsonref>=1.1.0:devel/py-jsonref@${PY_FLAVOR} \
+ ${PYTHON_PKGNAMEPREFIX}jsonschema>=4.16.0:devel/py-jsonschema@${PY_FLAVOR} \
+ ${PYTHON_PKGNAMEPREFIX}latex2mathml>=3.77.0:textproc/py-latex2mathml@${PY_FLAVOR} \
+ ${PYTHON_PKGNAMEPREFIX}pandas>=2.1.4:math/py-pandas@${PY_FLAVOR} \
+ ${PYTHON_PKGNAMEPREFIX}pillow>=10.0.0:graphics/py-pillow@${PY_FLAVOR} \
+ ${PYTHON_PKGNAMEPREFIX}pydantic2>=2.6.0:devel/py-pydantic2@${PY_FLAVOR} \
+ ${PYTHON_PKGNAMEPREFIX}pydantic-settings>=2.14.0:devel/py-pydantic-settings@${PY_FLAVOR} \
+ ${PYTHON_PKGNAMEPREFIX}pyyaml>=5.1:devel/py-pyyaml@${PY_FLAVOR} \
+ ${PYTHON_PKGNAMEPREFIX}tabulate>=0.9.0:devel/py-tabulate@${PY_FLAVOR} \
+ ${PYTHON_PKGNAMEPREFIX}typer>=0.12.5:devel/py-typer@${PY_FLAVOR} \
+ ${PYTHON_PKGNAMEPREFIX}typing-extensions>=4.12.2:devel/py-typing-extensions@${PY_FLAVOR}
+
+USES= python
+USE_PYTHON= autoplist concurrent pep517
+
+NO_ARCH= yes
+
+.include <bsd.port.mk>
diff --git a/textproc/py-docling-core/distinfo b/textproc/py-docling-core/distinfo
new file mode 100644
index 000000000000..c2e7318c8118
--- /dev/null
+++ b/textproc/py-docling-core/distinfo
@@ -0,0 +1,3 @@
+TIMESTAMP = 1783064268
+SHA256 (docling_core-2.85.0.tar.gz) = c4f49148ad8ac7cbe58d85cce90d2b3b0741d2b73cbfabb332e2df9e9583b3b4
+SIZE (docling_core-2.85.0.tar.gz) = 323268
diff --git a/textproc/py-docling-core/files/patch-pyproject.toml b/textproc/py-docling-core/files/patch-pyproject.toml
new file mode 100644
index 000000000000..c1715ebd9a5d
--- /dev/null
+++ b/textproc/py-docling-core/files/patch-pyproject.toml
@@ -0,0 +1,13 @@
+-- Fix license declaration format for PEP 621 compatibility and remove license-files path not present in distfile.
+--- pyproject.toml.orig 2026-07-09 20:28:22 UTC
++++ pyproject.toml
+@@ -2,8 +2,7 @@ description = "A python library to define and validate
+ name = "docling-core"
+ version = "2.85.0" # DO NOT EDIT, updated automatically
+ description = "A python library to define and validate data types in Docling."
+-license = "MIT"
+-license-files = ["LICENSE"]
++license = {text = "MIT"}
+ keywords = ["docling", "discovery", "etl", "information retrieval", "analytics", "database", "database schema", "schema", "JSON"]
+ readme = "README.md"
+ authors = [
diff --git a/textproc/py-docling-core/pkg-descr b/textproc/py-docling-core/pkg-descr
new file mode 100644
index 000000000000..9a34a86d4514
--- /dev/null
+++ b/textproc/py-docling-core/pkg-descr
@@ -0,0 +1,4 @@
+Docling Core defines and validates data types used throughout the Docling
+ecosystem. It provides the core document model, type definitions, and
+validation utilities that form the foundation of the Docling document
+conversion pipeline.
diff --git a/textproc/py-docling-cvat-tools/Makefile b/textproc/py-docling-cvat-tools/Makefile
new file mode 100644
index 000000000000..751c7c498f0c
--- /dev/null
+++ b/textproc/py-docling-cvat-tools/Makefile
@@ -0,0 +1,34 @@
+PORTNAME= docling-cvat-tools
+DISTVERSION= 0.1.0
+CATEGORIES= textproc python
+MASTER_SITES= PYPI
+PKGNAMEPREFIX= ${PYTHON_PKGNAMEPREFIX}
+DISTNAME= ${PORTNAME:S/-/_/g}-${DISTVERSION}
+
+MAINTAINER= yuri@FreeBSD.org
+COMMENT= CVAT annotation tools for Docling document processing and evaluation
+WWW= https://github.com/docling-project/docling-cvat-tools
+
+LICENSE= MIT
+LICENSE_FILE= ${WRKSRC}/LICENSE
+
+BUILD_DEPENDS= ${PYTHON_PKGNAMEPREFIX}setuptools>=0:devel/py-setuptools@${PY_FLAVOR} \
+ ${PYTHON_PKGNAMEPREFIX}wheel>=0:devel/py-wheel@${PY_FLAVOR}
+RUN_DEPENDS= ${PYTHON_PKGNAMEPREFIX}cvat-sdk>=2.40.0:misc/py-cvat-sdk@${PY_FLAVOR} \
+ ${PYTHON_PKGNAMEPREFIX}docling>=2.56.1:textproc/py-docling@${PY_FLAVOR} \
+ ${PYTHON_PKGNAMEPREFIX}docling-core>=2.63.0:textproc/py-docling-core@${PY_FLAVOR} \
+ ${PYTHON_PKGNAMEPREFIX}lxml>=5.3.0:devel/py-lxml@${PY_FLAVOR} \
+ ${PYTHON_PKGNAMEPREFIX}openpyxl>=3.1.5:textproc/py-openpyxl@${PY_FLAVOR} \
+ ${PYTHON_PKGNAMEPREFIX}pandas>=2.2.3:math/py-pandas@${PY_FLAVOR} \
+ ${PYTHON_PKGNAMEPREFIX}pillow>=10.3.0:graphics/py-pillow@${PY_FLAVOR} \
+ ${PYTHON_PKGNAMEPREFIX}pydantic2>=2.0.0:devel/py-pydantic2@${PY_FLAVOR} \
+ ${PYTHON_PKGNAMEPREFIX}tqdm>=4.67.1:misc/py-tqdm@${PY_FLAVOR} \
+ ${PYTHON_PKGNAMEPREFIX}typer>=0.16.0:devel/py-typer@${PY_FLAVOR} \
+ ${PYTHON_PKGNAMEPREFIX}xlsxwriter>=3.1.0:textproc/py-xlsxwriter@${PY_FLAVOR}
+
+USES= python
+USE_PYTHON= autoplist concurrent pep517
+
+NO_ARCH= yes
+
+.include <bsd.port.mk>
diff --git a/textproc/py-docling-cvat-tools/distinfo b/textproc/py-docling-cvat-tools/distinfo
new file mode 100644
index 000000000000..b885ef3625e6
--- /dev/null
+++ b/textproc/py-docling-cvat-tools/distinfo
@@ -0,0 +1,3 @@
+TIMESTAMP = 1783064426
+SHA256 (docling_cvat_tools-0.1.0.tar.gz) = 9e0816e65bb689983c9e0af1f26505104b11ce0fe61abad22b2f4b54be102a30
+SIZE (docling_cvat_tools-0.1.0.tar.gz) = 84496
diff --git a/textproc/py-docling-cvat-tools/files/patch-pyproject.toml b/textproc/py-docling-cvat-tools/files/patch-pyproject.toml
new file mode 100644
index 000000000000..778d8dc7f3cd
--- /dev/null
+++ b/textproc/py-docling-cvat-tools/files/patch-pyproject.toml
@@ -0,0 +1,12 @@
+-- Fix license declaration format for PEP 621 compatibility and remove license-files path not present in distfile.
+--- pyproject.toml.orig 2026-07-09 20:28:23 UTC
++++ pyproject.toml
+@@ -2,7 +2,7 @@ description = "CVAT annotation tools for Docling docum
+ name = "docling-cvat-tools"
+ version = "0.1.0" # DO NOT EDIT, updated automatically
+ description = "CVAT annotation tools for Docling document processing and evaluation"
+-license = "MIT"
++license = {text = "MIT"}
+ keywords = ["docling", "cvat", "annotation", "evaluation"]
+ readme = "README.md"
+ authors = [
diff --git a/textproc/py-docling-cvat-tools/pkg-descr b/textproc/py-docling-cvat-tools/pkg-descr
new file mode 100644
index 000000000000..e0aeb704588a
--- /dev/null
+++ b/textproc/py-docling-cvat-tools/pkg-descr
@@ -0,0 +1,4 @@
+Docling CVAT Tools provides CVAT (Computer Vision Annotation Tool)
+integration for Docling document processing and evaluation workflows.
+It enables annotation-based assessment of document understanding
+pipelines using the CVAT platform.
diff --git a/textproc/py-docling-demo/Makefile b/textproc/py-docling-demo/Makefile
new file mode 100644
index 000000000000..60c7df9c871f
--- /dev/null
+++ b/textproc/py-docling-demo/Makefile
@@ -0,0 +1,35 @@
+PORTNAME= docling-demo
+DISTVERSION= 0.1.1
+CATEGORIES= textproc python
+MASTER_SITES= PYPI
+PKGNAMEPREFIX= ${PYTHON_PKGNAMEPREFIX}
+DISTNAME= ${PORTNAME:S/-/_/}-${DISTVERSION}
+
+MAINTAINER= yuri@FreeBSD.org
+COMMENT= Demo application for Docling with Azure AI Search
+WWW= https://pypi.org/project/docling-demo/
+
+LICENSE= MIT
+
+BUILD_DEPENDS= ${PYTHON_PKGNAMEPREFIX}setuptools>=0:devel/py-setuptools@${PY_FLAVOR} \
+ ${PYTHON_PKGNAMEPREFIX}wheel>=0:devel/py-wheel@${PY_FLAVOR}
+RUN_DEPENDS= ${PYTHON_PKGNAMEPREFIX}azure-identity>=0:devel/py-azure-identity@${PY_FLAVOR} \
+ ${PYTHON_PKGNAMEPREFIX}azure-search>0:devel/py-azure-search@${PY_FLAVOR} \
+ ${PYTHON_PKGNAMEPREFIX}azure-search-documents>0:devel/py-azure-search-documents@${PY_FLAVOR} \
+ ${PYTHON_PKGNAMEPREFIX}build>=1.3.0:devel/py-build@${PY_FLAVOR} \
+ ${PYTHON_PKGNAMEPREFIX}docling>=2.64.0:textproc/py-docling@${PY_FLAVOR} \
+ ${PYTHON_PKGNAMEPREFIX}hf-xet>=1.2.0:misc/py-hf-xet@${PY_FLAVOR} \
+ ${PYTHON_PKGNAMEPREFIX}langchain>=1.1.2:misc/py-langchain@${PY_FLAVOR} \
+ ${PYTHON_PKGNAMEPREFIX}langchain-docling>=2.0.0:textproc/py-langchain-docling@${PY_FLAVOR} \
+ ${PYTHON_PKGNAMEPREFIX}langchain-openai>=1.1.0:misc/py-langchain-openai@${PY_FLAVOR} \
+ ${PYTHON_PKGNAMEPREFIX}onnxruntime>=1.23.2:misc/py-onnxruntime@${PY_FLAVOR} \
+ ${PYTHON_PKGNAMEPREFIX}pymupdf>=1.26.6:print/py-PyMuPDF@${PY_FLAVOR} \
+ ${PYTHON_PKGNAMEPREFIX}transformers>=4.57.3:misc/py-transformers@${PY_FLAVOR} \
+ ${PYTHON_PKGNAMEPREFIX}twine>=6.2.0:devel/py-twine@${PY_FLAVOR}
+
+USES= python
+USE_PYTHON= autoplist concurrent pep517
+
+NO_ARCH= yes
+
+.include <bsd.port.mk>
diff --git a/textproc/py-docling-demo/distinfo b/textproc/py-docling-demo/distinfo
new file mode 100644
index 000000000000..fb7a31249b37
--- /dev/null
+++ b/textproc/py-docling-demo/distinfo
@@ -0,0 +1,3 @@
+TIMESTAMP = 1783064427
+SHA256 (docling_demo-0.1.1.tar.gz) = 5661a2be0a201b019d8ca382ef99a551c8d32bcd0c4d992cfd42d09a4b93e7ed
+SIZE (docling_demo-0.1.1.tar.gz) = 7274
diff --git a/textproc/py-docling-demo/files/patch-pyproject.toml b/textproc/py-docling-demo/files/patch-pyproject.toml
new file mode 100644
index 000000000000..2ab9fb9b87ee
--- /dev/null
+++ b/textproc/py-docling-demo/files/patch-pyproject.toml
@@ -0,0 +1,10 @@
+-- Add setuptools packages.find config to exclude top-level utils package that conflicts with other ports.
+--- pyproject.toml.orig 2026-07-09 20:28:23 UTC
++++ pyproject.toml
+@@ -19,3 +19,6 @@ dependencies = [
+ "transformers>=4.57.3",
+ "twine>=6.2.0",
+ ]
++
++[tool.setuptools.packages.find]
++exclude = ["utils", "utils.*"]
diff --git a/textproc/py-docling-demo/pkg-descr b/textproc/py-docling-demo/pkg-descr
new file mode 100644
index 000000000000..a2153a254524
--- /dev/null
+++ b/textproc/py-docling-demo/pkg-descr
@@ -0,0 +1,4 @@
+Docling Demo is a demonstration application showcasing the capabilities
+of the Docling document understanding platform. It provides an interactive
+interface for exploring document parsing, layout analysis, and structure
+recognition features.
diff --git a/textproc/py-docling-enhanced-onnx/Makefile b/textproc/py-docling-enhanced-onnx/Makefile
new file mode 100644
index 000000000000..6c5dc78e24d6
--- /dev/null
+++ b/textproc/py-docling-enhanced-onnx/Makefile
@@ -0,0 +1,29 @@
+PORTNAME= docling-enhanced-onnx
+DISTVERSION= 1.0.0
+CATEGORIES= textproc python
+MASTER_SITES= PYPI
+PKGNAMEPREFIX= ${PYTHON_PKGNAMEPREFIX}
+DISTNAME= ${PORTNAME:S/-/_/g}-${DISTVERSION}
+
+MAINTAINER= yuri@FreeBSD.org
+COMMENT= Enhanced Docling Models with ONNX Auto-Detection, Air-Gapped Support
+WWW= https://github.com/asmud/docling
+
+LICENSE= MIT
+LICENSE_FILE= ${WRKSRC}/LICENSE
+
+BUILD_DEPENDS= ${PYTHON_PKGNAMEPREFIX}setuptools>=0:devel/py-setuptools@${PY_FLAVOR} \
+ ${PYTHON_PKGNAMEPREFIX}wheel>=0:devel/py-wheel@${PY_FLAVOR}
+RUN_DEPENDS= ${PYTHON_PKGNAMEPREFIX}docling>=2.0.0:textproc/py-docling@${PY_FLAVOR} \
+ ${PYTHON_PKGNAMEPREFIX}numpy>=1.21.0:math/py-numpy@${PY_FLAVOR} \
+ ${PYTHON_PKGNAMEPREFIX}onnxruntime>=1.15.0:misc/py-onnxruntime@${PY_FLAVOR} \
+ ${PYTHON_PKGNAMEPREFIX}pillow>=8.3.0:graphics/py-pillow@${PY_FLAVOR} \
+ ${PYTHON_PKGNAMEPREFIX}pydantic2>=2.0.0:devel/py-pydantic2@${PY_FLAVOR} \
+ ${PYTHON_PKGNAMEPREFIX}typing-extensions>=4.0.0:devel/py-typing-extensions@${PY_FLAVOR}
+
+USES= python
+USE_PYTHON= autoplist concurrent pep517
+
+NO_ARCH= yes
+
+.include <bsd.port.mk>
diff --git a/textproc/py-docling-enhanced-onnx/distinfo b/textproc/py-docling-enhanced-onnx/distinfo
new file mode 100644
index 000000000000..431ee9a01ad3
--- /dev/null
+++ b/textproc/py-docling-enhanced-onnx/distinfo
@@ -0,0 +1,3 @@
+TIMESTAMP = 1783064447
+SHA256 (docling_enhanced_onnx-1.0.0.tar.gz) = 404c3edeef410a087d28a4cc3ccb33700c1c966e9523590033322cfb31b833c6
+SIZE (docling_enhanced_onnx-1.0.0.tar.gz) = 22004
diff --git a/textproc/py-docling-enhanced-onnx/pkg-descr b/textproc/py-docling-enhanced-onnx/pkg-descr
new file mode 100644
index 000000000000..f86f05833a59
--- /dev/null
+++ b/textproc/py-docling-enhanced-onnx/pkg-descr
@@ -0,0 +1,4 @@
+Docling Enhanced ONNX provides enhanced Docling AI models with ONNX
+auto-detection and air-gapped support. It enables running Docling models
+in ONNX Runtime format, suitable for offline and air-gapped environments
+where network access is restricted.
diff --git a/textproc/py-docling-enhanced/Makefile b/textproc/py-docling-enhanced/Makefile
new file mode 100644
index 000000000000..438bc6b5f439
--- /dev/null
+++ b/textproc/py-docling-enhanced/Makefile
@@ -0,0 +1,46 @@
+PORTNAME= docling-enhanced
+DISTVERSION= 2.32.0
+CATEGORIES= textproc python
+MASTER_SITES= PYPI
+PKGNAMEPREFIX= ${PYTHON_PKGNAMEPREFIX}
+DISTNAME= ${PORTNAME:S/-/_/}-${DISTVERSION}
+
+MAINTAINER= yuri@FreeBSD.org
+COMMENT= SDK and CLI for parsing PDF, DOCX, HTML, and more into unified format
+WWW= https://github.com/docling-project/docling
+
+LICENSE= MIT
+LICENSE_FILE= ${WRKSRC}/LICENSE
+
+BUILD_DEPENDS= ${PYTHON_PKGNAMEPREFIX}poetry-core>=0:devel/py-poetry-core@${PY_FLAVOR}
+RUN_DEPENDS= ${PYTHON_PKGNAMEPREFIX}beautifulsoup>=0:www/py-beautifulsoup@${PY_FLAVOR} \
+ ${PYTHON_PKGNAMEPREFIX}certifi>=2024.7.4:security/py-certifi@${PY_FLAVOR} \
+ ${PYTHON_PKGNAMEPREFIX}docling-core>=2.26.0:textproc/py-docling-core@${PY_FLAVOR} \
+ ${PYTHON_PKGNAMEPREFIX}docling-ibm-models>=3.4.0:textproc/py-docling-ibm-models@${PY_FLAVOR} \
+ ${PYTHON_PKGNAMEPREFIX}docling-parse>=4.0.0:textproc/py-docling-parse@${PY_FLAVOR} \
+ ${PYTHON_PKGNAMEPREFIX}easyocr>=1.7:graphics/py-easyocr@${PY_FLAVOR} \
+ ${PYTHON_PKGNAMEPREFIX}filetype>=1.2.0:devel/py-filetype@${PY_FLAVOR} \
+ ${PYTHON_PKGNAMEPREFIX}huggingface-hub>=0.23:misc/py-huggingface-hub@${PY_FLAVOR} \
+ ${PYTHON_PKGNAMEPREFIX}lxml>=4.0.0:devel/py-lxml@${PY_FLAVOR} \
+ ${PYTHON_PKGNAMEPREFIX}marko>=2.1.2:textproc/py-marko@${PY_FLAVOR} \
+ ${PYTHON_PKGNAMEPREFIX}openpyxl>=3.1.5:textproc/py-openpyxl@${PY_FLAVOR} \
+ ${PYTHON_PKGNAMEPREFIX}pandas>=2.1.4:math/py-pandas@${PY_FLAVOR} \
+ ${PYTHON_PKGNAMEPREFIX}pillow>=10.0.0:graphics/py-pillow@${PY_FLAVOR} \
+ ${PYTHON_PKGNAMEPREFIX}pluggy>=1.0.0:devel/py-pluggy@${PY_FLAVOR} \
+ ${PYTHON_PKGNAMEPREFIX}pydantic2>=2.0.0:devel/py-pydantic2@${PY_FLAVOR} \
+ ${PYTHON_PKGNAMEPREFIX}pydantic-settings>=2.3.0:devel/py-pydantic-settings@${PY_FLAVOR} \
+ ${PYTHON_PKGNAMEPREFIX}pylatexenc>=2.10:textproc/py-pylatexenc@${PY_FLAVOR} \
+ ${PYTHON_PKGNAMEPREFIX}python-docx>=1.1.2:textproc/py-python-docx@${PY_FLAVOR} \
+ ${PYTHON_PKGNAMEPREFIX}python-pptx>=1.0.2:textproc/py-python-pptx@${PY_FLAVOR} \
+ ${PYTHON_PKGNAMEPREFIX}requests>=2.32.2:www/py-requests@${PY_FLAVOR} \
+ ${PYTHON_PKGNAMEPREFIX}rtree>=1.3.0:devel/py-rtree@${PY_FLAVOR} \
+ ${PYTHON_PKGNAMEPREFIX}scipy>=1.6.0:science/py-scipy@${PY_FLAVOR} \
+ ${PYTHON_PKGNAMEPREFIX}tqdm>=4.65.0:misc/py-tqdm@${PY_FLAVOR} \
+ ${PYTHON_PKGNAMEPREFIX}typer>=0.12.5:devel/py-typer@${PY_FLAVOR}
+
+USES= python
+USE_PYTHON= autoplist concurrent pep517
+
+NO_ARCH= yes
+
+.include <bsd.port.mk>
diff --git a/textproc/py-docling-enhanced/distinfo b/textproc/py-docling-enhanced/distinfo
new file mode 100644
index 000000000000..4ec163318647
--- /dev/null
+++ b/textproc/py-docling-enhanced/distinfo
@@ -0,0 +1,3 @@
+TIMESTAMP = 1783064447
+SHA256 (docling_enhanced-2.32.0.tar.gz) = 8e05c15f02e00b69b2425a7370b1c5b9836748466fc6af3c7d4ca667acc6a995
+SIZE (docling_enhanced-2.32.0.tar.gz) = 128958
diff --git a/textproc/py-docling-enhanced/pkg-descr b/textproc/py-docling-enhanced/pkg-descr
new file mode 100644
index 000000000000..2d610129e5b1
--- /dev/null
+++ b/textproc/py-docling-enhanced/pkg-descr
@@ -0,0 +1,4 @@
+Docling Enhanced is an extended distribution of the Docling document
+conversion SDK and CLI. It parses PDF, DOCX, PPTX, XLSX, HTML, images,
+and other formats into a unified document representation, with additional
+enhanced models and capabilities beyond the standard docling package.
diff --git a/textproc/py-docling-eval/Makefile b/textproc/py-docling-eval/Makefile
new file mode 100644
index 000000000000..c7ad9c5bc171
--- /dev/null
+++ b/textproc/py-docling-eval/Makefile
@@ -0,0 +1,52 @@
+PORTNAME= docling-eval
+DISTVERSION= 1.4.1
+CATEGORIES= textproc python
+MASTER_SITES= PYPI
+PKGNAMEPREFIX= ${PYTHON_PKGNAMEPREFIX}
+DISTNAME= ${PORTNAME:S/-/_/}-${DISTVERSION}
+
+MAINTAINER= yuri@FreeBSD.org
+COMMENT= Evaluation of Docling
+WWW= https://github.com/docling-project/docling-eval
+
+LICENSE= MIT
+LICENSE_FILE= ${WRKSRC}/LICENSE
+
+BUILD_DEPENDS= ${PYTHON_PKGNAMEPREFIX}setuptools>=0:devel/py-setuptools@${PY_FLAVOR} \
+ ${PYTHON_PKGNAMEPREFIX}wheel>=0:devel/py-wheel@${PY_FLAVOR}
+RUN_DEPENDS= ${PYTHON_PKGNAMEPREFIX}apted>=1.0.3:math/py-apted@${PY_FLAVOR} \
+ ${PYTHON_PKGNAMEPREFIX}beautifulsoup>=0:www/py-beautifulsoup@${PY_FLAVOR} \
+ ${PYTHON_PKGNAMEPREFIX}datasets>=3.2.0:misc/py-datasets@${PY_FLAVOR} \
+ ${PYTHON_PKGNAMEPREFIX}distance>=0.1.3:math/py-distance@${PY_FLAVOR} \
+ ${PYTHON_PKGNAMEPREFIX}docling>=2.56.1:textproc/py-docling@${PY_FLAVOR} \
+ ${PYTHON_PKGNAMEPREFIX}docling-core>=2.48.0:textproc/py-docling-core@${PY_FLAVOR} \
+ ${PYTHON_PKGNAMEPREFIX}edit-distance>=1.0.6:math/py-edit-distance@${PY_FLAVOR} \
+ ${PYTHON_PKGNAMEPREFIX}editdistance>0:devel/py-editdistance@${PY_FLAVOR} \
+ ${PYTHON_PKGNAMEPREFIX}evaluate>=0.4.3:misc/py-evaluate@${PY_FLAVOR} \
+ ${PYTHON_PKGNAMEPREFIX}jiwer>=3.1.0:misc/py-jiwer@${PY_FLAVOR} \
+ ${PYTHON_PKGNAMEPREFIX}lxml>=5.3.0:devel/py-lxml@${PY_FLAVOR} \
+ ${PYTHON_PKGNAMEPREFIX}matplotlib>=3.10.0:math/py-matplotlib@${PY_FLAVOR} \
+ ${PYTHON_PKGNAMEPREFIX}nltk>=3.9.1:textproc/py-nltk@${PY_FLAVOR} \
+ ${PYTHON_PKGNAMEPREFIX}openpyxl>=3.1.5:textproc/py-openpyxl@${PY_FLAVOR} \
+ ${PYTHON_PKGNAMEPREFIX}pandas>=2.2.3:math/py-pandas@${PY_FLAVOR} \
+ ${PYTHON_PKGNAMEPREFIX}pillow>=10.3.0:graphics/py-pillow@${PY_FLAVOR} \
+ ${PYTHON_PKGNAMEPREFIX}pyarrow>=20.0.0:databases/py-pyarrow@${PY_FLAVOR} \
+ ${PYTHON_PKGNAMEPREFIX}pycocotools>=2.0.8:devel/py-pycocotools@${PY_FLAVOR} \
+ ${PYTHON_PKGNAMEPREFIX}pydantic2>=2.0.0:devel/py-pydantic2@${PY_FLAVOR} \
+ ${PYTHON_PKGNAMEPREFIX}pypdf2>=3.0.1:graphics/py-pypdf2@${PY_FLAVOR} \
+ ${PYTHON_PKGNAMEPREFIX}reportlab>=4.4.3:print/py-reportlab@${PY_FLAVOR} \
+ ${PYTHON_PKGNAMEPREFIX}scipy>=1.15.3:science/py-scipy@${PY_FLAVOR} \
+ ${PYTHON_PKGNAMEPREFIX}scipy-stubs>=1.15.3.0:science/py-scipy-stubs@${PY_FLAVOR} \
+ ${PYTHON_PKGNAMEPREFIX}tabulate>=0.9.0:devel/py-tabulate@${PY_FLAVOR} \
+ ${PYTHON_PKGNAMEPREFIX}pytorch>=2.5.1:misc/py-pytorch@${PY_FLAVOR} \
+ ${PYTHON_PKGNAMEPREFIX}torchmetrics>=1.6.0:misc/py-torchmetrics@${PY_FLAVOR} \
+ ${PYTHON_PKGNAMEPREFIX}tqdm>=4.67.1:misc/py-tqdm@${PY_FLAVOR} \
+ ${PYTHON_PKGNAMEPREFIX}typer>=0.16.0:devel/py-typer@${PY_FLAVOR} \
+ ${PYTHON_PKGNAMEPREFIX}xmltodict>=0.14.2:devel/py-xmltodict@${PY_FLAVOR}
+
+USES= python
+USE_PYTHON= autoplist concurrent pep517
+
+NO_ARCH= yes
+
+.include <bsd.port.mk>
diff --git a/textproc/py-docling-eval/distinfo b/textproc/py-docling-eval/distinfo
new file mode 100644
index 000000000000..96b17ba77de3
--- /dev/null
+++ b/textproc/py-docling-eval/distinfo
@@ -0,0 +1,3 @@
+TIMESTAMP = 1783064427
+SHA256 (docling_eval-1.4.1.tar.gz) = ba53d8a27358acd70f9f6137cae660fe2a58da19342c965d821d15813b1d02d1
+SIZE (docling_eval-1.4.1.tar.gz) = 278175
diff --git a/textproc/py-docling-eval/files/patch-pyproject.toml b/textproc/py-docling-eval/files/patch-pyproject.toml
new file mode 100644
index 000000000000..ec1dcb03074b
--- /dev/null
+++ b/textproc/py-docling-eval/files/patch-pyproject.toml
@@ -0,0 +1,12 @@
+-- Fix license declaration format for PEP 621 compatibility and remove license-files path not present in distfile.
+--- pyproject.toml.orig 2026-07-09 20:28:24 UTC
++++ pyproject.toml
+@@ -2,7 +2,7 @@ description = "Evaluation of Docling"
+ name = "docling-eval"
+ version = "1.4.1" # DO NOT EDIT, updated automatically
+ description = "Evaluation of Docling"
+-license = "MIT"
++license = {text = "MIT"}
+ keywords= ["docling", "evaluation", "convert", "document", "pdf", "docx", "html", "markdown", "layout model", "segmentation", "table structure", "table former"]
+ readme = "README.md"
+ authors = [
diff --git a/textproc/py-docling-eval/pkg-descr b/textproc/py-docling-eval/pkg-descr
new file mode 100644
index 000000000000..baed505aa3dc
--- /dev/null
+++ b/textproc/py-docling-eval/pkg-descr
@@ -0,0 +1,4 @@
+Docling Eval provides evaluation tooling for the Docling document
+understanding platform. It includes benchmarks, metrics, and test
+suites for assessing the quality and accuracy of document conversion
+and structure recognition outputs.
diff --git a/textproc/py-docling-extractor/Makefile b/textproc/py-docling-extractor/Makefile
new file mode 100644
index 000000000000..4d7da3663ca3
--- /dev/null
+++ b/textproc/py-docling-extractor/Makefile
@@ -0,0 +1,25 @@
+PORTNAME= docling-extractor
+DISTVERSION= 1.0.0
+CATEGORIES= textproc python
+MASTER_SITES= PYPI
+PKGNAMEPREFIX= ${PYTHON_PKGNAMEPREFIX}
+DISTNAME= ${PORTNAME:S/-/_/}-${DISTVERSION}
+
+MAINTAINER= yuri@FreeBSD.org
+COMMENT= Production-grade document extraction with intelligent fallback chain
+WWW= https://github.com/panwarnalini-hub/clinical-doc-pipelines
+
+LICENSE= MIT
+LICENSE_FILE= ${WRKSRC}/LICENSE
+
+BUILD_DEPENDS= ${PYTHON_PKGNAMEPREFIX}setuptools>=0:devel/py-setuptools@${PY_FLAVOR} \
+ ${PYTHON_PKGNAMEPREFIX}wheel>=0:devel/py-wheel@${PY_FLAVOR}
+RUN_DEPENDS= ${PYTHON_PKGNAMEPREFIX}pdfplumber>=0.10.0:graphics/py-pdfplumber@${PY_FLAVOR} \
+ ${PYTHON_PKGNAMEPREFIX}pymupdf>=1.23.0:print/py-PyMuPDF@${PY_FLAVOR}
+
+USES= python
+USE_PYTHON= autoplist concurrent pep517
+
+NO_ARCH= yes
+
+.include <bsd.port.mk>
diff --git a/textproc/py-docling-extractor/distinfo b/textproc/py-docling-extractor/distinfo
new file mode 100644
index 000000000000..efb05a84efdd
--- /dev/null
+++ b/textproc/py-docling-extractor/distinfo
@@ -0,0 +1,3 @@
+TIMESTAMP = 1783064447
+SHA256 (docling_extractor-1.0.0.tar.gz) = 8b92668efd5927452a0d4e62c7bbb6acc7b74504b1a53765eb715120be02c598
+SIZE (docling_extractor-1.0.0.tar.gz) = 13608
diff --git a/textproc/py-docling-extractor/pkg-descr b/textproc/py-docling-extractor/pkg-descr
new file mode 100644
index 000000000000..95bbb3c89467
--- /dev/null
+++ b/textproc/py-docling-extractor/pkg-descr
@@ -0,0 +1,4 @@
+Docling Extractor provides production-grade document extraction with an
+intelligent fallback chain: Docling, PyMuPDF, pdfplumber, and Tesseract.
+It automatically selects the best available extraction backend for each
+document, ensuring robust text extraction across diverse document types.
diff --git a/textproc/py-docling-glm-ocr/Makefile b/textproc/py-docling-glm-ocr/Makefile
new file mode 100644
index 000000000000..d9ddc33136ea
--- /dev/null
+++ b/textproc/py-docling-glm-ocr/Makefile
@@ -0,0 +1,25 @@
+PORTNAME= docling-glm-ocr
+DISTVERSION= 0.5.0
+CATEGORIES= textproc python
+MASTER_SITES= PYPI
+PKGNAMEPREFIX= ${PYTHON_PKGNAMEPREFIX}
+DISTNAME= ${PORTNAME:S/-/_/g}-${DISTVERSION}
+
+MAINTAINER= yuri@FreeBSD.org
+COMMENT= Docling OCR plugin for GLM-OCR
+WWW= https://github.com/DCC-BS/docling-glm-ocr
+
+LICENSE= MIT
+LICENSE_FILE= ${WRKSRC}/LICENSE
+
+BUILD_DEPENDS= ${PYTHON_PKGNAMEPREFIX}hatchling>0:devel/py-hatchling@${PY_FLAVOR}
+RUN_DEPENDS= ${PYTHON_PKGNAMEPREFIX}docling>=2.73:textproc/py-docling@${PY_FLAVOR} \
+ ${PYTHON_PKGNAMEPREFIX}httpx>=0.27:www/py-httpx@${PY_FLAVOR} \
+ ${PYTHON_PKGNAMEPREFIX}pillow>=10.0:graphics/py-pillow@${PY_FLAVOR}
+
+USES= python
+USE_PYTHON= autoplist concurrent pep517
+
+NO_ARCH= yes
+
+.include <bsd.port.mk>
diff --git a/textproc/py-docling-glm-ocr/distinfo b/textproc/py-docling-glm-ocr/distinfo
new file mode 100644
index 000000000000..9bb0a614b385
--- /dev/null
+++ b/textproc/py-docling-glm-ocr/distinfo
@@ -0,0 +1,3 @@
+TIMESTAMP = 1783064427
+SHA256 (docling_glm_ocr-0.5.0.tar.gz) = 5038bbe68b8b0b74e2470b83bf90d8793978eda550d2a0c214aa101830ea5ccc
+SIZE (docling_glm_ocr-0.5.0.tar.gz) = 154942
diff --git a/textproc/py-docling-glm-ocr/pkg-descr b/textproc/py-docling-glm-ocr/pkg-descr
new file mode 100644
index 000000000000..209bae528669
--- /dev/null
+++ b/textproc/py-docling-glm-ocr/pkg-descr
@@ -0,0 +1,3 @@
+Docling GLM-OCR is an OCR plugin for Docling that integrates the GLM-OCR
+model for optical character recognition. It extends Docling's OCR
+capabilities with GLM-based text recognition from document images.
diff --git a/textproc/py-docling-google-ocr/Makefile b/textproc/py-docling-google-ocr/Makefile
new file mode 100644
index 000000000000..07687b4f7bba
--- /dev/null
+++ b/textproc/py-docling-google-ocr/Makefile
@@ -0,0 +1,47 @@
+PORTNAME= docling-google-ocr
+DISTVERSION= 2.13.1
+CATEGORIES= textproc python
+MASTER_SITES= PYPI
+PKGNAMEPREFIX= ${PYTHON_PKGNAMEPREFIX}
+DISTNAME= ${PORTNAME:S/-/_/g}-${DISTVERSION}
+
+MAINTAINER= yuri@FreeBSD.org
+COMMENT= SDK and CLI for parsing PDF, DOCX, HTML, and more into unified format
+WWW= https://github.com/DS4SD/docling
+
+LICENSE= MIT
+LICENSE_FILE= ${WRKSRC}/LICENSE
+
+BUILD_DEPENDS= ${PYTHON_PKGNAMEPREFIX}poetry-core>=0:devel/py-poetry-core@${PY_FLAVOR}
+RUN_DEPENDS= ${PYTHON_PKGNAMEPREFIX}beautifulsoup>=0:www/py-beautifulsoup@${PY_FLAVOR} \
+ ${PYTHON_PKGNAMEPREFIX}certifi>=2024.7.4:security/py-certifi@${PY_FLAVOR} \
+ ${PYTHON_PKGNAMEPREFIX}deepsearch-glm>=1.0.0:textproc/py-deepsearch-glm@${PY_FLAVOR} \
+ ${PYTHON_PKGNAMEPREFIX}docling-core>=2.12.1:textproc/py-docling-core@${PY_FLAVOR} \
+ ${PYTHON_PKGNAMEPREFIX}docling-ibm-models>=3.1.0:textproc/py-docling-ibm-models@${PY_FLAVOR} \
+ ${PYTHON_PKGNAMEPREFIX}docling-parse>=3.0.0:textproc/py-docling-parse@${PY_FLAVOR} \
+ ${PYTHON_PKGNAMEPREFIX}easyocr>=1.7:graphics/py-easyocr@${PY_FLAVOR} \
+ ${PYTHON_PKGNAMEPREFIX}filetype>=1.2.0:devel/py-filetype@${PY_FLAVOR} \
+ ${PYTHON_PKGNAMEPREFIX}google-api-core>=2.13.0:www/py-google-api-core@${PY_FLAVOR} \
+ ${PYTHON_PKGNAMEPREFIX}google-auth>=2.23.4:security/py-google-auth@${PY_FLAVOR} \
+ ${PYTHON_PKGNAMEPREFIX}google-cloud-vision>=3.4.5:www/py-google-cloud-vision@${PY_FLAVOR} \
+ ${PYTHON_PKGNAMEPREFIX}googleapis-common-protos>=1.61.0:devel/py-googleapis-common-protos@${PY_FLAVOR} \
+ ${PYTHON_PKGNAMEPREFIX}huggingface-hub>=0.23:misc/py-huggingface-hub@${PY_FLAVOR} \
+ ${PYTHON_PKGNAMEPREFIX}lxml>=4.0.0:devel/py-lxml@${PY_FLAVOR} \
+ ${PYTHON_PKGNAMEPREFIX}marko>=2.1.2:textproc/py-marko@${PY_FLAVOR} \
+ ${PYTHON_PKGNAMEPREFIX}openpyxl>=3.1.5:textproc/py-openpyxl@${PY_FLAVOR} \
+ ${PYTHON_PKGNAMEPREFIX}pandas>=2.1.4:math/py-pandas@${PY_FLAVOR} \
+ ${PYTHON_PKGNAMEPREFIX}pydantic2>=2.0.0:devel/py-pydantic2@${PY_FLAVOR} \
+ ${PYTHON_PKGNAMEPREFIX}pydantic-settings>=2.3.0:devel/py-pydantic-settings@${PY_FLAVOR} \
+ ${PYTHON_PKGNAMEPREFIX}python-docx>=1.1.2:textproc/py-python-docx@${PY_FLAVOR} \
+ ${PYTHON_PKGNAMEPREFIX}python-pptx>=1.0.2:textproc/py-python-pptx@${PY_FLAVOR} \
+ ${PYTHON_PKGNAMEPREFIX}requests>=2.32.3:www/py-requests@${PY_FLAVOR} \
+ ${PYTHON_PKGNAMEPREFIX}rtree>=1.3.0:devel/py-rtree@${PY_FLAVOR} \
+ ${PYTHON_PKGNAMEPREFIX}scipy>=1.6.0:science/py-scipy@${PY_FLAVOR} \
+ ${PYTHON_PKGNAMEPREFIX}typer>=0.12.5:devel/py-typer@${PY_FLAVOR}
+
+USES= python
+USE_PYTHON= autoplist concurrent pep517
+
+NO_ARCH= yes
+
+.include <bsd.port.mk>
diff --git a/textproc/py-docling-google-ocr/distinfo b/textproc/py-docling-google-ocr/distinfo
new file mode 100644
index 000000000000..e36339ab301c
--- /dev/null
+++ b/textproc/py-docling-google-ocr/distinfo
@@ -0,0 +1,3 @@
+TIMESTAMP = 1783064447
+SHA256 (docling_google_ocr-2.13.1.tar.gz) = 071d2a9fa5545e1a7ac4f7e06ea82e99f3d3d8347f47d81f1f185038e61beabb
+SIZE (docling_google_ocr-2.13.1.tar.gz) = 87841
diff --git a/textproc/py-docling-google-ocr/pkg-descr b/textproc/py-docling-google-ocr/pkg-descr
new file mode 100644
index 000000000000..6ff0b307ad34
--- /dev/null
+++ b/textproc/py-docling-google-ocr/pkg-descr
@@ -0,0 +1,4 @@
+Docling Google OCR integrates Google Cloud Vision OCR into the Docling
+document conversion pipeline. It enables cloud-based optical character
+recognition using Google's OCR services as an alternative to local
+OCR engines.
diff --git a/textproc/py-docling-graph/Makefile b/textproc/py-docling-graph/Makefile
new file mode 100644
index 000000000000..8a7191caa348
--- /dev/null
+++ b/textproc/py-docling-graph/Makefile
@@ -0,0 +1,33 @@
+PORTNAME= docling-graph
*** 2339 LINES SKIPPED ***