summaryrefslogtreecommitdiff
path: root/textproc
diff options
context:
space:
mode:
Diffstat (limited to 'textproc')
-rw-r--r--textproc/Makefile1
-rw-r--r--textproc/feluda/Makefile7
-rw-r--r--textproc/feluda/Makefile.crates13
-rw-r--r--textproc/feluda/distinfo32
-rw-r--r--textproc/feluda/files/patch-Cargo.lock26
-rw-r--r--textproc/feluda/files/patch-Cargo.toml11
-rw-r--r--textproc/go-yq/Makefile5
-rw-r--r--textproc/go-yq/distinfo10
-rw-r--r--textproc/html2xhtml/Makefile6
-rw-r--r--textproc/obsidian/Makefile1
-rw-r--r--textproc/pdjson/Makefile27
-rw-r--r--textproc/pdjson/distinfo3
-rw-r--r--textproc/pdjson/files/patch-Makefile21
-rw-r--r--textproc/pdjson/files/pdjson.pc.in11
-rw-r--r--textproc/pdjson/pkg-descr5
-rw-r--r--textproc/pdjson/pkg-plist4
-rw-r--r--textproc/py-ntc-templates/Makefile4
-rw-r--r--textproc/py-ntc-templates/distinfo6
-rw-r--r--textproc/py-textfsm/Makefile13
-rw-r--r--textproc/py-textfsm/distinfo6
-rw-r--r--textproc/py-textfsm/files/patch-setup.py17
21 files changed, 154 insertions, 75 deletions
diff --git a/textproc/Makefile b/textproc/Makefile
index 9f9508f45f72..8844023e0091 100644
--- a/textproc/Makefile
+++ b/textproc/Makefile
@@ -1228,6 +1228,7 @@
SUBDIR += pdfresurrect
SUBDIR += pdfsandwich
SUBDIR += pdftohtml
+ SUBDIR += pdjson
SUBDIR += pear-File_Fortune
SUBDIR += pear-File_MARC
SUBDIR += pear-Horde_CssMinify
diff --git a/textproc/feluda/Makefile b/textproc/feluda/Makefile
index 040221e33799..aeb0da5aeddf 100644
--- a/textproc/feluda/Makefile
+++ b/textproc/feluda/Makefile
@@ -1,5 +1,6 @@
PORTNAME= feluda
-DISTVERSION= 1.9.7
+DISTVERSIONPREFIX= v
+DISTVERSION= 1.9.8 # Cargo.lock patched: `make patch cargo-crates`
CATEGORIES= textproc
MAINTAINER= nxjoseph@protonmail.com
@@ -16,6 +17,10 @@ USES= cargo localbase ssl
USE_GITHUB= yes
GH_ACCOUNT= anistark
+# OPENSSL_NO_VENDOR needs openssl-src present so I'm using Cargo.lock and Cargo.toml patches:
+# first to not fetch openssl-src tarball and later to remove git2 ossl vendored feature.
+CARGO_ENV= OPENSSL_NO_VENDOR=1
+
PLIST_FILES= bin/${PORTNAME}
.include <bsd.port.mk>
diff --git a/textproc/feluda/Makefile.crates b/textproc/feluda/Makefile.crates
index 899b301d1e96..7c0069c4fbe7 100644
--- a/textproc/feluda/Makefile.crates
+++ b/textproc/feluda/Makefile.crates
@@ -39,7 +39,6 @@ CARGO_CRATES= addr2line-0.24.2 \
colorchoice-1.0.4 \
colored-3.0.0 \
compact_str-0.8.1 \
- core-foundation-0.9.4 \
core-foundation-sys-0.8.7 \
crossbeam-deque-0.8.6 \
crossbeam-epoch-0.9.18 \
@@ -68,8 +67,6 @@ CARGO_CRATES= addr2line-0.24.2 \
figment-0.10.19 \
fnv-1.0.7 \
foldhash-0.1.5 \
- foreign-types-0.3.2 \
- foreign-types-shared-0.1.1 \
form_urlencoded-1.2.1 \
fragile-2.0.1 \
futf-0.1.5 \
@@ -97,7 +94,6 @@ CARGO_CRATES= addr2line-0.24.2 \
httparse-1.10.1 \
hyper-1.6.0 \
hyper-rustls-0.27.7 \
- hyper-tls-0.6.0 \
hyper-util-0.1.16 \
iana-time-zone-0.1.63 \
iana-time-zone-haiku-0.1.2 \
@@ -148,15 +144,12 @@ CARGO_CRATES= addr2line-0.24.2 \
mio-1.0.4 \
mockall-0.13.1 \
mockall_derive-0.13.1 \
- native-tls-0.2.14 \
new_debug_unreachable-1.0.6 \
nu-ansi-term-0.46.0 \
num-traits-0.2.19 \
object-0.36.7 \
once_cell-1.21.3 \
once_cell_polyfill-1.70.1 \
- openssl-0.10.73 \
- openssl-macros-0.1.1 \
openssl-probe-0.1.6 \
openssl-sys-0.9.109 \
option-ext-0.2.0 \
@@ -217,11 +210,8 @@ CARGO_CRATES= addr2line-0.24.2 \
rustversion-1.0.21 \
ryu-1.0.20 \
same-file-1.0.6 \
- schannel-0.1.27 \
scopeguard-1.2.0 \
scraper-0.23.1 \
- security-framework-2.11.1 \
- security-framework-sys-2.14.0 \
selectors-0.26.0 \
semver-1.0.26 \
serde-1.0.219 \
@@ -239,7 +229,7 @@ CARGO_CRATES= addr2line-0.24.2 \
signal-hook-mio-0.2.4 \
signal-hook-registry-1.4.5 \
siphasher-1.0.1 \
- slab-0.4.10 \
+ slab-0.4.11 \
smallvec-1.15.1 \
socket2-0.5.10 \
socket2-0.6.0 \
@@ -271,7 +261,6 @@ CARGO_CRATES= addr2line-0.24.2 \
tinyvec-1.9.0 \
tinyvec_macros-0.1.1 \
tokio-1.46.1 \
- tokio-native-tls-0.3.1 \
tokio-rustls-0.26.2 \
tokio-util-0.7.15 \
toml-0.8.23 \
diff --git a/textproc/feluda/distinfo b/textproc/feluda/distinfo
index ee4d2779b7e2..5bae23fbb929 100644
--- a/textproc/feluda/distinfo
+++ b/textproc/feluda/distinfo
@@ -1,4 +1,4 @@
-TIMESTAMP = 1753857000
+TIMESTAMP = 1756194071
SHA256 (rust/crates/addr2line-0.24.2.crate) = dfbe277e56a376000877090da837660b4427aad530e3028d44e0bffe4f89a1c1
SIZE (rust/crates/addr2line-0.24.2.crate) = 39015
SHA256 (rust/crates/adler2-2.0.1.crate) = 320119579fcad9c21884f5c4861d16174d0e06250625266f50fe6898340abefa
@@ -81,8 +81,6 @@ SHA256 (rust/crates/colored-3.0.0.crate) = fde0e0ec90c9dfb3b4b1a0891a7dcd0e2bffd
SIZE (rust/crates/colored-3.0.0.crate) = 34497
SHA256 (rust/crates/compact_str-0.8.1.crate) = 3b79c4069c6cad78e2e0cdfcbd26275770669fb39fd308a752dc110e83b9af32
SIZE (rust/crates/compact_str-0.8.1.crate) = 71371
-SHA256 (rust/crates/core-foundation-0.9.4.crate) = 91e195e091a93c46f7102ec7818a2aa394e1e1771c3ab4825963fa03e45afb8f
-SIZE (rust/crates/core-foundation-0.9.4.crate) = 27743
SHA256 (rust/crates/core-foundation-sys-0.8.7.crate) = 773648b94d0e5d620f64f280777445740e61fe701025087ec8b57f45c791888b
SIZE (rust/crates/core-foundation-sys-0.8.7.crate) = 37712
SHA256 (rust/crates/crossbeam-deque-0.8.6.crate) = 9dd111b7b7f7d55b72c0a6ae361660ee5853c9af73f70c3c2ef6858b950e2e51
@@ -139,10 +137,6 @@ SHA256 (rust/crates/fnv-1.0.7.crate) = 3f9eec918d3f24069decb9af1554cad7c880e2da2
SIZE (rust/crates/fnv-1.0.7.crate) = 11266
SHA256 (rust/crates/foldhash-0.1.5.crate) = d9c4f5dac5e15c24eb999c26181a6ca40b39fe946cbe4c263c7209467bc83af2
SIZE (rust/crates/foldhash-0.1.5.crate) = 21901
-SHA256 (rust/crates/foreign-types-0.3.2.crate) = f6f339eb8adc052cd2ca78910fda869aefa38d22d5cb648e6485e4d3fc06f3b1
-SIZE (rust/crates/foreign-types-0.3.2.crate) = 7504
-SHA256 (rust/crates/foreign-types-shared-0.1.1.crate) = 00b0228411908ca8685dba7fc2cdd70ec9990a6e753e89b6ac91a84c40fbaf4b
-SIZE (rust/crates/foreign-types-shared-0.1.1.crate) = 5672
SHA256 (rust/crates/form_urlencoded-1.2.1.crate) = e13624c2627564efccf4934284bdd98cbaa14e79b0b5a141218e507b3a823456
SIZE (rust/crates/form_urlencoded-1.2.1.crate) = 8969
SHA256 (rust/crates/fragile-2.0.1.crate) = 28dd6caf6059519a65843af8fe2a3ae298b14b80179855aeb4adc2c1934ee619
@@ -197,8 +191,6 @@ SHA256 (rust/crates/hyper-1.6.0.crate) = cc2b571658e38e0c01b1fdca3bbbe93c00d3d71
SIZE (rust/crates/hyper-1.6.0.crate) = 153923
SHA256 (rust/crates/hyper-rustls-0.27.7.crate) = e3c93eb611681b207e1fe55d5a71ecf91572ec8a6705cdb6857f7d8d5242cf58
SIZE (rust/crates/hyper-rustls-0.27.7.crate) = 35435
-SHA256 (rust/crates/hyper-tls-0.6.0.crate) = 70206fc6890eaca9fde8a0bf71caa2ddfc9fe045ac9e5c70df101a7dbde866e0
-SIZE (rust/crates/hyper-tls-0.6.0.crate) = 15052
SHA256 (rust/crates/hyper-util-0.1.16.crate) = 8d9b05277c7e8da2c93a568989bb6207bef0112e8d17df7a6eda4a3cf143bc5e
SIZE (rust/crates/hyper-util-0.1.16.crate) = 101184
SHA256 (rust/crates/iana-time-zone-0.1.63.crate) = b0c919e5debc312ad217002b8048a17b7d83f80703865bbfcfebb0458b0b27d8
@@ -299,8 +291,6 @@ SHA256 (rust/crates/mockall-0.13.1.crate) = 39a6bfcc6c8c7eed5ee98b9c3e33adc72605
SIZE (rust/crates/mockall-0.13.1.crate) = 22825
SHA256 (rust/crates/mockall_derive-0.13.1.crate) = 25ca3004c2efe9011bd4e461bd8256445052b9615405b4f7ea43fc8ca5c20898
SIZE (rust/crates/mockall_derive-0.13.1.crate) = 47822
-SHA256 (rust/crates/native-tls-0.2.14.crate) = 87de3442987e9dbec73158d5c715e7ad9072fda936bb03d19d7fa10e00520f0e
-SIZE (rust/crates/native-tls-0.2.14.crate) = 29385
SHA256 (rust/crates/new_debug_unreachable-1.0.6.crate) = 650eef8c711430f1a879fdd01d4745a7deea475becfb90269c06775983bbf086
SIZE (rust/crates/new_debug_unreachable-1.0.6.crate) = 2582
SHA256 (rust/crates/nu-ansi-term-0.46.0.crate) = 77a8165726e8236064dbb45459242600304b42a5ea24ee2948e18e023bf7ba84
@@ -313,10 +303,6 @@ SHA256 (rust/crates/once_cell-1.21.3.crate) = 42f5e15c9953c5e4ccceeb2e7382a71648
SIZE (rust/crates/once_cell-1.21.3.crate) = 34534
SHA256 (rust/crates/once_cell_polyfill-1.70.1.crate) = a4895175b425cb1f87721b59f0f286c2092bd4af812243672510e1ac53e2e0ad
SIZE (rust/crates/once_cell_polyfill-1.70.1.crate) = 7510
-SHA256 (rust/crates/openssl-0.10.73.crate) = 8505734d46c8ab1e19a1dce3aef597ad87dcb4c37e7188231769bd6bd51cebf8
-SIZE (rust/crates/openssl-0.10.73.crate) = 283994
-SHA256 (rust/crates/openssl-macros-0.1.1.crate) = a948666b637a0f465e8564c73e89d4dde00d72d4d473cc972f390fc3dcee7d9c
-SIZE (rust/crates/openssl-macros-0.1.1.crate) = 5601
SHA256 (rust/crates/openssl-probe-0.1.6.crate) = d05e27ee213611ffe7d6348b942e8f942b37114c00cc03cec254295a4a17852e
SIZE (rust/crates/openssl-probe-0.1.6.crate) = 8128
SHA256 (rust/crates/openssl-sys-0.9.109.crate) = 90096e2e47630d78b7d1c20952dc621f957103f8bc2c8359ec81290d75238571
@@ -437,16 +423,10 @@ SHA256 (rust/crates/ryu-1.0.20.crate) = 28d3b2b1366ec20994f1fd18c3c594f05c5dd4bc
SIZE (rust/crates/ryu-1.0.20.crate) = 48738
SHA256 (rust/crates/same-file-1.0.6.crate) = 93fc1dc3aaa9bfed95e02e6eadabb4baf7e3078b0bd1b4d7b6b0b68378900502
SIZE (rust/crates/same-file-1.0.6.crate) = 10183
-SHA256 (rust/crates/schannel-0.1.27.crate) = 1f29ebaa345f945cec9fbbc532eb307f0fdad8161f281b6369539c8d84876b3d
-SIZE (rust/crates/schannel-0.1.27.crate) = 42772
SHA256 (rust/crates/scopeguard-1.2.0.crate) = 94143f37725109f92c262ed2cf5e59bce7498c01bcc1502d7b9afe439a4e9f49
SIZE (rust/crates/scopeguard-1.2.0.crate) = 11619
SHA256 (rust/crates/scraper-0.23.1.crate) = 527e65d9d888567588db4c12da1087598d0f6f8b346cc2c5abc91f05fc2dffe2
SIZE (rust/crates/scraper-0.23.1.crate) = 24157
-SHA256 (rust/crates/security-framework-2.11.1.crate) = 897b2245f0b511c87893af39b033e5ca9cce68824c4d7e7630b5a1d339658d02
-SIZE (rust/crates/security-framework-2.11.1.crate) = 80188
-SHA256 (rust/crates/security-framework-sys-2.14.0.crate) = 49db231d56a190491cb4aeda9527f1ad45345af50b0851622a7adb8c03b01c32
-SIZE (rust/crates/security-framework-sys-2.14.0.crate) = 20537
SHA256 (rust/crates/selectors-0.26.0.crate) = fd568a4c9bb598e291a08244a5c1f5a8a6650bee243b5b0f8dbb3d9cc1d87fe8
SIZE (rust/crates/selectors-0.26.0.crate) = 64329
SHA256 (rust/crates/semver-1.0.26.crate) = 56e6fa9c48d24d85fb3de5ad847117517440f6beceb7798af16b4a87d616b8d0
@@ -481,8 +461,8 @@ SHA256 (rust/crates/signal-hook-registry-1.4.5.crate) = 9203b8055f63a2a00e2f593b
SIZE (rust/crates/signal-hook-registry-1.4.5.crate) = 19004
SHA256 (rust/crates/siphasher-1.0.1.crate) = 56199f7ddabf13fe5074ce809e7d3f42b42ae711800501b5b16ea82ad029c39d
SIZE (rust/crates/siphasher-1.0.1.crate) = 10351
-SHA256 (rust/crates/slab-0.4.10.crate) = 04dc19736151f35336d325007ac991178d504a119863a2fcb3758cdb5e52c50d
-SIZE (rust/crates/slab-0.4.10.crate) = 17810
+SHA256 (rust/crates/slab-0.4.11.crate) = 7a2ae44ef20feb57a68b23d846850f861394c2e02dc425a50098ae8c90267589
+SIZE (rust/crates/slab-0.4.11.crate) = 18549
SHA256 (rust/crates/smallvec-1.15.1.crate) = 67b1b7a3b5fe4f1376887184045fcf45c69e92af734b7aaddc05fb777b6fbd03
SIZE (rust/crates/smallvec-1.15.1.crate) = 38116
SHA256 (rust/crates/socket2-0.5.10.crate) = e22376abed350d73dd1cd119b57ffccad95b4e585a7cda43e286245ce23c0678
@@ -545,8 +525,6 @@ SHA256 (rust/crates/tinyvec_macros-0.1.1.crate) = 1f3ccbac311fea05f86f61904b462b
SIZE (rust/crates/tinyvec_macros-0.1.1.crate) = 5865
SHA256 (rust/crates/tokio-1.46.1.crate) = 0cc3a2344dafbe23a245241fe8b09735b521110d30fcefbbd5feb1797ca35d17
SIZE (rust/crates/tokio-1.46.1.crate) = 823632
-SHA256 (rust/crates/tokio-native-tls-0.3.1.crate) = bbae76ab933c85776efabc971569dd6119c580d8f5d448769dec1764bf796ef2
-SIZE (rust/crates/tokio-native-tls-0.3.1.crate) = 20676
SHA256 (rust/crates/tokio-rustls-0.26.2.crate) = 8e727b36a1a0e8b74c376ac2211e40c2c8af09fb4013c60d910495810f008e9b
SIZE (rust/crates/tokio-rustls-0.26.2.crate) = 31655
SHA256 (rust/crates/tokio-util-0.7.15.crate) = 66a539a9ad6d5d281510d5bd368c973d636c02dbf8a67300bfb6b950696ad7df
@@ -731,5 +709,5 @@ SHA256 (rust/crates/zerovec-0.11.2.crate) = 4a05eb080e015ba39cc9e23bbe5e7fb04d5f
SIZE (rust/crates/zerovec-0.11.2.crate) = 124500
SHA256 (rust/crates/zerovec-derive-0.11.1.crate) = 5b96237efa0c878c64bd89c436f661be4e46b2f3eff1ebb976f7ef2321d2f58f
SIZE (rust/crates/zerovec-derive-0.11.1.crate) = 21294
-SHA256 (anistark-feluda-1.9.7_GH0.tar.gz) = 31afcdd2a822ebd74bca98fc9d0f3b63e3b36ffd6a7497040dac37a00e55aefc
-SIZE (anistark-feluda-1.9.7_GH0.tar.gz) = 97271
+SHA256 (anistark-feluda-v1.9.8_GH0.tar.gz) = cb512ea32a3973b17a86e5c4c88bf5ba70f8e6cddda6a697172522e87b691070
+SIZE (anistark-feluda-v1.9.8_GH0.tar.gz) = 98501
diff --git a/textproc/feluda/files/patch-Cargo.lock b/textproc/feluda/files/patch-Cargo.lock
new file mode 100644
index 000000000000..27c7d76034c4
--- /dev/null
+++ b/textproc/feluda/files/patch-Cargo.lock
@@ -0,0 +1,26 @@
+--- Cargo.lock.orig 2025-08-21 11:42:16 UTC
++++ Cargo.lock
+@@ -1504,15 +1504,6 @@ checksum = "d05e27ee213611ffe7d6348b942e8f942b37114c00
+ checksum = "d05e27ee213611ffe7d6348b942e8f942b37114c00cc03cec254295a4a17852e"
+
+ [[package]]
+-name = "openssl-src"
+-version = "300.5.2+3.5.2"
+-source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "d270b79e2926f5150189d475bc7e9d2c69f9c4697b185fa917d5a32b792d21b4"
+-dependencies = [
+- "cc",
+-]
+-
+-[[package]]
+ name = "openssl-sys"
+ version = "0.9.109"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+@@ -1520,7 +1511,6 @@ dependencies = [
+ dependencies = [
+ "cc",
+ "libc",
+- "openssl-src",
+ "pkg-config",
+ "vcpkg",
+ ]
diff --git a/textproc/feluda/files/patch-Cargo.toml b/textproc/feluda/files/patch-Cargo.toml
new file mode 100644
index 000000000000..44c9c773285b
--- /dev/null
+++ b/textproc/feluda/files/patch-Cargo.toml
@@ -0,0 +1,11 @@
+--- Cargo.toml.orig 2025-08-21 11:42:16 UTC
++++ Cargo.toml
+@@ -43,7 +43,7 @@ chrono = { version = "0.4", features = ["serde"] }
+ tracing = { version = "0.1.40", features = ["attributes"] }
+ tracing-subscriber = { version = "0.3.18", features = ["env-filter"] }
+ chrono = { version = "0.4", features = ["serde"] }
+-git2 = { version = "0.20.2", features = ["vendored-libgit2", "vendored-openssl"] }
++git2 = { version = "0.20.2", features = ["vendored-libgit2"] }
+ tempfile = "3.20.0"
+ dirs = "6.0.0"
+
diff --git a/textproc/go-yq/Makefile b/textproc/go-yq/Makefile
index 19294523b0d8..3d7940d4e52f 100644
--- a/textproc/go-yq/Makefile
+++ b/textproc/go-yq/Makefile
@@ -1,7 +1,6 @@
PORTNAME= go-yq
DISTVERSIONPREFIX= v
-DISTVERSION= 4.45.4
-PORTREVISION= 2
+DISTVERSION= 4.47.1
CATEGORIES= textproc
MAINTAINER= timp87@gmail.com
@@ -11,7 +10,7 @@ WWW= https://github.com/mikefarah/yq
LICENSE= MIT
LICENSE_FILE= ${WRKSRC}/LICENSE
-USES= go:1.24,modules
+USES= go:modules
GO_MODULE= github.com/mikefarah/yq/v4
GO_TARGET= .:yq
diff --git a/textproc/go-yq/distinfo b/textproc/go-yq/distinfo
index f6a19e4e8f38..c2f56ba45655 100644
--- a/textproc/go-yq/distinfo
+++ b/textproc/go-yq/distinfo
@@ -1,5 +1,5 @@
-TIMESTAMP = 1750777412
-SHA256 (go/textproc_go-yq/go-yq-v4.45.4/v4.45.4.mod) = 3828ced67e69ab15e357b5d5d065a4d1b5b4fede629b646c0699b6820c564ffa
-SIZE (go/textproc_go-yq/go-yq-v4.45.4/v4.45.4.mod) = 982
-SHA256 (go/textproc_go-yq/go-yq-v4.45.4/v4.45.4.zip) = dc3ddd7f4ad66e98d26e5deb8826c95fd4d22f1e11989cd3690ddd93780d3fca
-SIZE (go/textproc_go-yq/go-yq-v4.45.4/v4.45.4.zip) = 456199
+TIMESTAMP = 1756457073
+SHA256 (go/textproc_go-yq/go-yq-v4.47.1/v4.47.1.mod) = f89a8564b46efdf0ff77835df9392f1fef423bc6b904dd1f79d385fb54b0376d
+SIZE (go/textproc_go-yq/go-yq-v4.47.1/v4.47.1.mod) = 1015
+SHA256 (go/textproc_go-yq/go-yq-v4.47.1/v4.47.1.zip) = e0c57fe2e4965301ef42159e0149f1e814eb5c0cdd4982b68e0a962ff6865498
+SIZE (go/textproc_go-yq/go-yq-v4.47.1/v4.47.1.zip) = 484080
diff --git a/textproc/html2xhtml/Makefile b/textproc/html2xhtml/Makefile
index 21a72fd24638..0961bc88cea4 100644
--- a/textproc/html2xhtml/Makefile
+++ b/textproc/html2xhtml/Makefile
@@ -1,5 +1,5 @@
PORTNAME= html2xhtml
-PORTVERSION= 1.4
+DISTVERSION= 1.4
CATEGORIES= textproc
MASTER_SITES= http://www.it.uc3m.es/jaf/html2xhtml/downloads/
@@ -8,10 +8,10 @@ COMMENT= Convert HTML to XHTML
WWW= https://www.it.uc3m.es/jaf/html2xhtml
LICENSE= GPLv2
+LICENSE_FILE= ${WRKSRC}/COPYING
-GNU_CONFIGURE= yes
-GNU_CONFIGURE_MANPREFIX=${PREFIX}/share
USES= iconv
+GNU_CONFIGURE= yes
CONFLICTS_INSTALL= p5-HTML-HTML5-Parser p5-XML-Driver-HTML # bin/html2xhtml
diff --git a/textproc/obsidian/Makefile b/textproc/obsidian/Makefile
index 4de716b9b8d7..cf9c1c5d8164 100644
--- a/textproc/obsidian/Makefile
+++ b/textproc/obsidian/Makefile
@@ -8,6 +8,7 @@
PORTNAME= obsidian
PORTVERSION= 1.9.10
+PORTREVISION= 1
CATEGORIES= textproc
# Icon is taken from the Nix build recipe
# https://github.com/NixOS/nixpkgs/blob/de5448dab588ad41aef40f8c7c0c230981656698/pkgs/applications/misc/obsidian/default.nix#L31-L34
diff --git a/textproc/pdjson/Makefile b/textproc/pdjson/Makefile
new file mode 100644
index 000000000000..087c1e6d1a8d
--- /dev/null
+++ b/textproc/pdjson/Makefile
@@ -0,0 +1,27 @@
+PORTNAME= pdjson
+DISTVERSION= g20250825
+CATEGORIES= textproc
+
+MAINTAINER= nsonack@herrhotzenplotz.de
+COMMENT= Public Domain JSON Parser Library for C
+
+LICENSE= UNLICENSE
+LICENSE_FILE= ${WRKSRC}/UNLICENSE
+
+USE_GITHUB= yes
+GH_ACCOUNT= skeeto
+GH_TAGNAME= 78fe04b820dc8817f540bdd87fb22887e0ef3981
+USE_LDCONFIG= yes
+
+TEST_TARGET= check
+
+SUB_FILES= pdjson.pc
+SUB_LIST= DISTVERSION=${DISTVERSION}
+
+do-install:
+ ${INSTALL_LIB} ${WRKSRC}/libpdjson.so ${STAGEDIR}${LOCALBASE}/lib/libpdjson.so.0
+ ${RLN} ${STAGEDIR}${LOCALBASE}/lib/libpdjson.so.0 ${STAGEDIR}${LOCALBASE}/lib/libpdjson.so
+ ${INSTALL} ${WRKSRC}/pdjson.h ${STAGEDIR}${LOCALBASE}/include
+ ${INSTALL_DATA} ${WRKDIR}/pdjson.pc ${STAGEDIR}${LOCALBASE}/libdata/pkgconfig
+
+.include <bsd.port.mk>
diff --git a/textproc/pdjson/distinfo b/textproc/pdjson/distinfo
new file mode 100644
index 000000000000..b457f5012f19
--- /dev/null
+++ b/textproc/pdjson/distinfo
@@ -0,0 +1,3 @@
+TIMESTAMP = 1756138081
+SHA256 (skeeto-pdjson-g20250825-78fe04b820dc8817f540bdd87fb22887e0ef3981_GH0.tar.gz) = e6bf6a90e65736faa5cfa6641a1f3278b577504d63f7fd2bf6b1454d94fa223c
+SIZE (skeeto-pdjson-g20250825-78fe04b820dc8817f540bdd87fb22887e0ef3981_GH0.tar.gz) = 11698
diff --git a/textproc/pdjson/files/patch-Makefile b/textproc/pdjson/files/patch-Makefile
new file mode 100644
index 000000000000..bfe7b015e15f
--- /dev/null
+++ b/textproc/pdjson/files/patch-Makefile
@@ -0,0 +1,21 @@
+--- Makefile.orig 2024-02-22 11:12:52 UTC
++++ Makefile
+@@ -1,8 +1,8 @@
+ .POSIX:
+-CC = cc
+-CFLAGS = -std=c99 -pedantic -Wall -Wextra -Wno-missing-field-initializers
++CC ?= cc
++CFLAGS += -std=c99 -pedantic -Wall -Wextra -Wno-missing-field-initializers -fPIC
+
+-all: tests/pretty tests/stream tests/tests
++all: libpdjson.so tests/pretty tests/stream tests/tests
+
+ tests/pretty: tests/pretty.o pdjson.o
+ $(CC) $(LDFLAGS) -o $@ tests/pretty.o pdjson.o $(LDLIBS)
+@@ -28,3 +28,6 @@ clean:
+
+ .c.o:
+ $(CC) -c $(CFLAGS) -o $@ $<
++
++libpdjson.so: pdjson.o
++ $(CC) -shared -Wl,-soname=libpdjson.so.0 -o libpdjson.so pdjson.o
diff --git a/textproc/pdjson/files/pdjson.pc.in b/textproc/pdjson/files/pdjson.pc.in
new file mode 100644
index 000000000000..5feb5f556ec3
--- /dev/null
+++ b/textproc/pdjson/files/pdjson.pc.in
@@ -0,0 +1,11 @@
+prefix=%%PREFIX%%
+libdir=${prefix}/lib
+includedir=${prefix}/include
+
+Name: pdjson
+Version: %%DISTVERSION%%
+Description: Public Domain JSON parser
+URL: https://github.com/skeeto/pdjson
+Libs: -L${libdir} -lpdjson
+Cflags: -I${includedir}
+
diff --git a/textproc/pdjson/pkg-descr b/textproc/pdjson/pkg-descr
new file mode 100644
index 000000000000..9443bb133061
--- /dev/null
+++ b/textproc/pdjson/pkg-descr
@@ -0,0 +1,5 @@
+A public domain JSON parser focused on correctness, ANSI C99
+compliance, full Unicode (UTF-8) support, minimal memory footprint,
+and a simple API. As a streaming API, arbitrary large JSON could
+be processed with a small amount of memory (the size of the largest
+string in the JSON).
diff --git a/textproc/pdjson/pkg-plist b/textproc/pdjson/pkg-plist
new file mode 100644
index 000000000000..98c00cb58daa
--- /dev/null
+++ b/textproc/pdjson/pkg-plist
@@ -0,0 +1,4 @@
+include/pdjson.h
+lib/libpdjson.so
+lib/libpdjson.so.0
+libdata/pkgconfig/pdjson.pc
diff --git a/textproc/py-ntc-templates/Makefile b/textproc/py-ntc-templates/Makefile
index bd7a262dcf05..92590d63ce14 100644
--- a/textproc/py-ntc-templates/Makefile
+++ b/textproc/py-ntc-templates/Makefile
@@ -1,6 +1,6 @@
PORTNAME= ntc-templates
DISTVERSIONPREFIX= v
-DISTVERSION= 7.9.0
+DISTVERSION= 8.0.0
CATEGORIES= textproc net-mgmt python
PKGNAMEPREFIX= ${PYTHON_PKGNAMEPREFIX}
@@ -12,7 +12,7 @@ LICENSE= APACHE20
LICENSE_FILE= ${WRKSRC}/LICENSE
BUILD_DEPENDS= ${PYTHON_PKGNAMEPREFIX}poetry-core>=1.0.0:devel/py-poetry-core@${PY_FLAVOR}
-RUN_DEPENDS= ${PYTHON_PKGNAMEPREFIX}textfsm>=1.1.0<2.0.0:textproc/py-textfsm@${PY_FLAVOR}
+RUN_DEPENDS= ${PYTHON_PKGNAMEPREFIX}textfsm>=1.1.0:textproc/py-textfsm@${PY_FLAVOR}
TEST_DEPENDS= ${PYTHON_PKGNAMEPREFIX}invoke>0:devel/py-invoke@${PY_FLAVOR} \
${PYTHON_PKGNAMEPREFIX}ruamel.yaml>0:devel/py-ruamel.yaml@${PY_FLAVOR} \
${PYTHON_PKGNAMEPREFIX}toml>0:textproc/py-toml@${PY_FLAVOR} \
diff --git a/textproc/py-ntc-templates/distinfo b/textproc/py-ntc-templates/distinfo
index 4ad17d3d12a2..584e5730545e 100644
--- a/textproc/py-ntc-templates/distinfo
+++ b/textproc/py-ntc-templates/distinfo
@@ -1,3 +1,3 @@
-TIMESTAMP = 1747893176
-SHA256 (networktocode-ntc-templates-v7.9.0_GH0.tar.gz) = 855237d5a554e53b9158320733e6b33e228c768b3993bd6683ee2813808d4c12
-SIZE (networktocode-ntc-templates-v7.9.0_GH0.tar.gz) = 1607690
+TIMESTAMP = 1756398279
+SHA256 (networktocode-ntc-templates-v8.0.0_GH0.tar.gz) = 0c3c2a9a5aaccbcc77b50038401d523bf54871c949f59ade21f922c057c13873
+SIZE (networktocode-ntc-templates-v8.0.0_GH0.tar.gz) = 1634105
diff --git a/textproc/py-textfsm/Makefile b/textproc/py-textfsm/Makefile
index 5706a623f89c..afd91ce4791b 100644
--- a/textproc/py-textfsm/Makefile
+++ b/textproc/py-textfsm/Makefile
@@ -1,6 +1,5 @@
PORTNAME= textfsm
-DISTVERSION= 1.1.3
-PORTREVISION= 2
+DISTVERSION= 2.1.0
CATEGORIES= textproc python
MASTER_SITES= PYPI
PKGNAMEPREFIX= ${PYTHON_PKGNAMEPREFIX}
@@ -12,13 +11,13 @@ WWW= https://github.com/google/textfsm
LICENSE= APACHE20
LICENSE_FILE= ${WRKSRC}/COPYING
-BUILD_DEPENDS= ${PYTHON_PKGNAMEPREFIX}six>0:devel/py-six@${PY_FLAVOR}
-RUN_DEPENDS= ${PYTHON_PKGNAMEPREFIX}future>0:devel/py-future@${PY_FLAVOR} \
- ${PYTHON_PKGNAMEPREFIX}six>0:devel/py-six@${PY_FLAVOR}
-TEST_DEPENDS= ${PYTHON_PKGNAMEPREFIX}pytest>0:devel/py-pytest@${PY_FLAVOR}
+BUILD_DEPENDS= ${PY_SETUPTOOLS} \
+ ${PYTHON_PKGNAMEPREFIX}wheel>0:devel/py-wheel@${PY_FLAVOR}
USES= python
-USE_PYTHON= autoplist concurrent distutils pytest
+USE_PYTHON= autoplist concurrent pep517 pytest
+
+TEST_ENV= PYTHONPATH=${STAGEDIR}${PYTHONPREFIX_SITELIBDIR}
NO_ARCH= yes
diff --git a/textproc/py-textfsm/distinfo b/textproc/py-textfsm/distinfo
index 08362d09108e..d23dd1819785 100644
--- a/textproc/py-textfsm/distinfo
+++ b/textproc/py-textfsm/distinfo
@@ -1,3 +1,3 @@
-TIMESTAMP = 1686207535
-SHA256 (textfsm-1.1.3.tar.gz) = 577ef278a9237f5341ae9b682947cefa4a2c1b24dbe486f94f2c95addc6504b5
-SIZE (textfsm-1.1.3.tar.gz) = 55454
+TIMESTAMP = 1756398504
+SHA256 (textfsm-2.1.0.tar.gz) = 45c18ff2b7c90163dfdff7e20d3f482514cc7aac26bc2547744e79dfa761e458
+SIZE (textfsm-2.1.0.tar.gz) = 55486
diff --git a/textproc/py-textfsm/files/patch-setup.py b/textproc/py-textfsm/files/patch-setup.py
index e7a7c499d537..7b632bca1b43 100644
--- a/textproc/py-textfsm/files/patch-setup.py
+++ b/textproc/py-textfsm/files/patch-setup.py
@@ -1,13 +1,12 @@
Remove "testdata" directory from installation. It is only required for the
testsuite.
---- setup.py.orig 2019-11-26 11:17:07 UTC
+--- setup.py.orig 2025-03-21 04:48:22 UTC
+++ setup.py
-@@ -52,7 +52,6 @@ setup(name='textfsm',
- ]
- },
- include_package_data=True,
-- package_data={'textfsm': ['../testdata/*']},
- install_requires=['six', 'future'],
- setup_requires=['pytest-runner'],
- tests_require=['pytest'])
+@@ -50,6 +50,4 @@ setup(
+ ],
+ packages=['textfsm'],
+ entry_points={'console_scripts': ['textfsm=textfsm.parser:main']},
+- include_package_data=True,
+- package_data={'textfsm': ['../testdata/*']},
+ )