git: 868b6deef616 - main - textproc/py-*docling*: new ports: 38 Docling ports for document manipulation

From: Yuri Victorovich <yuri_at_FreeBSD.org>
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 ***