Skip site navigation (1)Skip section navigation (2)
Date:      Sun, 22 Feb 2026 20:59:22 +0000
From:      Vladimir Druzenko <vvd@FreeBSD.org>
To:        ports-committers@FreeBSD.org, dev-commits-ports-all@FreeBSD.org, dev-commits-ports-main@FreeBSD.org
Cc:        Rafe <mondo.debater_0q@icloud.com>
Subject:   git: cc77144d0a20 - main - net-p2p/transmission{,-components}: Update 4.0.6 => 4.1.1
Message-ID:  <699b6e2a.1f12f.71ba454@gitrepo.freebsd.org>

index | next in thread | raw e-mail

The branch main has been updated by vvd:

URL: https://cgit.FreeBSD.org/ports/commit/?id=cc77144d0a20b78d2e3b2bc0d919e8638502282c

commit cc77144d0a20b78d2e3b2bc0d919e8638502282c
Author:     Rafe <mondo.debater_0q@icloud.com>
AuthorDate: 2026-02-22 20:48:44 +0000
Commit:     Vladimir Druzenko <vvd@FreeBSD.org>
CommitDate: 2026-02-22 20:59:13 +0000

    net-p2p/transmission{,-components}: Update 4.0.6 => 4.1.1
    
    Update gtk flavor to gtk4 and qt flavor to qt6.
    
    Changelogs:
    https://github.com/transmission/transmission/releases/tag/4.1.0
    https://github.com/transmission/transmission/releases/tag/4.1.1
    
    Improve port:
    - Optimize Makefile for different flavors - dependencies, NO_BUILD,
      CMAKE_ARGS/CMAKE_ON/CMAKE_OFF, goals and etc.
    - Add EXTRACT_AFTER_ARGS to prevent extract unnecessary files.
    - Rework do-install.
    - Fix warnings from portclippy.
    
    PR:             292846
    Co-authored-by: Vladimir Druzenko <vvd@FreeBSD.org>
---
 net-p2p/transmission-components/Makefile           | 221 ++++++---------
 net-p2p/transmission-components/distinfo           |   6 +-
 .../files/patch-CMakeLists.txt                     | 314 +++++++++++++++++++--
 .../files/patch-cmake_FindFastFloat.cmake          |   8 -
 .../files/patch-cmake_FindFmt.cmake                |  26 --
 .../files/patch-cmake_FindLibevent.cmake           |  92 ++++++
 .../files/patch-cmake_FindRapidJSON.cmake          |  47 +++
 .../files/patch-cmake_FindUtfCpp.cmake             |   8 -
 .../files/patch-cmake_Finddht.cmake                |  42 +++
 .../files/patch-cmake_Findfmt.cmake                |  74 +++++
 .../files/patch-cmake_Findlibb64.cmake             |  54 ++++
 .../files/patch-cmake_Findlibdeflate.cmake         |  76 +++++
 .../files/patch-cmake_Findlibnatpmp.cmake          |  42 +++
 .../files/patch-cmake_Findlibpsl.cmake             |  52 ++++
 .../files/patch-cmake_Findlibutp.cmake             |  97 +++++++
 .../files/patch-cmake_Findminiupnpc.cmake          |  71 +++++
 .../files/patch-cmake_Findutf8cpp.cmake            |  37 +++
 .../files/patch-cmake_TrGTest.cmake                |  19 ++
 .../files/patch-cmake_TrMacros.cmake               | 146 ++++++++++
 .../files/patch-daemon_CMakeLists.txt              |  11 +
 .../files/patch-gtk_DetailsDialog.cc               |  30 --
 .../files/patch-libtransmission_CMakeLists.txt     |  40 +++
 .../files/patch-libtransmission_peer-msgs.cc       |  10 -
 .../patch-libtransmission_port-forwarding-upnp.cc  |  17 --
 .../patch-libtransmission_session-alt-speeds.cc    |  19 --
 .../files/patch-libtransmission_torrent.cc         |  28 --
 .../files/patch-qt_transmission-qt.desktop         |  11 -
 .../patch-tests_libtransmission_CMakeLists.txt     |  11 +
 .../files/patch-utils_CMakeLists.txt               |  11 +
 .../files/patch-utils_remote.cc                    |  19 --
 .../files/patch-utils_show.cc                      |  11 -
 net-p2p/transmission-components/pkg-plist.docs     |   3 +
 net-p2p/transmission-components/pkg-plist.gtk      |  73 +----
 net-p2p/transmission-components/pkg-plist.qt       |   7 +-
 net-p2p/transmission-components/pkg-plist.web      |   2 +
 net-p2p/transmission/Makefile                      |   7 +-
 36 files changed, 1319 insertions(+), 423 deletions(-)

diff --git a/net-p2p/transmission-components/Makefile b/net-p2p/transmission-components/Makefile
index 2015ec0a8b22..c53b292e27cb 100644
--- a/net-p2p/transmission-components/Makefile
+++ b/net-p2p/transmission-components/Makefile
@@ -1,6 +1,5 @@
 PORTNAME=	transmission
-DISTVERSION=	4.0.6
-PORTREVISION=	7
+DISTVERSION=	4.1.1
 CATEGORIES=	net-p2p
 MASTER_SITES=	https://github.com/${PORTNAME}/${PORTNAME}/releases/download/${DISTVERSION}/
 
@@ -11,12 +10,20 @@ WWW=		https://www.transmissionbt.com
 LICENSE=	GPLv3+
 LICENSE_FILE=	${WRKSRC}/COPYING
 
+FLAVORS=			daemon cli docs gtk qt utils web
+FLAVOR?=			${FLAVORS:[1]}
+${FLAVOR}_PKGNAMESUFFIX=	-${FLAVOR}
+
+.if ${FLAVOR:Ndocs:Nweb}
 BUILD_DEPENDS=	${LOCALBASE}/include/fast_float/fast_float.h:math/fast_float \
 		${LOCALBASE}/include/fmt/format.h:devel/libfmt \
+		${LOCALBASE}/include/math/wide_integer/uintwide_t.h:math/wide-integer \
 		${LOCALBASE}/include/rapidjson/rapidjson.h:devel/rapidjson \
+		${LOCALBASE}/include/small/map.hpp:devel/small \
 		${LOCALBASE}/include/utf8cpp/utf8.h:devel/utf8cpp
 
 LIB_DEPENDS=	libb64.so:converters/libb64 \
+		libcrc32c.so:devel/crc32c \
 		libcurl.so:ftp/curl \
 		libdeflate.so:archivers/libdeflate \
 		libdht.so:devel/jech-dht \
@@ -26,179 +33,113 @@ LIB_DEPENDS=	libb64.so:converters/libb64 \
 		libpsl.so:dns/libpsl \
 		libutp.so:net-p2p/libutp
 
-FLAVORS=			cli docs daemon gtk qt utils web
-FLAVOR?=			${FLAVORS:[1]}
-.for flavor in ${FLAVORS}
-${flavor}_PKGNAMESUFFIX=	-${flavor}
-.endfor
-
-DESCR=		${PKGDIR}/pkg-descr.${FLAVOR}
-
-.if ${FLAVOR} == docs
-NO_BUILD=	yes
-LIB_DEPENDS=
+gtk_LIB_DEPENDS=	libgraphene-1.0.so:graphics/graphene \
+			libharfbuzz.so:print/harfbuzz \
+			libvulkan.so:graphics/vulkan-loader
 .endif
 
-gtk_LIB_DEPENDS=	libayatana-appindicator3.so:devel/libayatana-appindicator \
-			libharfbuzz.so:print/harfbuzz
-
-USES=		cmake cpe iconv localbase pkgconfig ssl tar:xz
-
+USES=		${${FLAVOR}_USES} cpe tar:xz
 CPE_VENDOR=	transmissionbt
 CPE_PRODUCT=	transmission
 
-EXTRACT_AFTER_ARGS=	--exclude third-party/dht \
-			--exclude third-party/fast_float \
-			--exclude third-party/fmt \
-			--exclude third-party/libb64 \
-			--exclude third-party/libdeflate \
-			--exclude third-party/libevent \
-			--exclude third-party/libnatpmp \
-			--exclude third-party/libpsl \
-			--exclude third-party/libutp \
-			--exclude third-party/miniupnpc \
-			--exclude third-party/rapidjson \
-			--exclude third-party/utfcpp
-
-.if ${FLAVOR} == gtk
-USES+=		desktop-file-utils gettext-runtime gettext-tools gnome
-USE_GNOME=	gdkpixbuf glibmm gtkmm30
-.endif
+.if ${FLAVOR:Ndocs:Nweb}
+USE_GL=		${${FLAVOR}_USE_GL}
+USE_GNOME=	${${FLAVOR}_USE_GNOME}
+USE_QT=		${${FLAVOR}_USE_QT}
 
-.if ${FLAVOR} == qt
-USES+=		desktop-file-utils qmake:no_env qt:5
-USE_QT=		core dbus gui network svg widgets buildtools:build \
-		linguisttools:build
-.endif
+_all_USES=	cmake:testing compiler:c++20-lang iconv localbase pkgconfig ssl
 
-.if ${FLAVOR} == daemon
-USE_RC_SUBR=	transmission
-.endif
+cli_USES=	${_all_USES}
 
-.if ${FLAVOR} == docs
-USES=		cpe tar:xz
-.endif
+daemon_USES=	${_all_USES}
 
-.if ${FLAVOR} == web
-USES=		cpe tar:xz
-NO_ARCH=	yes
-NO_BUILD=	yes
-.endif
+gtk_USES=	${_all_USES} desktop-file-utils gettext gnome
+gtk_USE_GNOME=	gdkpixbuf glibmm gtkmm40
 
-CMAKE_ON=	USE_SYSTEM_B64 USE_SYSTEM_DEFLATE USE_SYSTEM_DHT \
-		USE_SYSTEM_EVENT2 USE_SYSTEM_MINIUPNPC USE_SYSTEM_NATPMP \
-		USE_SYSTEM_PSL USE_SYSTEM_UTP
-CMAKE_OFF=	ENABLE_MAC REBUILD_WEB WITH_SYSTEMD
+qt_USES=	${_all_USES} desktop-file-utils gl qmake:no_env qt:6
+qt_USE_GL=	opengl
+qt_USE_QT=	base svg tools translations:build
 
-.if ${FLAVOR:Ndocs}
-USERS=		transmission
-GROUPS=		transmission
+utils_USES=	${_all_USES}
+
+.if ${FLAVOR:Mdaemon}
+USE_RC_SUBR=	${PORTNAME}
 .endif
 
-PLIST=		${PKGDIR}/pkg-plist.${FLAVOR}
+CMAKE_ARGS=	${${FLAVOR}_CMAKE_ARGS} -DCMAKE_CXX_STANDARD=20 \
+		-DWideInteger_DIR=${PREFIX}/lib/cmake/wide-integer
+CMAKE_ON=	${${FLAVOR}_CMAKE_ON} USE_SYSTEM_DEFAULT
+CMAKE_OFF=	${${FLAVOR}_CMAKE_OFF} ENABLE_MAC RUN_CLANG_TIDY WITH_SYSTEMD
 
-.if ${FLAVOR} == cli
-CMAKE_ON+=	ENABLE_CLI
-CMAKE_OFF+=	ENABLE_DAEMON ENABLE_GTK ENABLE_QT ENABLE_UTILS INSTALL_WEB
-.endif
+cli_CMAKE_ON=		ENABLE_CLI
+cli_CMAKE_OFF=		ENABLE_DAEMON ENABLE_GTK ENABLE_QT ENABLE_UTILS INSTALL_WEB
 
-.if ${FLAVOR} == daemon
-CMAKE_ON+=	ENABLE_DAEMON
-CMAKE_OFF+=	ENABLE_CLI ENABLE_GTK ENABLE_QT ENABLE_UTILS INSTALL_WEB
-.endif
+daemon_CMAKE_ON=	ENABLE_DAEMON
+daemon_CMAKE_OFF=	ENABLE_CLI ENABLE_GTK ENABLE_QT ENABLE_UTILS INSTALL_WEB
 
-.if ${FLAVOR} == gtk
-CMAKE_ARGS+=	-DUSE_GTK_VERSION=3
-CMAKE_ON+=	ENABLE_GTK GTK_IS_REQUIRED
-CMAKE_OFF+=	ENABLE_CLI ENABLE_DAEMON ENABLE_UTILS INSTALL_WEB
-.endif
+gtk_CMAKE_ARGS=		-DUSE_GTK_VERSION=4
+gtk_CMAKE_ON=		ENABLE_GTK GTK_IS_REQUIRED
+gtk_CMAKE_OFF=		ENABLE_CLI ENABLE_DAEMON ENABLE_UTILS INSTALL_WEB
 
-.if ${FLAVOR} == qt
-CMAKE_ARGS+=	-DUSE_QT_VERSION=5
-CMAKE_ON+=	ENABLE_QT QT_IS_REQUIRED
-CMAKE_OFF+=	ENABLE_CLI ENABLE_DAEMON ENABLE_UTILS INSTALL_WEB
-.endif
+qt_CMAKE_ARGS=		-DUSE_QT_VERSION=6
+qt_CMAKE_ON=		ENABLE_QT QT_IS_REQUIRED
+qt_CMAKE_OFF=		ENABLE_CLI ENABLE_DAEMON ENABLE_UTILS INSTALL_WEB
 
-.if ${FLAVOR} == utils
-CMAKE_ON+=	ENABLE_UTILS
-CMAKE_OFF+=	ENABLE_CLI ENABLE_DAEMON ENABLE_GTK ENABLE_QT ENABLE_TESTS \
-		ENABLE_WERROR INSTALL_WEB
+utils_CMAKE_ON=		ENABLE_UTILS
+utils_CMAKE_OFF=	ENABLE_CLI ENABLE_DAEMON ENABLE_GTK ENABLE_QT INSTALL_WEB
 .endif
 
-OPTIONS_FILE=	${PORT_DBDIR}/${OPTIONS_NAME}/${FLAVOR}-options
+EXTRACT_AFTER_ARGS=	${B64 CRC32C FastFloat DEFLATE DHT Fmt MINIUPNPC \
+			NATPMP PSL Small UtfCpp UTP WideInteger \
+			:L:C|^(.*)|--exclude cmake/Find\1.cmake|} \
+			--exclude news/news-[0-3]* \
+			--exclude news/news-*beta* \
+			${dht fast_float fmt libb64 libdeflate libevent \
+			libnatpmp libpsl libutp miniupnpc rapidjson small \
+			utfcpp wide-integer:L:S|^|--exclude third-party/|} \
+			--no-same-owner --no-same-permissions
 
-.if ${FLAVOR:Mdocs}
-OPTIONS_DEFINE=
+.if ${FLAVOR:Mdocs} || ${FLAVOR:Mweb}
+NO_ARCH=	yes
+NO_BUILD=	yes
 .endif
 
-.if ${FLAVOR:Mweb}
-OPTIONS_DEFINE=
+.if ${FLAVOR:Ndocs}
+USERS=		${PORTNAME}
+GROUPS=		${PORTNAME}
 .endif
 
-.if ${FLAVOR:Nweb} && ${FLAVOR:Ndocs}
-OPTIONS_DEFINE=		NLS TESTS
+DESCR=		${PKGDIR}/pkg-descr.${FLAVOR}
+PLIST=		${PKGDIR}/pkg-plist.${FLAVOR}
+
+.if ${FLAVOR:Ndocs:Nweb}
+OPTIONS_DEFINE=		NLS
 OPTIONS_DEFAULT=	NLS
+OPTIONS_FILE=		${PORT_DBDIR}/${OPTIONS_NAME}/${FLAVOR}-options
+OPTIONS_SUB=		yes
+NLS_USES=		gettext-runtime
+NLS_CMAKE_BOOL=		ENABLE_NLS
 .endif
 
-OPTIONS_SUB=	yes
-
-daemon_DESC=	Build daemon
-docs_DESC=	Install documentation
-gtk_DESC=	Build GTK+ client
-qt_DESC=	Build Qt client
-TESTS_DESC=	Build & run unit tests
-utils_DESC=	Build utilities (create, edit, remote, show)
-cli_DESC=	Build command-line client (deprecated)
-web_DESC=	Install web interface
-
-NLS_USES=	gettext-runtime:lib
-NLS_CMAKE_BOOL=	ENABLE_NLS
-
-TESTS_CMAKE_BOOL=	ENABLE_TESTS
-
-UTILS_CMAKE_BOOL=	ENABLE_UTILS
-
-WEB_CMAKE_BOOL=	INSTALL_WEB
-
-.if ${FLAVOR} == docs
-pre-install:
-	@${ECHO_MSG} "Removing outdated release notes"
-	@${FIND} ${WRKSRC}/news \( -name 'news-[0-3]*' -o -name '*beta*' \) -delete
-
+.if ${FLAVOR:Mdocs}
 do-install:
-	@${MKDIR} ${STAGEDIR}${DOCSDIR}
-	@cd ${WRKSRC} ; ${CP} AUTHORS ${STAGEDIR}${DOCSDIR} ;\
-	       	${CP} COPYING ${STAGEDIR}${DOCSDIR} ;\
-	       	${CP} README.md ${STAGEDIR}${DOCSDIR}
-	@cd ${WRKSRC}/docs ; ${CP} rpc-spec.md ${STAGEDIR}${DOCSDIR}
-	@cd ${WRKSRC}/extras ; ${CP} send-email-when-torrent-done.sh ${STAGEDIR}${DOCSDIR}
-	@${MKDIR} ${STAGEDIR}${DOCSDIR}/news
-	@cd ${WRKSRC}/news ; ${CP} -R . ${STAGEDIR}${DOCSDIR}/news
+	(cd ${WRKSRC} && ${COPYTREE_SHARE} news ${STAGEDIR}${DOCSDIR})
+	${INSTALL_DATA} ${AUTHORS COPYING README.md docs/rpc-spec.md \
+		extras/send-email-when-torrent-done.sh:L:S|^|${WRKSRC}/|} \
+		${STAGEDIR}${DOCSDIR}
 .endif
 
-.if ${FLAVOR} == qt
-post-install:
-	${MKDIR} ${STAGEDIR}${PREFIX}/share/icons/hicolor/scalable/apps
-	${INSTALL_DATA}	${WRKSRC}/qt/icons/transmission.svg \
-		${STAGEDIR}${PREFIX}/share/icons/hicolor/scalable/apps/transmission-qt.svg
+.if ${FLAVOR:Mweb}
+do-install:
+	(cd ${WRKSRC}/web && ${COPYTREE_SHARE} public_html ${STAGEDIR}${DATADIR})
 .endif
 
-.if ${FLAVOR} == daemon
 post-install:
-	        ${MKDIR} ${STAGEDIR}${ETCDIR}/home
+.if ${FLAVOR:Mdaemon}
+	${MKDIR} ${STAGEDIR}${ETCDIR}/home
 .endif
-
-.if ${FLAVOR} == web
-do-install:
-		( cd ${WRKSRC}/web && ${COPYTREE_SHARE} public_html ${STAGEDIR}${DATADIR} )
+.if ${FLAVOR:Mgtk} || ${FLAVOR:Mqt}
+	${RM} ${STAGEDIR}${PREFIX}/share/icons/hicolor/scalable/apps/transmission-devel.svg
 .endif
 
-post-install-TESTS-on:
-	@${ECHO_MSG} "Running tests..."
-	@cd ${BUILD_WRKSRC}/tests/libtransmission/ && \
-		eval ${BUILD_WRKSRC}/tests/libtransmission/libtransmission-test \
-		--gtest_filter="-DhtTest.usesBootstrapFile" \
-		#fails in poudriere due to lack of networking, passes otherwise
-		--gtest_brief=1 \
-
 .include <bsd.port.mk>
diff --git a/net-p2p/transmission-components/distinfo b/net-p2p/transmission-components/distinfo
index 1debd6dfbbaa..e171f50f9159 100644
--- a/net-p2p/transmission-components/distinfo
+++ b/net-p2p/transmission-components/distinfo
@@ -1,3 +1,3 @@
-TIMESTAMP = 1717026106
-SHA256 (transmission-4.0.6.tar.xz) = 2a38fe6d8a23991680b691c277a335f8875bdeca2b97c6b26b598bc9c7b0c45f
-SIZE (transmission-4.0.6.tar.xz) = 11908296
+TIMESTAMP = 1771590096
+SHA256 (transmission-4.1.1.tar.xz) = e743283ee03a42c4d0b08fed2bd52b554aa6c9f65b4d4d45b795c32d98762a79
+SIZE (transmission-4.1.1.tar.xz) = 11876904
diff --git a/net-p2p/transmission-components/files/patch-CMakeLists.txt b/net-p2p/transmission-components/files/patch-CMakeLists.txt
index e520e0207eb3..29c22be3f409 100644
--- a/net-p2p/transmission-components/files/patch-CMakeLists.txt
+++ b/net-p2p/transmission-components/files/patch-CMakeLists.txt
@@ -1,23 +1,301 @@
---- CMakeLists.txt.orig	2023-08-23 22:48:58 UTC
+--- CMakeLists.txt.orig	2026-02-20 00:30:46 UTC
 +++ CMakeLists.txt
-@@ -796,20 +796,6 @@ if(ENABLE_DAEMON OR ENABLE_GTK OR ENABLE_QT)
-     tr_install_web(${CMAKE_INSTALL_DATAROOTDIR}/${TR_NAME})
- endif()
+@@ -45,15 +45,25 @@ set(EVENT2_MINIMUM 2.1.0)
+ set(WOLFSSL_MINIMUM 3.4)
+ set(DEFLATE_MINIMUM 1.7)
+ set(EVENT2_MINIMUM 2.1.0)
++# fast_float's version file is configured with `COMPATIBILITY SameMajorVersion`
++# The version range currently distributed varies greatly (e.g. Debian Trixie -> 8.0.0, Ubuntu 24.04 -> 3.9.0)
++# set(FAST_FLOAT_MINIMUM 3...8)
++set(FMT_MINIMUM 8.0.1)
+ set(GIOMM_MINIMUM 2.26.0)
+ set(GLIBMM_MINIMUM 2.60.0)
+ set(GTKMM3_MINIMUM 3.24.0)
+ set(GTKMM4_MINIMUM 4.11.1)
+ set(OPENSSL_MINIMUM 1.1.0)
+ set(MBEDTLS_MINIMUM 2.7)
+-set(NPM_MINIMUM 10.2.3) # Node.js 20.10 (eslint-plugin-unicorn)
+-set(PSL_MINIMUM 0.21.1)
++set(MINIUPNPC_MINIMUM 2.2.1)
++set(NPM_MINIMUM 10.8.2) # Node.js 20.19 (stylelint@17)
++set(PSL_MINIMUM 0.21.0)
+ set(QT_MINIMUM 5.15)
++set(SIGSLOT_MINIMUM 1.2.3)
++set(SMALL_MINIMUM 0.2.2)
++# utf8cpp v4's version file is configured with `COMPATIBILITY SameMajorVersion`
++# and does not support version range.
++# set(UTF8CPP_MINIMUM 3.1...4)
+ 
+ option(ENABLE_DAEMON "Build daemon" ON)
+ tr_auto_option(ENABLE_GTK "Build GTK client" AUTO)
+@@ -71,14 +81,21 @@ tr_auto_option(RUN_CLANG_TIDY "Run clang-tidy on the c
+ option(INSTALL_LIB "Install the library" OFF)
+ tr_auto_option(ENABLE_DEPRECATED "Allow deprecated API use of upstream packages, e.g. GTK" AUTO)
+ tr_auto_option(RUN_CLANG_TIDY "Run clang-tidy on the code" AUTO)
+-tr_auto_option(USE_SYSTEM_EVENT2 "Use system event2 library" AUTO)
+-tr_auto_option(USE_SYSTEM_DEFLATE "Use system deflate library" AUTO)
+-tr_auto_option(USE_SYSTEM_DHT "Use system dht library" AUTO)
+-tr_auto_option(USE_SYSTEM_MINIUPNPC "Use system miniupnpc library" AUTO)
+-tr_auto_option(USE_SYSTEM_NATPMP "Use system natpmp library" AUTO)
+-tr_auto_option(USE_SYSTEM_UTP "Use system utp library" AUTO)
+-tr_auto_option(USE_SYSTEM_B64 "Use system b64 library" AUTO)
+-tr_auto_option(USE_SYSTEM_PSL "Use system psl library" AUTO)
++tr_auto_option(USE_SYSTEM_DEFAULT "Default value for USE_SYSTEM_* options" AUTO)
++tr_auto_option(RUN_CLANG_TIDY "Run clang-tidy on the code" ${USE_SYSTEM_DEFAULT})
++tr_auto_option(USE_SYSTEM_EVENT2 "Use system event2 library" ${USE_SYSTEM_DEFAULT})
++tr_auto_option(USE_SYSTEM_DEFLATE "Use system deflate library" ${USE_SYSTEM_DEFAULT})
++tr_auto_option(USE_SYSTEM_DHT "Use system dht library" ${USE_SYSTEM_DEFAULT})
++tr_auto_option(USE_SYSTEM_FAST_FLOAT "Use system fast_float library" ${USE_SYSTEM_DEFAULT})
++tr_auto_option(USE_SYSTEM_FMT "Use system fmt library" ${USE_SYSTEM_DEFAULT})
++tr_auto_option(USE_SYSTEM_MINIUPNPC "Use system miniupnpc library" ${USE_SYSTEM_DEFAULT})
++tr_auto_option(USE_SYSTEM_NATPMP "Use system natpmp library" ${USE_SYSTEM_DEFAULT})
++tr_auto_option(USE_SYSTEM_SMALL "Use system small library" ${USE_SYSTEM_DEFAULT})
++tr_auto_option(USE_SYSTEM_UTF8CPP "Use system uft8cpp library" ${USE_SYSTEM_DEFAULT})
++tr_auto_option(USE_SYSTEM_UTP "Use system utp library" ${USE_SYSTEM_DEFAULT})
++tr_auto_option(USE_SYSTEM_WIDE_INTEGER "Use system WideInteger library" ${USE_SYSTEM_DEFAULT})
++tr_auto_option(USE_SYSTEM_B64 "Use system b64 library" ${USE_SYSTEM_DEFAULT})
++tr_auto_option(USE_SYSTEM_PSL "Use system psl library" ${USE_SYSTEM_DEFAULT})
+ tr_list_option(USE_GTK_VERSION "Use specific GTK version" AUTO 3 4)
+ tr_list_option(USE_QT_VERSION "Use specific Qt version" AUTO 5 6)
+ tr_list_option(WITH_CRYPTO "Use specified crypto library" AUTO ccrypto mbedtls openssl wolfssl)
+@@ -239,26 +256,13 @@ set(SOURCE_ICONS_DIR "${PROJECT_SOURCE_DIR}/icons")
+ 
+ set(SOURCE_ICONS_DIR "${PROJECT_SOURCE_DIR}/icons")
+ 
+-find_package(FastFloat)
+-find_package(Fmt)
+ find_package(RapidJSON)
+-find_package(Small)
+-find_package(UtfCpp)
+-find_package(WideInteger)
+ 
+ find_package(Threads)
+ find_package(PkgConfig QUIET)
+ 
+ find_package(CURL ${CURL_MINIMUM} REQUIRED)
  
--if(INSTALL_DOC)
--    install(
--        FILES
--            AUTHORS
--            COPYING
--            README.md
--            docs/rpc-spec.md
--            extras/send-email-when-torrent-done.sh
--        DESTINATION ${CMAKE_INSTALL_DOCDIR})
--    install(
--        DIRECTORY news
--        DESTINATION ${CMAKE_INSTALL_DOCDIR})
+-if(ENABLE_DEPRECATED STREQUAL "AUTO")
+-    if(DEFINED ENV{CI})
+-        set(ENABLE_DEPRECATED OFF)
+-    else()
+-        set(ENABLE_DEPRECATED ON)
+-    endif()
 -endif()
 -
- if(MSVC AND ENABLE_DAEMON AND ENABLE_QT AND ENABLE_UTILS AND WITH_CRYPTO STREQUAL "openssl" AND INSTALL_WEB)
-     add_subdirectory(dist/msi)
+ set(CRYPTO_PKG "")
+ if(WITH_CRYPTO STREQUAL "AUTO" OR WITH_CRYPTO STREQUAL "ccrypto")
+     tr_get_required_flag(WITH_CRYPTO CCRYPTO_IS_REQUIRED)
+@@ -369,7 +373,7 @@ if(GTK_FOUND)
+         INTERFACE
+             ${GTK${GTK_VERSION}_CFLAGS_OTHER})
+ 
+-    target_include_directories(transmission::gtk_impl SYSTEM
++    target_include_directories(transmission::gtk_impl
+         INTERFACE
+             ${GTK${GTK_VERSION}_INCLUDE_DIRS})
+ 
+@@ -408,6 +412,9 @@ if(ENABLE_QT)
+         Network
+         Svg
+         LinguistTools)
++    if(ENABLE_TESTS)
++        list(APPEND QT_REQUIRED_MODULES Test)
++    endif()
+     set(QT_OPTIONAL_MODULES
+         DBus
+         AxContainer
+@@ -428,7 +435,7 @@ if(ENABLE_QT)
+         foreach(M ${QT_REQUIRED_MODULES})
+             find_package(Qt${Qt_VERSION_MAJOR}${M} ${QT_MINIMUM} QUIET)
+             if(Qt${Qt_VERSION_MAJOR}${M}_FOUND)
+-                if(NOT M STREQUAL "LinguistTools")
++                if(NOT M STREQUAL "LinguistTools" AND NOT M STREQUAL "Test")
+                     list(APPEND QT_TARGETS Qt${Qt_VERSION_MAJOR}::${M})
+                 endif()
+             else()
+@@ -493,19 +500,24 @@ endif()
+     tr_fixup_auto_option(ENABLE_MAC MAC_FOUND MAC_IS_REQUIRED)
+ endif()
+ 
++# Don't build libdeflate as subdirectory as its CMakeLists.txt
++# messes with global CMAKE_* variables and global compiler options
+ if(WIN32 AND NOT MINGW)
+     set(DEFLATE_LIB_NAME deflatestatic)
+ else()
+     set(DEFLATE_LIB_NAME deflate)
+ endif()
+-tr_add_external_auto_library(DEFLATE libdeflate ${DEFLATE_LIB_NAME}
+-    TARGET deflate::deflate
++tr_add_external_auto_library(DEFLATE libdeflate
++    LIBNAME ${DEFLATE_LIB_NAME}
++    TARGET libdeflate::libdeflate
+     CMAKE_ARGS
+         -DLIBDEFLATE_BUILD_SHARED_LIB=OFF
+         -DLIBDEFLATE_BUILD_GZIP=OFF)
+ 
+-tr_add_external_auto_library(EVENT2 libevent event
+-    TARGET libevent::event
++tr_add_external_auto_library(EVENT2 Libevent
++    SUBPROJECT
++    SOURCE_DIR libevent
++    COMPONENTS core extra
+     CMAKE_ARGS
+         -DEVENT__DISABLE_OPENSSL:BOOL=ON
+         -DEVENT__DISABLE_BENCHMARK:BOOL=ON
+@@ -513,8 +525,14 @@ tr_add_external_auto_library(EVENT2 libevent event
+         -DEVENT__DISABLE_REGRESS:BOOL=ON
+         -DEVENT__DISABLE_SAMPLES:BOOL=ON
+         -DEVENT__LIBRARY_TYPE:STRING=STATIC)
++# Workaround, perm fix: https://github.com/libevent/libevent/pull/1791
++if(NOT TARGET libevent::core)
++    add_library(libevent::core ALIAS event_core)
++    add_library(libevent::extra ALIAS event_extra)
++endif()
+ 
+-tr_add_external_auto_library(NATPMP libnatpmp natpmp
++tr_add_external_auto_library(NATPMP libnatpmp
++    LIBNAME natpmp
+     TARGET natpmp::natpmp
+     CMAKE_ARGS
+         -DBUILD_SHARED_LIBS=OFF)
+@@ -530,14 +548,16 @@ endif()
+ else()
+     set(TR_MINIUPNPC_LIBNAME miniupnpc)
  endif()
+-tr_add_external_auto_library(MINIUPNPC miniupnp/miniupnpc ${TR_MINIUPNPC_LIBNAME}
+-    TARGET miniupnpc::libminiupnpc
++tr_add_external_auto_library(MINIUPNPC miniupnpc
++    LIBNAME ${TR_MINIUPNPC_LIBNAME}
++    SOURCE_DIR miniupnp/miniupnpc
++    TARGET miniupnpc::miniupnpc
+     CMAKE_ARGS
+         -DUPNPC_BUILD_STATIC=ON
+         -DUPNPC_BUILD_SHARED=OFF
+         -DUPNPC_BUILD_TESTS=OFF)
+ if(NOT USE_SYSTEM_MINIUPNPC)
+-    target_compile_definitions(miniupnpc::libminiupnpc
++    target_compile_definitions(miniupnpc::miniupnpc
+         INTERFACE
+             MINIUPNP_STATICLIB)
+ endif()
+@@ -546,26 +566,90 @@ add_subdirectory(${TR_THIRD_PARTY_SOURCE_DIR}/wildmat)
+ add_subdirectory(${TR_THIRD_PARTY_SOURCE_DIR}/madler-crcany)
+ add_subdirectory(${TR_THIRD_PARTY_SOURCE_DIR}/wildmat)
+ 
+-tr_add_external_auto_library(DHT dht dht
++tr_add_external_auto_library(DHT dht
++    LIBNAME dht
+     TARGET dht::dht)
+ 
+-tr_add_external_auto_library(PSL libpsl psl
++tr_add_external_auto_library(PSL libpsl
++    LIBNAME psl
+     TARGET psl::psl)
+ 
+ if(ENABLE_UTP)
+-    tr_add_external_auto_library(UTP libutp utp
++    tr_add_external_auto_library(UTP libutp
+         SUBPROJECT
+-        TARGET libutp::libutp
+         CMAKE_ARGS
+             -DLIBUTP_SHARED:BOOL=OFF)
+ endif()
+ 
+-tr_add_external_auto_library(B64 libb64 b64
++tr_add_external_auto_library(B64 libb64
+     SUBPROJECT
+-    TARGET libb64::libb64
+     CMAKE_ARGS
+         -DLIBB64_SHARED:BOOL=OFF)
+ 
++tr_add_external_auto_library(FAST_FLOAT FastFloat
++    SUBPROJECT
++    SOURCE_DIR fast_float
++    CMAKE_ARGS
++        -DFASTFLOAT_INSTALL=OFF
++        -DFASTFLOAT_TEST=OFF
++        -DFASTFLOAT_SANITIZE=OFF
++        -DFASTFLOAT_CXX_STANDARD=${CMAKE_CXX_STANDARD})
++
++tr_add_external_auto_library(FMT fmt
++    SUBPROJECT
++    CMAKE_ARGS
++        -DFMT_INSTALL=OFF
++        -DFMT_SYSTEM_HEADERS=ON)
++if(NOT TARGET transmission::fmt-header-only)
++    add_library(transmission::fmt-header-only INTERFACE IMPORTED)
++    target_link_libraries(transmission::fmt-header-only
++        INTERFACE
++            fmt::fmt-header-only)
++    target_compile_definitions(transmission::fmt-header-only
++        INTERFACE
++            FMT_USE_EXCEPTIONS=0 # {fmt} >= 11.2.0
++            FMT_EXCEPTIONS=0 # {fmt} < 11.2.0
++    )
++endif()
++
++tr_add_external_auto_library(SMALL small
++    SUBPROJECT
++    CMAKE_ARGS
++        -DSMALL_BUILD_WITH_EXCEPTIONS=OFF)
++add_library(transmission::small INTERFACE IMPORTED)
++target_link_libraries(transmission::small
++    INTERFACE
++        small::small)
++target_compile_definitions(transmission::small
++    INTERFACE
++        SMALL_DISABLE_EXCEPTIONS=1)
++
++tr_add_external_auto_library(UTF8CPP utf8cpp
++    SUBPROJECT
++    SOURCE_DIR utfcpp)
++if (NOT TARGET utf8::cpp)
++    add_library(utf8::cpp ALIAS utf8cpp)
++endif()
++
++tr_add_external_auto_library(WIDE_INTEGER WideInteger
++    SUBPROJECT
++    SOURCE_DIR wide-integer)
++add_library(transmission::WideInteger INTERFACE IMPORTED)
++target_link_libraries(transmission::WideInteger
++    INTERFACE
++        WideInteger::WideInteger)
++include(CheckCXXSourceCompiles)
++check_cxx_source_compiles(
++"int main()
++{
++    unsigned __int128 u;
++    signed __int128 i;
++    return 0;
++}" TR_HAVE_INT128)
++target_compile_definitions(transmission::WideInteger
++    INTERFACE
++        $<$<BOOL:${TR_HAVE_INT128}>:WIDE_INTEGER_HAS_LIMB_TYPE_UINT64>)
++
+ set(TR_WEB_ASSETS ${PROJECT_SOURCE_DIR}/web/public_html)
+ if(REBUILD_WEB)
+     tr_get_required_flag(REBUILD_WEB NPM_IS_REQUIRED)
+@@ -804,11 +888,6 @@ endif()
+     endif()
+ endif()
+ 
+-if(ENABLE_TESTS)
+-    enable_testing()
+-    add_subdirectory(tests)
+-endif()
+-
+ function(tr_install_web DST_DIR)
+     if(INSTALL_WEB)
+         install(
+@@ -836,6 +915,11 @@ endforeach()
+         add_subdirectory(${P})
+     endif()
+ endforeach()
++
++if(ENABLE_TESTS)
++    enable_testing()
++    add_subdirectory(tests)
++endif()
+ 
+ if(ENABLE_DAEMON OR ENABLE_GTK OR ENABLE_QT)
+     tr_install_web(${CMAKE_INSTALL_DATAROOTDIR}/${TR_NAME})
diff --git a/net-p2p/transmission-components/files/patch-cmake_FindFastFloat.cmake b/net-p2p/transmission-components/files/patch-cmake_FindFastFloat.cmake
deleted file mode 100644
index 95e27a51ce23..000000000000
--- a/net-p2p/transmission-components/files/patch-cmake_FindFastFloat.cmake
+++ /dev/null
@@ -1,8 +0,0 @@
---- cmake/FindFastFloat.cmake.orig	2024-02-22 15:48:36 UTC
-+++ cmake/FindFastFloat.cmake
-@@ -2,4 +2,4 @@ target_include_directories(FastFloat::fast_float
- 
- target_include_directories(FastFloat::fast_float
-     INTERFACE
--        ${TR_THIRD_PARTY_SOURCE_DIR}/fast_float/include)
-+    	${CMAKE_INSTALL_PREFIX}/include)
diff --git a/net-p2p/transmission-components/files/patch-cmake_FindFmt.cmake b/net-p2p/transmission-components/files/patch-cmake_FindFmt.cmake
deleted file mode 100644
index c1b115e1dc75..000000000000
--- a/net-p2p/transmission-components/files/patch-cmake_FindFmt.cmake
+++ /dev/null
@@ -1,26 +0,0 @@
---- cmake/FindFmt.cmake.orig	2025-10-15 08:40:38 UTC
-+++ cmake/FindFmt.cmake
-@@ -1,10 +1,21 @@ add_library(fmt::fmt-header-only INTERFACE IMPORTED)
- add_library(fmt::fmt-header-only INTERFACE IMPORTED)
- 
-+set(${CMAKE_FIND_PACKAGE_NAME}_INCLUDE "${CMAKE_INSTALL_PREFIX}/include")
-+
- target_include_directories(fmt::fmt-header-only
-     INTERFACE
--        ${CMAKE_CURRENT_LIST_DIR}/../third-party/fmt/include)
-+     ${${CMAKE_FIND_PACKAGE_NAME}_INCLUDE})
- 
-+file(READ "${${CMAKE_FIND_PACKAGE_NAME}_INCLUDE}/fmt/base.h" _FMT_BASE_H)
-+if(_FMT_BASE_H MATCHES "FMT_VERSION ([0-9]+)([0-9][0-9])([0-9][0-9])")
-+    # Use math to skip leading zeros if any.
-+    math(EXPR _FMT_VERSION_MAJOR ${CMAKE_MATCH_1})
-+    math(EXPR _FMT_VERSION_MINOR ${CMAKE_MATCH_2})
-+    math(EXPR _FMT_VERSION_PATCH ${CMAKE_MATCH_3})
-+    set(${CMAKE_FIND_PACKAGE_NAME}_VERSION "${_FMT_VERSION_MAJOR}.${_FMT_VERSION_MINOR}.${_FMT_VERSION_PATCH}")
-+endif()
-+
- target_compile_definitions(fmt::fmt-header-only
-     INTERFACE
--        FMT_EXCEPTIONS=0
-+    	$<IF:$<VERSION_GREATER_EQUAL:${${CMAKE_FIND_PACKAGE_NAME}_VERSION},11.2.0>,FMT_USE_EXCEPTIONS,FMT_EXCEPTIONS>=0
-         FMT_HEADER_ONLY=1)
diff --git a/net-p2p/transmission-components/files/patch-cmake_FindLibevent.cmake b/net-p2p/transmission-components/files/patch-cmake_FindLibevent.cmake
new file mode 100644
index 000000000000..7ca6f8d04908
--- /dev/null
+++ b/net-p2p/transmission-components/files/patch-cmake_FindLibevent.cmake
@@ -0,0 +1,92 @@
+--- cmake/FindLibevent.cmake.orig	2026-02-21 07:48:47 UTC
++++ cmake/FindLibevent.cmake
+@@ -0,0 +1,89 @@
++if(${CMAKE_FIND_PACKAGE_NAME}_PREFER_STATIC_LIB)
++    set(LIBEVENT_STATIC_LINK TRUE)
++endif()
++find_package(${CMAKE_FIND_PACKAGE_NAME} QUIET NO_MODULE)
++
++include(FindPackageHandleStandardArgs)
++if(${CMAKE_FIND_PACKAGE_NAME}_FOUND)
++    find_package_handle_standard_args(${CMAKE_FIND_PACKAGE_NAME} CONFIG_MODE HANDLE_COMPONENTS)
++    return()
++endif()
++
++if(${CMAKE_FIND_PACKAGE_NAME}_PREFER_STATIC_LIB)
++    set(${CMAKE_FIND_PACKAGE_NAME}_ORIG_CMAKE_FIND_LIBRARY_SUFFIXES ${CMAKE_FIND_LIBRARY_SUFFIXES})
++    if(WIN32)
++        set(CMAKE_FIND_LIBRARY_SUFFIXES .a .lib ${CMAKE_FIND_LIBRARY_SUFFIXES})
++    else()
++        set(CMAKE_FIND_LIBRARY_SUFFIXES .a ${CMAKE_FIND_LIBRARY_SUFFIXES})
++    endif()
++endif()
++
++if(UNIX)
++    find_package(PkgConfig QUIET)
++endif()
++
++foreach(_comp IN LISTS ${CMAKE_FIND_PACKAGE_NAME}_FIND_COMPONENTS)
++    if(UNIX)
++        pkg_check_modules(_EVENT2_${_comp} QUIET libevent-${_comp})
++
++        if(_EVENT2_${_comp}_VERSION AND NOT ${CMAKE_FIND_PACKAGE_NAME}_VERSION)
++            set(${CMAKE_FIND_PACKAGE_NAME}_VERSION ${_EVENT2_${_comp}_VERSION})
++        endif()
++    endif()
++
++    # All components share the same include directory
++    find_path(${CMAKE_FIND_PACKAGE_NAME}_INCLUDE_DIR
++        NAMES event2/event.h
++        HINTS ${_EVENT2_${_comp}_INCLUDEDIR})
++
++    find_library(${CMAKE_FIND_PACKAGE_NAME}_${_comp}_LIBRARY
++        NAMES "event_${_comp}"
++        HINTS ${_EVENT2_${_comp}_LIBDIR})
++
++    mark_as_advanced(${CMAKE_FIND_PACKAGE_NAME}_${_comp}_LIBRARY)
++
++    set(${CMAKE_FIND_PACKAGE_NAME}_${_comp}_FOUND FALSE)
++    if(${CMAKE_FIND_PACKAGE_NAME}_${_comp}_LIBRARY)
++        set(${CMAKE_FIND_PACKAGE_NAME}_${_comp}_FOUND TRUE)
++    endif()
++endforeach()
++
++if(NOT ${CMAKE_FIND_PACKAGE_NAME}_VERSION AND ${CMAKE_FIND_PACKAGE_NAME}_INCLUDE_DIR)
++    file(STRINGS "${${CMAKE_FIND_PACKAGE_NAME}_INCLUDE_DIR}/event2/event-config.h" _EVENT_VERSION_STR
++        REGEX "^#define[\t ]+EVENT__VERSION[\t ]+\"[^\"]+\"")
++    if(_EVENT_VERSION_STR MATCHES "\"([^\"]+)\"")
++        set(${CMAKE_FIND_PACKAGE_NAME}_VERSION "${CMAKE_MATCH_1}")
++    endif()
++endif()
++
++find_package_handle_standard_args(${CMAKE_FIND_PACKAGE_NAME}
++    HANDLE_COMPONENTS
++    REQUIRED_VARS
++        ${CMAKE_FIND_PACKAGE_NAME}_INCLUDE_DIR
++    VERSION_VAR ${CMAKE_FIND_PACKAGE_NAME}_VERSION)
++
++if(${CMAKE_FIND_PACKAGE_NAME}_FOUND)
++    set(${CMAKE_FIND_PACKAGE_NAME}_INCLUDE_DIRS ${${CMAKE_FIND_PACKAGE_NAME}_INCLUDE_DIR})
++
++    set(${CMAKE_FIND_PACKAGE_NAME}_LIBRARIES)
++    foreach(_comp IN LISTS ${CMAKE_FIND_PACKAGE_NAME}_FIND_COMPONENTS)
++        if(NOT TARGET libevent::${_comp})
++            add_library(libevent::${_comp} INTERFACE IMPORTED)
++            target_include_directories(libevent::${_comp}
++                INTERFACE
++                    ${${CMAKE_FIND_PACKAGE_NAME}_INCLUDE_DIR})
++            target_link_libraries(libevent::${_comp}
++                INTERFACE
++                    ${${CMAKE_FIND_PACKAGE_NAME}_${_comp}_LIBRARY})
++        endif()
++
++        list(APPEND ${CMAKE_FIND_PACKAGE_NAME}_LIBRARIES libevent::${_comp})
++    endforeach()
++endif()
++
++mark_as_advanced(${CMAKE_FIND_PACKAGE_NAME}_INCLUDE_DIR)
++
++if(${CMAKE_FIND_PACKAGE_NAME}_PREFER_STATIC_LIB)
++    set(CMAKE_FIND_LIBRARY_SUFFIXES ${${CMAKE_FIND_PACKAGE_NAME}_ORIG_CMAKE_FIND_LIBRARY_SUFFIXES})
++    unset(${CMAKE_FIND_PACKAGE_NAME}_ORIG_CMAKE_FIND_LIBRARY_SUFFIXES)
++endif()
diff --git a/net-p2p/transmission-components/files/patch-cmake_FindRapidJSON.cmake b/net-p2p/transmission-components/files/patch-cmake_FindRapidJSON.cmake
new file mode 100644
index 000000000000..53bc1d24d99b
--- /dev/null
+++ b/net-p2p/transmission-components/files/patch-cmake_FindRapidJSON.cmake
@@ -0,0 +1,47 @@
+--- cmake/FindRapidJSON.cmake.orig	2026-01-26 23:59:25 UTC
++++ cmake/FindRapidJSON.cmake
+@@ -1,9 +1,37 @@
+-add_library(RapidJSON INTERFACE IMPORTED)
++find_package(${CMAKE_FIND_PACKAGE_NAME} QUIET NO_MODULE)
+ 
+-target_include_directories(RapidJSON
+-    INTERFACE
+-        ${TR_THIRD_PARTY_SOURCE_DIR}/rapidjson/include)
++include(FindPackageHandleStandardArgs)
++if(${CMAKE_FIND_PACKAGE_NAME}_FOUND)
++    find_package_handle_standard_args(${CMAKE_FIND_PACKAGE_NAME} CONFIG_MODE)
++    return()
++endif()
+ 
+-target_compile_definitions(RapidJSON
+-    INTERFACE
+-        RAPIDJSON_HAS_STDSTRING=1)
++if(UNIX)
++    find_package(PkgConfig QUIET)
++    pkg_check_modules(_RAPIDJSON QUIET RapidJSON)
++endif()
++
++find_path(${CMAKE_FIND_PACKAGE_NAME}_INCLUDE_DIR
++    NAMES rapidjson/rapidjson.h
++    HINTS ${_RAPIDJSON_INCLUDEDIR})
++
++if(_RAPIDJSON_VERSION)
++    set(${CMAKE_FIND_PACKAGE_NAME}_VERSION ${_RAPIDJSON_VERSION})
++endif()
++
++find_package_handle_standard_args(${CMAKE_FIND_PACKAGE_NAME}
++    REQUIRED_VARS ${CMAKE_FIND_PACKAGE_NAME}_INCLUDE_DIR
++    VERSION_VAR ${CMAKE_FIND_PACKAGE_NAME}_VERSION)
++
++if(${CMAKE_FIND_PACKAGE_NAME}_FOUND)
++    set(${CMAKE_FIND_PACKAGE_NAME}_INCLUDE_DIRS ${${CMAKE_FIND_PACKAGE_NAME}_INCLUDE_DIR})
++
++    if(NOT TARGET RapidJSON)
++        add_library(RapidJSON INTERFACE IMPORTED)
++        target_include_directories(RapidJSON
++            INTERFACE
++                ${${CMAKE_FIND_PACKAGE_NAME}_INCLUDE_DIR})
++    endif()
++endif()
++
++mark_as_advanced(${CMAKE_FIND_PACKAGE_NAME}_INCLUDE_DIR)
diff --git a/net-p2p/transmission-components/files/patch-cmake_FindUtfCpp.cmake b/net-p2p/transmission-components/files/patch-cmake_FindUtfCpp.cmake
deleted file mode 100644
index 49ad66cf5725..000000000000
--- a/net-p2p/transmission-components/files/patch-cmake_FindUtfCpp.cmake
+++ /dev/null
@@ -1,8 +0,0 @@
---- cmake/FindUtfCpp.cmake.orig	2024-02-22 15:49:05 UTC
-+++ cmake/FindUtfCpp.cmake
-@@ -2,4 +2,4 @@ target_include_directories(utf8::cpp
- 
- target_include_directories(utf8::cpp
-     INTERFACE
--     ${CMAKE_CURRENT_LIST_DIR}/../third-party/utfcpp/source)
-+    	${CMAKE_INSTALL_PREFIX}/include/utf8cpp)
diff --git a/net-p2p/transmission-components/files/patch-cmake_Finddht.cmake b/net-p2p/transmission-components/files/patch-cmake_Finddht.cmake
new file mode 100644
index 000000000000..7aa0b19bd904
--- /dev/null
+++ b/net-p2p/transmission-components/files/patch-cmake_Finddht.cmake
@@ -0,0 +1,42 @@
+--- cmake/Finddht.cmake.orig	2026-01-31 08:51:53 UTC
++++ cmake/Finddht.cmake
+@@ -0,0 +1,39 @@
++if(${CMAKE_FIND_PACKAGE_NAME}_PREFER_STATIC_LIB)
++    set(${CMAKE_FIND_PACKAGE_NAME}_ORIG_CMAKE_FIND_LIBRARY_SUFFIXES ${CMAKE_FIND_LIBRARY_SUFFIXES})
++    if(WIN32)
++        set(CMAKE_FIND_LIBRARY_SUFFIXES .a .lib ${CMAKE_FIND_LIBRARY_SUFFIXES})
++    else()
++        set(CMAKE_FIND_LIBRARY_SUFFIXES .a ${CMAKE_FIND_LIBRARY_SUFFIXES})
++    endif()
++endif()
++
++if(UNIX)
++    find_package(PkgConfig QUIET)
++    pkg_check_modules(_DHT QUIET libdht)
++endif()
++
++find_path(${CMAKE_FIND_PACKAGE_NAME}_INCLUDE_DIR
++    NAMES dht/dht.h
++    HINTS ${_DHT_INCLUDEDIR})
++find_library(${CMAKE_FIND_PACKAGE_NAME}_LIBRARY
++    NAMES dht
++    HINTS ${_DHT_LIBDIR})
++
++include(FindPackageHandleStandardArgs)
++
++find_package_handle_standard_args(${CMAKE_FIND_PACKAGE_NAME}
++    REQUIRED_VARS
++        ${CMAKE_FIND_PACKAGE_NAME}_LIBRARY
++        ${CMAKE_FIND_PACKAGE_NAME}_INCLUDE_DIR)
++
++if(${CMAKE_FIND_PACKAGE_NAME}_FOUND)
++    set(${CMAKE_FIND_PACKAGE_NAME}_INCLUDE_DIRS ${${CMAKE_FIND_PACKAGE_NAME}_INCLUDE_DIR})
++    set(${CMAKE_FIND_PACKAGE_NAME}_LIBRARIES ${${CMAKE_FIND_PACKAGE_NAME}_LIBRARY})
++endif()
++
++mark_as_advanced(${CMAKE_FIND_PACKAGE_NAME}_INCLUDE_DIR ${CMAKE_FIND_PACKAGE_NAME}_LIBRARY)
++
++if(${CMAKE_FIND_PACKAGE_NAME}_PREFER_STATIC_LIB)
++    set(CMAKE_FIND_LIBRARY_SUFFIXES ${${CMAKE_FIND_PACKAGE_NAME}_ORIG_CMAKE_FIND_LIBRARY_SUFFIXES})
++    unset(${CMAKE_FIND_PACKAGE_NAME}_ORIG_CMAKE_FIND_LIBRARY_SUFFIXES)
++endif()
diff --git a/net-p2p/transmission-components/files/patch-cmake_Findfmt.cmake b/net-p2p/transmission-components/files/patch-cmake_Findfmt.cmake
new file mode 100644
index 000000000000..377f0c0c2f5a
--- /dev/null
+++ b/net-p2p/transmission-components/files/patch-cmake_Findfmt.cmake
@@ -0,0 +1,74 @@
+--- cmake/Findfmt.cmake.orig	2026-01-31 08:51:45 UTC
++++ cmake/Findfmt.cmake
+@@ -0,0 +1,71 @@
++find_package(${CMAKE_FIND_PACKAGE_NAME} QUIET NO_MODULE)
++
++include(FindPackageHandleStandardArgs)
++if(${CMAKE_FIND_PACKAGE_NAME}_FOUND)
++    find_package_handle_standard_args(${CMAKE_FIND_PACKAGE_NAME} CONFIG_MODE)
++    return()
++endif()
++
++if(${CMAKE_FIND_PACKAGE_NAME}_PREFER_STATIC_LIB)
++    set(${CMAKE_FIND_PACKAGE_NAME}_ORIG_CMAKE_FIND_LIBRARY_SUFFIXES ${CMAKE_FIND_LIBRARY_SUFFIXES})
++    if(WIN32)
++        set(CMAKE_FIND_LIBRARY_SUFFIXES .a .lib ${CMAKE_FIND_LIBRARY_SUFFIXES})
++    else()
++        set(CMAKE_FIND_LIBRARY_SUFFIXES .a ${CMAKE_FIND_LIBRARY_SUFFIXES})
++    endif()
++endif()
++
++if(UNIX)
++    find_package(PkgConfig QUIET)
++    pkg_check_modules(_FMT QUIET fmt)
++endif()
++
++find_path(${CMAKE_FIND_PACKAGE_NAME}_INCLUDE_DIR
++    NAMES fmt/core.h
++    HINTS ${_FMT_INCLUDEDIR})
++
++if(_FMT_VERSION)
++    set(${CMAKE_FIND_PACKAGE_NAME}_VERSION ${_FMT_VERSION})
++elseif(${CMAKE_FIND_PACKAGE_NAME}_INCLUDE_DIR)
++    set(_FMT_VERSION_H_PATH "${${CMAKE_FIND_PACKAGE_NAME}_INCLUDE_DIR}/fmt/base.h")
++    if(NOT EXISTS "${_FMT_VERSION_H_PATH}")
++        # fmt < 11
*** 1158 LINES SKIPPED ***


home | help

Want to link to this message? Use this
URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?699b6e2a.1f12f.71ba454>