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>
