summaryrefslogtreecommitdiff
path: root/dns
diff options
context:
space:
mode:
Diffstat (limited to 'dns')
-rw-r--r--dns/Makefile1
-rw-r--r--dns/bind9-devel/Makefile2
-rw-r--r--dns/bind918/Makefile2
-rw-r--r--dns/bind920/Makefile2
-rw-r--r--dns/dnscap/Makefile6
-rw-r--r--dns/dnscap/distinfo6
-rw-r--r--dns/dnscap/files/patch-Makefile.am4
-rw-r--r--dns/dnscap/files/patch-configure.ac10
-rw-r--r--dns/dnsmasq/Makefile2
-rw-r--r--dns/dnsmasq/files/patch-src_util.c73
-rw-r--r--dns/opendnssec2/Makefile1
-rw-r--r--dns/p5-Zonemaster-Backend/Makefile2
-rw-r--r--dns/p5-Zonemaster-Backend/distinfo6
-rw-r--r--dns/p5-Zonemaster-Backend/pkg-plist3
-rw-r--r--dns/p5-Zonemaster-CLI/Makefile2
-rw-r--r--dns/p5-Zonemaster-CLI/distinfo6
-rw-r--r--dns/p5-Zonemaster-CLI/pkg-plist2
-rw-r--r--dns/p5-Zonemaster-Engine/Makefile2
-rw-r--r--dns/p5-Zonemaster-Engine/distinfo6
-rw-r--r--dns/p5-Zonemaster-LDNS/Makefile2
-rw-r--r--dns/p5-Zonemaster-LDNS/distinfo6
-rw-r--r--dns/pear-Net_DNS21/Makefile2
-rw-r--r--dns/py-publicsuffixlist/Makefile2
-rw-r--r--dns/py-publicsuffixlist/distinfo6
-rw-r--r--dns/rubygem-resolv/Makefile2
-rw-r--r--dns/rubygem-resolv/distinfo6
-rw-r--r--dns/tldx/Makefile20
-rw-r--r--dns/tldx/distinfo5
-rw-r--r--dns/tldx/pkg-descr10
29 files changed, 156 insertions, 43 deletions
diff --git a/dns/Makefile b/dns/Makefile
index 905cf18e2c35..6de9331776a7 100644
--- a/dns/Makefile
+++ b/dns/Makefile
@@ -228,6 +228,7 @@
SUBDIR += scavenge
SUBDIR += sleuth
SUBDIR += subfinder
+ SUBDIR += tldx
SUBDIR += totd
SUBDIR += udns
SUBDIR += unbound
diff --git a/dns/bind9-devel/Makefile b/dns/bind9-devel/Makefile
index 3d15cab52ec7..590f11be4ec2 100644
--- a/dns/bind9-devel/Makefile
+++ b/dns/bind9-devel/Makefile
@@ -8,7 +8,7 @@ PORTREVISION= 0
.else
# XXX: correct version
# dns/bind9xx here
-PORTREVISION= 0
+PORTREVISION= 1
.endif
CATEGORIES= dns net
MASTER_SITES= ISC/bind9/${DISTVERSION}
diff --git a/dns/bind918/Makefile b/dns/bind918/Makefile
index 6372aeb31964..05db381e20b3 100644
--- a/dns/bind918/Makefile
+++ b/dns/bind918/Makefile
@@ -2,7 +2,7 @@
PORTNAME= bind
DISTVERSION= 9.18.37
-PORTREVISION= 0
+PORTREVISION= 1
CATEGORIES= dns net
MASTER_SITES= ISC/bind9/${DISTVERSION}
PKGNAMESUFFIX= 918
diff --git a/dns/bind920/Makefile b/dns/bind920/Makefile
index 0255d13cec36..31d46408eaeb 100644
--- a/dns/bind920/Makefile
+++ b/dns/bind920/Makefile
@@ -8,7 +8,7 @@ PORTREVISION= 0
.else
# XXX: correct version
# dns/bind920 here
-PORTREVISION= 0
+PORTREVISION= 1
.endif
CATEGORIES= dns net
MASTER_SITES= ISC/bind9/${DISTVERSION}
diff --git a/dns/dnscap/Makefile b/dns/dnscap/Makefile
index e5f547436002..f86d51774e3b 100644
--- a/dns/dnscap/Makefile
+++ b/dns/dnscap/Makefile
@@ -1,5 +1,5 @@
PORTNAME= dnscap
-PORTVERSION= 2.3.1
+PORTVERSION= 2.4.1
PORTEPOCH= 1
CATEGORIES= dns
MASTER_SITES= https://www.dns-oarc.net/files/dnscap/ \
@@ -13,7 +13,9 @@ WWW= https://www.dns-oarc.net/tools/dnscap \
LICENSE= BSD3CLAUSE
LICENSE_FILE= ${WRKSRC}/LICENSE
-LIB_DEPENDS= libldns.so:dns/ldns
+LIB_DEPENDS= libldns.so:dns/ldns \
+ liblz4.so:archivers/liblz4 \
+ libzstd.so:archivers/zstd
USES= autoreconf libtool localbase pkgconfig ssl
diff --git a/dns/dnscap/distinfo b/dns/dnscap/distinfo
index ba3294b4f430..3c89b96c46c4 100644
--- a/dns/dnscap/distinfo
+++ b/dns/dnscap/distinfo
@@ -1,3 +1,3 @@
-TIMESTAMP = 1745936030
-SHA256 (dnscap-2.3.1.tar.gz) = 012226ddc666d78bf225ef1feeb7b106be94facce33c1c5e48c229735fecf0a1
-SIZE (dnscap-2.3.1.tar.gz) = 788252
+TIMESTAMP = 1751208128
+SHA256 (dnscap-2.4.1.tar.gz) = 524e1883bd9115a669d80fb2a0a0e596ce681fd5fbec39fa5240b86b085837e4
+SIZE (dnscap-2.4.1.tar.gz) = 835899
diff --git a/dns/dnscap/files/patch-Makefile.am b/dns/dnscap/files/patch-Makefile.am
index 0a8b516baf73..4ab72fe2131e 100644
--- a/dns/dnscap/files/patch-Makefile.am
+++ b/dns/dnscap/files/patch-Makefile.am
@@ -1,10 +1,10 @@
---- Makefile.am.orig 2020-04-23 08:19:36 UTC
+--- Makefile.am.orig 2025-06-11 07:37:41 UTC
+++ Makefile.am
@@ -6,7 +6,7 @@ SUBDIRS = src plugins
SUBDIRS = src plugins
--dist_doc_DATA = README.md LICENSE CONTRIBUTORS
+-dist_doc_DATA = README.md LICENSE CONTRIBUTORS CHANGES
+dist_doc_DATA =
EXTRA_DIST = isc m4 .clang-format fmt.sh
diff --git a/dns/dnscap/files/patch-configure.ac b/dns/dnscap/files/patch-configure.ac
index 719ed0ea6447..32ac3fecb957 100644
--- a/dns/dnscap/files/patch-configure.ac
+++ b/dns/dnscap/files/patch-configure.ac
@@ -1,11 +1,11 @@
---- configure.ac.orig 2021-03-11 15:59:57 UTC
+--- configure.ac.orig 2025-06-23 11:48:40 UTC
+++ configure.ac
-@@ -112,7 +112,7 @@ AC_HEADER_RESOLV
- AC_HEADER_TIME
+@@ -114,7 +114,7 @@ AC_CHECK_HEADERS([sys/ioctl.h sys/param.h sys/socket.h
+ AC_HEADER_RESOLV
AC_CHECK_HEADERS([arpa/inet.h fcntl.h netdb.h netinet/in.h stdlib.h string.h])
AC_CHECK_HEADERS([sys/ioctl.h sys/param.h sys/socket.h sys/time.h unistd.h])
-AC_CHECK_HEADERS([ldns/ldns.h arpa/nameser_compat.h cbor.h cbor/cbor.h])
+AC_CHECK_HEADERS([ldns/ldns.h arpa/nameser_compat.h cbor.h tinycbor/cbor.h])
- AC_CHECK_HEADERS([sys/time.h])
- AC_CHECK_HEADERS([zlib.h])
AC_CHECK_HEADERS([openssl/conf.h openssl/evp.h openssl/err.h])
+ AC_CHECK_HEADERS([cryptopANT.h])
+ AC_CHECK_HEADERS([endian.h sys/endian.h machine/endian.h])
diff --git a/dns/dnsmasq/Makefile b/dns/dnsmasq/Makefile
index 96ca52b022e8..027ec8c2b4a2 100644
--- a/dns/dnsmasq/Makefile
+++ b/dns/dnsmasq/Makefile
@@ -1,7 +1,7 @@
PORTNAME= dnsmasq
DISTVERSION= 2.91
# Leave the PORTREVISION in even if 0 to avoid accidental PORTEPOCH bumps:
-PORTREVISION= 0
+PORTREVISION= 1
PORTEPOCH= 1
CATEGORIES= dns
MASTER_SITES= https://www.thekelleys.org.uk/dnsmasq/ \
diff --git a/dns/dnsmasq/files/patch-src_util.c b/dns/dnsmasq/files/patch-src_util.c
new file mode 100644
index 000000000000..a50483debfeb
--- /dev/null
+++ b/dns/dnsmasq/files/patch-src_util.c
@@ -0,0 +1,73 @@
+commit 15841f187d2b208a6113d4e2d479d3af4275bb1c
+Author: Simon Kelley <simon@thekelleys.org.uk>
+Date: Sun Jun 22 23:04:36 2025 +0100
+
+ Fix issue with fast file-descriptor close on *BSD.
+
+ This fixes a problem introduced in 8a5fe8ce6bb6c2bd81f237a0f4a2583722ffbd1c
+
+ On BSD, fdescfs is normally mounted at /dev/fd. However
+ if it is NOT mounted, devfs creates a directory at /dev/fd
+ which contains (only) the file descriptors 0,1 and 2.
+
+ Under these conditions, opendir() will succeed, and
+ if we proceed we will fail to close extant
+ file descriptors which should be closed.
+
+ Check that there is a filesystem mounted at /dev/fd
+ by checking that the device changes between /dev/fd
+ and /dev. If if doesn't, fall back to the dumb path.
+
+ Thanks to Roman Bogorodskiy for spotting the problem
+ and helping with diagnosis.
+
+--- src/util.c.orig 2025-03-14 15:09:35 UTC
++++ src/util.c
+@@ -34,6 +34,10 @@
+ #include <sys/utsname.h>
+ #endif
+
++#ifdef HAVE_BSD_NETWORK
++#include <libgen.h>
++#endif
++
+ /* SURF random number generator */
+
+ static u32 seed[32];
+@@ -831,9 +835,34 @@ void close_fds(long max_fd, int spare1, int spare2, in
+ #endif
+
+ #ifdef FDESCFS
+- DIR *d;
++ DIR *d = NULL;
+
+- if ((d = opendir(FDESCFS)))
++# ifdef HAVE_BSD_NETWORK
++ dev_t dirdev = 0;
++ char fdescfs[] = FDESCFS; /* string must be writable */
++ struct stat statbuf;
++
++ /* On BSD, fdescfs is normally mounted at /dev/fd. However
++ if it is NOT mounted, devfs creates a directory at /dev/fd
++ which contains (only) the file descriptors 0,1 and 2.
++
++ Under these conditions, opendir() will succeed, and
++ if we proceed we will fail to close extant
++ file descriptors which should be closed.
++
++ Check that there is a filesystem mounted at /dev/fd
++ by checking that the device changes between /dev/fd
++ and /dev. If if doesn't, fall back to the dumb path. */
++
++ if (stat(fdescfs, &statbuf) != -1)
++ dirdev = statbuf.st_dev;
++
++ if (stat(dirname(fdescfs), &statbuf) != -1 &&
++ dirdev != statbuf.st_dev)
++# endif
++ d = opendir(FDESCFS);
++
++ if (d)
+ {
+ struct dirent *de;
+
diff --git a/dns/opendnssec2/Makefile b/dns/opendnssec2/Makefile
index fe23a2bc75df..21a4806217c6 100644
--- a/dns/opendnssec2/Makefile
+++ b/dns/opendnssec2/Makefile
@@ -1,5 +1,6 @@
PORTNAME= opendnssec
DISTVERSION= 2.1.14
+PORTREVISION= 1
CATEGORIES= dns
MASTER_SITES= https://dist.opendnssec.org/source/
PKGNAMESUFFIX= 2
diff --git a/dns/p5-Zonemaster-Backend/Makefile b/dns/p5-Zonemaster-Backend/Makefile
index ac7082f2f549..a5f0acdf7d63 100644
--- a/dns/p5-Zonemaster-Backend/Makefile
+++ b/dns/p5-Zonemaster-Backend/Makefile
@@ -1,5 +1,5 @@
PORTNAME= Zonemaster-Backend
-DISTVERSION= 11.4.0
+DISTVERSION= 11.5.0
CATEGORIES= dns perl5
MASTER_SITES= CPAN
MASTER_SITE_SUBDIR= CPAN:ZNMSTR
diff --git a/dns/p5-Zonemaster-Backend/distinfo b/dns/p5-Zonemaster-Backend/distinfo
index 53abd39cadf1..ff2690290f17 100644
--- a/dns/p5-Zonemaster-Backend/distinfo
+++ b/dns/p5-Zonemaster-Backend/distinfo
@@ -1,3 +1,3 @@
-TIMESTAMP = 1741172279
-SHA256 (Zonemaster-Backend-11.4.0.tar.gz) = b847fd38b4fced78f969ae4c37218965e93194219de121739c9ec1350f133db0
-SIZE (Zonemaster-Backend-11.4.0.tar.gz) = 141754
+TIMESTAMP = 1751121803
+SHA256 (Zonemaster-Backend-11.5.0.tar.gz) = d928a665ca0815e63008df72738d35b46fc884e4905abfe3c52b496666278386
+SIZE (Zonemaster-Backend-11.5.0.tar.gz) = 142609
diff --git a/dns/p5-Zonemaster-Backend/pkg-plist b/dns/p5-Zonemaster-Backend/pkg-plist
index 5c777af17484..8ff21419b052 100644
--- a/dns/p5-Zonemaster-Backend/pkg-plist
+++ b/dns/p5-Zonemaster-Backend/pkg-plist
@@ -48,9 +48,6 @@ etc/rc.d/zm_testagent
%%SITE_PERL%%/auto/share/dist/Zonemaster-Backend/patch/patch_postgresql_db_zonemaster_backend_ver_8.0.0.pl
%%SITE_PERL%%/auto/share/dist/Zonemaster-Backend/patch/patch_sqlite_db_zonemaster_backend_ver_8.0.0.pl
%%SITE_PERL%%/auto/share/dist/Zonemaster-Backend/tmpfiles.conf
-%%SITE_PERL%%/auto/share/dist/Zonemaster-Backend/travis_mysql_backend_config.ini
-%%SITE_PERL%%/auto/share/dist/Zonemaster-Backend/travis_postgresql_backend_config.ini
-%%SITE_PERL%%/auto/share/dist/Zonemaster-Backend/travis_sqlite_backend_config.ini
%%SITE_PERL%%/auto/share/dist/Zonemaster-Backend/zm-rpcapi.lsb
%%SITE_PERL%%/auto/share/dist/Zonemaster-Backend/zm-rpcapi.service
%%SITE_PERL%%/auto/share/dist/Zonemaster-Backend/zm-testagent.lsb
diff --git a/dns/p5-Zonemaster-CLI/Makefile b/dns/p5-Zonemaster-CLI/Makefile
index dd49806ebafe..58ea1503e9d1 100644
--- a/dns/p5-Zonemaster-CLI/Makefile
+++ b/dns/p5-Zonemaster-CLI/Makefile
@@ -1,6 +1,6 @@
PORTNAME= Zonemaster-CLI
DISTVERSIONPREFIX= v
-DISTVERSION= 7.2.0
+DISTVERSION= 8.0.0
CATEGORIES= dns perl5
MASTER_SITES= CPAN
MASTER_SITE_SUBDIR= CPAN:ZNMSTR
diff --git a/dns/p5-Zonemaster-CLI/distinfo b/dns/p5-Zonemaster-CLI/distinfo
index 22ca0810d396..9f73bb66277c 100644
--- a/dns/p5-Zonemaster-CLI/distinfo
+++ b/dns/p5-Zonemaster-CLI/distinfo
@@ -1,3 +1,3 @@
-TIMESTAMP = 1741171972
-SHA256 (Zonemaster-CLI-v7.2.0.tar.gz) = 36cc0e051af4d98d9eccf5c7de20ca508f183cb8240e65440cae75de0cbea5fb
-SIZE (Zonemaster-CLI-v7.2.0.tar.gz) = 79825
+TIMESTAMP = 1751121812
+SHA256 (Zonemaster-CLI-v8.0.0.tar.gz) = d640f73354cd2e1c2fd19cda5f451a92dc78b0d027d068d2fa90dd0b022933b3
+SIZE (Zonemaster-CLI-v8.0.0.tar.gz) = 84289
diff --git a/dns/p5-Zonemaster-CLI/pkg-plist b/dns/p5-Zonemaster-CLI/pkg-plist
index 472c413d3754..20e135850031 100644
--- a/dns/p5-Zonemaster-CLI/pkg-plist
+++ b/dns/p5-Zonemaster-CLI/pkg-plist
@@ -1,5 +1,6 @@
bin/zonemaster-cli
%%SITE_PERL%%/Zonemaster/CLI.pm
+%%SITE_PERL%%/Zonemaster/CLI/TestCaseSet.pm
%%SITE_PERL%%/auto/share/dist/Zonemaster-CLI/GNUmakefile
%%SITE_PERL%%/auto/share/dist/Zonemaster-CLI/locale/da/LC_MESSAGES/Zonemaster-CLI.mo
%%SITE_PERL%%/auto/share/dist/Zonemaster-CLI/locale/es/LC_MESSAGES/Zonemaster-CLI.mo
@@ -10,3 +11,4 @@ bin/zonemaster-cli
%%SITE_PERL%%/auto/share/dist/Zonemaster-CLI/locale/sv/LC_MESSAGES/Zonemaster-CLI.mo
%%PERL5_MAN1%%/zonemaster-cli.1.gz
%%PERL5_MAN3%%/Zonemaster::CLI.3.gz
+%%PERL5_MAN3%%/Zonemaster::CLI::TestCaseSet.3.gz
diff --git a/dns/p5-Zonemaster-Engine/Makefile b/dns/p5-Zonemaster-Engine/Makefile
index fbccb89b4dc4..619bf7e9e3ec 100644
--- a/dns/p5-Zonemaster-Engine/Makefile
+++ b/dns/p5-Zonemaster-Engine/Makefile
@@ -1,6 +1,6 @@
PORTNAME= Zonemaster-Engine
DISTVERSIONPREFIX= v
-DISTVERSION= 7.1.0
+DISTVERSION= 8.0.0
CATEGORIES= dns perl5
MASTER_SITES= CPAN
MASTER_SITE_SUBDIR= CPAN:ZNMSTR
diff --git a/dns/p5-Zonemaster-Engine/distinfo b/dns/p5-Zonemaster-Engine/distinfo
index 447285d1408d..98f132ebea14 100644
--- a/dns/p5-Zonemaster-Engine/distinfo
+++ b/dns/p5-Zonemaster-Engine/distinfo
@@ -1,3 +1,3 @@
-TIMESTAMP = 1741172254
-SHA256 (Zonemaster-Engine-v7.1.0.tar.gz) = 847fe5b7a1685a9bc295d54e6fd6d53794aed2a1eec5e1f1f845b1488a00dbfb
-SIZE (Zonemaster-Engine-v7.1.0.tar.gz) = 12112401
+TIMESTAMP = 1751121821
+SHA256 (Zonemaster-Engine-v8.0.0.tar.gz) = 7f1aa6d99f54c3690c8f4840006bed31b65b5eed786bbfac8a0762bffc9c2b73
+SIZE (Zonemaster-Engine-v8.0.0.tar.gz) = 13363161
diff --git a/dns/p5-Zonemaster-LDNS/Makefile b/dns/p5-Zonemaster-LDNS/Makefile
index 3edba4daea0b..f62008dea2b8 100644
--- a/dns/p5-Zonemaster-LDNS/Makefile
+++ b/dns/p5-Zonemaster-LDNS/Makefile
@@ -1,5 +1,5 @@
PORTNAME= Zonemaster-LDNS
-DISTVERSION= 4.1.0
+DISTVERSION= 5.0.0
CATEGORIES= dns perl5
MASTER_SITES= CPAN
MASTER_SITE_SUBDIR= CPAN:ZNMSTR
diff --git a/dns/p5-Zonemaster-LDNS/distinfo b/dns/p5-Zonemaster-LDNS/distinfo
index 5f74001c1ef1..a262e6735755 100644
--- a/dns/p5-Zonemaster-LDNS/distinfo
+++ b/dns/p5-Zonemaster-LDNS/distinfo
@@ -1,3 +1,3 @@
-TIMESTAMP = 1734681539
-SHA256 (Zonemaster-LDNS-4.1.0.tar.gz) = 96e32efbedaeb79feef1a33cb2b98af43f1c520fe162a151a457f8b4e5bbed70
-SIZE (Zonemaster-LDNS-4.1.0.tar.gz) = 762661
+TIMESTAMP = 1751121827
+SHA256 (Zonemaster-LDNS-5.0.0.tar.gz) = f875b04766649873b062079579c760594a4b50e7656d37d21888fe8335a39dff
+SIZE (Zonemaster-LDNS-5.0.0.tar.gz) = 762411
diff --git a/dns/pear-Net_DNS21/Makefile b/dns/pear-Net_DNS21/Makefile
index 6fdc9a1f0448..f4c5cab1a08e 100644
--- a/dns/pear-Net_DNS21/Makefile
+++ b/dns/pear-Net_DNS21/Makefile
@@ -20,4 +20,6 @@ USE_GITHUB= yes
GH_ACCOUNT= mikepultz
GH_PROJECT= netdns2
+PORTSCOUT= limit:^1\.
+
.include <bsd.port.mk>
diff --git a/dns/py-publicsuffixlist/Makefile b/dns/py-publicsuffixlist/Makefile
index e8e4599fcf0f..eb6e05a50321 100644
--- a/dns/py-publicsuffixlist/Makefile
+++ b/dns/py-publicsuffixlist/Makefile
@@ -1,5 +1,5 @@
PORTNAME= publicsuffixlist
-PORTVERSION= 1.0.2.20250617
+PORTVERSION= 1.0.2.20250627
CATEGORIES= dns python
MASTER_SITES= PYPI
PKGNAMEPREFIX= ${PYTHON_PKGNAMEPREFIX}
diff --git a/dns/py-publicsuffixlist/distinfo b/dns/py-publicsuffixlist/distinfo
index 8b675678aefc..d958757cfc28 100644
--- a/dns/py-publicsuffixlist/distinfo
+++ b/dns/py-publicsuffixlist/distinfo
@@ -1,3 +1,3 @@
-TIMESTAMP = 1750188120
-SHA256 (publicsuffixlist-1.0.2.20250617.tar.gz) = 5042d7fc63f572f92632936efb3ce6432c1a2a464f24fd43f25af742618790e6
-SIZE (publicsuffixlist-1.0.2.20250617.tar.gz) = 105467
+TIMESTAMP = 1751208168
+SHA256 (publicsuffixlist-1.0.2.20250627.tar.gz) = 0302e18d3a2338430be2f53fc66bfdf4cdd38ed6172405f501c8c266ebb9f03b
+SIZE (publicsuffixlist-1.0.2.20250627.tar.gz) = 105569
diff --git a/dns/rubygem-resolv/Makefile b/dns/rubygem-resolv/Makefile
index 2817d77ae136..3c859b425ed2 100644
--- a/dns/rubygem-resolv/Makefile
+++ b/dns/rubygem-resolv/Makefile
@@ -1,5 +1,5 @@
PORTNAME= resolv
-PORTVERSION= 0.6.0
+PORTVERSION= 0.6.1
CATEGORIES= dns rubygems
MASTER_SITES= RG
diff --git a/dns/rubygem-resolv/distinfo b/dns/rubygem-resolv/distinfo
index d71d45f99ece..a300f75a67ac 100644
--- a/dns/rubygem-resolv/distinfo
+++ b/dns/rubygem-resolv/distinfo
@@ -1,3 +1,3 @@
-TIMESTAMP = 1734888690
-SHA256 (rubygem/resolv-0.6.0.gem) = b8b73f7734d4102ef9f75bad281d8fd1c434f8588b6aba17832ddc16fe679fab
-SIZE (rubygem/resolv-0.6.0.gem) = 30208
+TIMESTAMP = 1750954414
+SHA256 (rubygem/resolv-0.6.1.gem) = 8191fe6996d69a78aa5288f30a4eeff095c22f35b51e25da6f8d1e164c3c2f39
+SIZE (rubygem/resolv-0.6.1.gem) = 30720
diff --git a/dns/tldx/Makefile b/dns/tldx/Makefile
new file mode 100644
index 000000000000..bd896dfc7453
--- /dev/null
+++ b/dns/tldx/Makefile
@@ -0,0 +1,20 @@
+PORTNAME= tldx
+DISTVERSIONPREFIX= v
+DISTVERSION= 1.2.4
+CATEGORIES= dns
+
+MAINTAINER= nxjoseph@protonmail.com
+COMMENT= Domain Availability Research Tool
+WWW= https://github.com/brandonyoungdev/tldx
+
+LICENSE= APACHE20
+LICENSE_FILE= ${WRKSRC}/LICENSE
+
+USES= go:1.23,modules
+
+GO_MODULE= github.com/brandonyoungdev/tldx
+GO_BUILDFLAGS+= -ldflags="-s -w -X github.com/brandonyoungdev/tldx/cmd.Version=${DISTVERSIONFULL}"
+
+PLIST_FILES= bin/tldx
+
+.include <bsd.port.mk>
diff --git a/dns/tldx/distinfo b/dns/tldx/distinfo
new file mode 100644
index 000000000000..cda71d91e14a
--- /dev/null
+++ b/dns/tldx/distinfo
@@ -0,0 +1,5 @@
+TIMESTAMP = 1750623987
+SHA256 (go/dns_tldx/tldx-v1.2.4/v1.2.4.mod) = d7cf1cc97c791779e7a4ba19bd81f7225f5728678db5b5febec8c89fb85003ee
+SIZE (go/dns_tldx/tldx-v1.2.4/v1.2.4.mod) = 1377
+SHA256 (go/dns_tldx/tldx-v1.2.4/v1.2.4.zip) = 2cacc5a744b414e660fd74d374a2a0c6b04784eed24bf1398428e1968faa942a
+SIZE (go/dns_tldx/tldx-v1.2.4/v1.2.4.zip) = 6350620
diff --git a/dns/tldx/pkg-descr b/dns/tldx/pkg-descr
new file mode 100644
index 000000000000..7cb2ea90c644
--- /dev/null
+++ b/dns/tldx/pkg-descr
@@ -0,0 +1,10 @@
+tldx helps you brainstorm available domain names fast.
+
+Features:
+- Smart keyword-based domain permutations (prefixes, suffixes, TLDs)
+- Fast and concurrent availability checks with RDAP
+- Streams results as they're found
+- Supports multiple output formats (text, json, json-stream, json-array, csv)
+- Supports TLD presets to quickly select groups of common or curated TLD sets
+- Optional filtering by domain length
+- Great for technical founders, indie hackers, and naming brainstorms