git: 2aa42c66e251 - main - net/linphone: update to 6.1.2

From: Mateusz Piotrowski <0mp_at_FreeBSD.org>
Date: Sun, 20 Sep 2026 16:41:38 UTC
The branch main has been updated by 0mp:

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

commit 2aa42c66e25139d1e75e576a028bfe03ce819604
Author:     Hiroo Ono <hiroo.ono+freebsd@gmail.com>
AuthorDate: 2026-08-14 07:29:04 +0000
Commit:     Mateusz Piotrowski <0mp@FreeBSD.org>
CommitDate: 2026-09-20 16:40:39 +0000

    net/linphone: update to 6.1.2
    
    PR:             294162
    Co-authored-by: Myokla K. <nikolaytihonov2022@gmail.com>
---
 net/linphone/Makefile                              | 175 +++++++++++----------
 net/linphone/distinfo                              |   8 +-
 net/linphone/files/linphone.desktop                |  26 ---
 net/linphone/files/linphone.desktop.in             |  11 ++
 net/linphone/files/patch-CMakeLists.txt            |  42 ++---
 net/linphone/files/patch-Linphone_CMakeLists.txt   |  53 +++++++
 .../files/patch-Linphone_CMakeLists.txt-jsoncpp    |  13 ++
 net/linphone/files/patch-Linphone_core_App.cpp     |  56 +++++++
 net/linphone/files/patch-Linphone_core_App.hpp     |  11 ++
 .../patch-Linphone_core_notifier_Notifier.cpp      |  10 ++
 ...h-Linphone_model_setting_MediastreamerUtils.cpp |  21 +++
 .../patch-Linphone_model_setting_SettingsModel.cpp |  17 ++
 net/linphone/files/patch-Linphone_tool_Utils.cpp   |  12 ++
 .../patch-Linphone_tool_native_DesktopTools.hpp    |  11 ++
 .../files/patch-cmake_Modules_FindBCToolbox.cmake  |  29 ++++
 .../patch-cmake_Modules_FindLibLinphone.cmake      |  22 +++
 .../patch-cmake_Modules_FindLinphoneCxx.cmake      |  11 ++
 .../patch-cmake_Modules_FindMediastreamer2.cmake   |  22 +++
 net/linphone/files/patch-external_ispell_config.h  |  11 --
 .../files/patch-linphone-app_CMakeLists.txt        |  93 -----------
 .../patch-linphone-app_cmake_FindBCToolbox.cmake   |  13 --
 .../patch-linphone-app_cmake_FindLibLinphone.cmake |  28 ----
 ...tch-linphone-app_cmake_FindMediastreamer2.cmake |  29 ----
 .../patch-linphone-app_cmake_FindQtKeychain.cmake  |  35 -----
 ...cmake__builder_linphone__package_CMakeLists.txt |  11 --
 .../files/patch-linphone-app_src_app_App.cpp       |  21 ---
 .../patch-linphone-app_src_app_logger_Logger.cpp   |  11 --
 ...pp_src_components_other_clipboard_Clipboard.cpp |  11 --
 ...components_other_desktop-tools_DesktopTools.hpp |  11 --
 ...components_other_spell-checker_SpellChecker.cpp |  11 --
 ...components_other_spell-checker_SpellChecker.hpp |  20 ---
 ...ch-linphone-app_src_components_vfs_VfsUtils.hpp |  11 --
 net/linphone/pkg-descr                             |  14 +-
 net/linphone/pkg-plist                             |  14 --
 34 files changed, 422 insertions(+), 472 deletions(-)

diff --git a/net/linphone/Makefile b/net/linphone/Makefile
index ddf3732c0a06..8abbe5d7c7ee 100644
--- a/net/linphone/Makefile
+++ b/net/linphone/Makefile
@@ -1,104 +1,115 @@
 PORTNAME=	linphone
-PORTVERSION=	5.3.2
-PORTEPOCH=	1
+DISTVERSION=	6.1.2
 CATEGORIES=	net
-EXTRACT_ONLY=	${DISTNAME}${EXTRACT_SUFX}
 
 MAINTAINER=	hiroo.ono+freebsd@gmail.com
-COMMENT=	SIP client supporting voice/video calls and text messaging
+COMMENT=	Qt 6 desktop SIP client for voice, video, and messaging
 WWW=		https://www.linphone.org/
 
 LICENSE=	GPLv3
+LICENSE_FILE=	${WRKSRC}/LICENSE.txt
+
+RUN_DEPENDS=	xdg-screensaver:devel/xdg-utils
 
-BUILD_DEPENDS=	patchelf:sysutils/patchelf
 LIB_DEPENDS=	libbctoolbox.so:net/bctoolbox \
 		libbelcard.so:deskutils/belcard \
+		libbelle-sip.so:net/belle-sip \
+		libbelr.so:textproc/belr \
+		libbzrtp.so:security/bzrtp \
+		libjsoncpp.so:devel/jsoncpp \
+		liblime.so:security/lime \
 		liblinphone++.so:net/liblinphone \
 		libmediastreamer2.so:net/mediastreamer \
-		libortp.so:net/ortp \
-		libqt5keychain.so:security/qtkeychain@qt5 \
-		libQt5Multimedia.so:multimedia/qt5-multimedia \
-		libxml2.so:textproc/libxml2 \
-		liblime.so:security/lime \
-		libjsoncpp.so:devel/jsoncpp \
-		libbelle-sip.so:net/belle-sip \
-		libbelr.so:textproc/belr
+		libortp.so:net/ortp
 
-USES=		cmake compiler:c++11-lib pkgconfig qt:5 tar:bzip2 xorg sqlite:3
+USES=		cmake compiler:c++17-lang desktop-file-utils gl gnome pkgconfig qt:6 sqlite:3 tar:bzip2 xorg
+USE_GL=		gl
+USE_GNOME=	libxml2
 USE_GITLAB=	yes
-USE_XORG=	x11
 GL_SITE=	https://gitlab.linphone.org/BC
-GL_ACCOUNT=	public \
-		public/external:ispell
-GL_PROJECT=	linphone-desktop \
-		ispell:ispell
-GL_TAGNAME=	${PORTVERSION} \
-		05574fe160222c3d0b6283c1433c9b087271fad1:ispell
-USE_QT=		concurrent core dbus declarative gui linguisttools network \
-		quickcontrols2 speech svg testlib widgets buildtools:build \
-		qmake:build graphicaleffects:run quickcontrols:run
+GL_ACCOUNT=	public
+GL_PROJECT=	linphone-desktop
+GL_TAGNAME=	${DISTVERSION}
+USE_QT=		base declarative networkauth shadertools:build svg tools:build
+USE_XORG=	x11
 
-# Linphone's plugin API is implemented in a shared object with rather generic
-# SONAME and filename, libapp-plugin.so. For classic installation in the
-# local tree, we better move it to its own subdirectory, so we need RPATH
-# here.
-# This will affect actual Linphone plugins as well if they get ported.
-CMAKE_ARGS+=	-DCMAKE_INSTALL_RPATH="${LOCALBASE}/lib/linphone" \
-		-DCMAKE_INSTALL_RPATH_USE_LINK_PATH=NO \
+SUB_FILES=	linphone.desktop
+
+CMAKE_ARGS+=	-DLINPHONE_QT_ONLY=ON \
+		-DLINPHONE_OUTPUT_DIR=${LOCALBASE} \
 		-DLINPHONEAPP_INSTALL_PREFIX=${PREFIX} \
-		-DLINPHONEAPP_VERSION="${PORTVERSION}" \
+		-DLINPHONEAPP_VERSION=${DISTVERSION} \
+		-DMEDIASTREAMER2_PLUGINS_LOCATION=${LOCALBASE}/lib/mediastreamer/plugins \
+		-DCMAKE_PREFIX_PATH=${LOCALBASE} \
+		-DCMAKE_SKIP_INSTALL_RPATH=ON \
+		-DCMAKE_BUILD_WITH_INSTALL_RPATH=OFF \
+		-DENABLE_VIDEO=ON \
+		-DENABLE_QT_GL=ON \
+		-DENABLE_QT_KEYCHAIN=OFF \
+		-DENABLE_BUILD_APP_PLUGINS=OFF \
+		-DENABLE_CRASH_HANDLER=OFF \
+		-DENABLE_APP_PACKAGING=OFF \
+		-DENABLE_APP_PDF_VIEWER=OFF \
+		-DENABLE_APP_WEBVIEW=OFF \
+		-DENABLE_APP_PACKAGE_ROOTCA=OFF \
+		-DENABLE_UPDATE_CHECK=OFF \
+		-DENABLE_STRICT=OFF \
+		-DENABLE_RELATIVE_PREFIX=OFF \
+		-DENABLE_SCREENSHARING=OFF \
+		-DENABLE_OPENH264=OFF \
 		-DGIT_EXECUTABLE=NO
-CMAKE_ON=	ENABLE_VIDEO \
-		ENABLE_BUILD_VERBOSE \
-		ENABLE_QT_KEYCHAIN
-CMAKE_OFF=	ENABLE_BUILD_APP_PLUGINS
-
-ICONDIR=	${LOCALBASE}/share/icons/hicolor
 
-post-extract:
-	${TAR} -x -C ${WRKSRC}/external/ispell \
-		-f ${DISTDIR}/${DISTFILE_ispell} \
-		--strip-components 1
+ICON_SIZES=	16x16 22x22 24x24 32x32 64x64 128x128 256x256
 
-# override install because otherwise, it does a complete rebuild during stage
-do-install:
-	# Patchelf
-	patchelf --set-rpath "${LOCALBASE}/lib:${LOCALBASE}/lib/linphone" \
-		${BUILD_WRKSRC}/linphone-app/linphone
-	# Linphone
-	${MKDIR} ${STAGEDIR}${LOCALBASE}/lib/linphone \
-		${STAGEDIR}${LOCALBASE}/include/LinphoneApp \
-		${STAGEDIR}${DATADIR} \
-		${STAGEDIR}${ETCDIR} \
-		${STAGEDIR}${ICONDIR}
-	${INSTALL_PROGRAM} ${BUILD_WRKSRC}/linphone-app/linphone \
-		${STAGEDIR}${LOCALBASE}/bin
-	${INSTALL_LIB} ${BUILD_WRKSRC}/linphone-app/libapp-plugin.so \
-		${STAGEDIR}${LOCALBASE}/lib/linphone
-	${INSTALL_DATA} ${BUILD_WRKSRC}/linphone-app/qt.conf \
-		${STAGEDIR}${ETCDIR}
-	${INSTALL_DATA} ${WRKSRC}/linphone-app/include/LinphoneApp/* \
-		${STAGEDIR}${LOCALBASE}/include/LinphoneApp
-	${INSTALL_DATA} ${BUILD_WRKSRC}/linphone-app/linphone.desktop \
-		${STAGEDIR}${LOCALBASE}/share/applications/linphone.desktop
-	${MKDIR} ${STAGEDIR}${ICONDIR}/scalable/apps
-	${INSTALL_DATA} ${WRKSRC}/linphone-app/assets/images/linphone_logo.svg \
-		${STAGEDIR}${ICONDIR}/scalable/apps/linphone.svg
-	for idir in 16x16 22x22 24x24 32x32 64x64 128x128 256x256; do \
-		${MKDIR} ${STAGEDIR}${ICONDIR}/$${idir}/apps; \
-		${INSTALL_DATA} ${WRKSRC}/linphone-app/assets/icons/hicolor/$${idir}/apps/icon.png \
-			${STAGEDIR}${ICONDIR}/$${idir}/apps/linphone.png; \
-	done
-	${MKDIR} ${STAGEDIR}${DATADIR}/assistant
-	${INSTALL_DATA} ${WRKSRC}/linphone-app/assets/assistant/* \
-		${STAGEDIR}${DATADIR}/assistant
-	${INSTALL_DATA} ${WRKSRC}/linphone-app/assets/linphonerc-factory \
-		${STAGEDIR}${DATADIR}
-	# ISpell
-	${INSTALL_LIB} ${BUILD_WRKSRC}/external/ispell/libISpell.so \
-		${STAGEDIR}${LOCALBASE}/lib
-	${MKDIR} ${STAGEDIR}${DATADIR}/ispell_dictionaries
-	${INSTALL_DATA} ${WRKSRC}/external/ispell/ispell_dictionaries/* \
-		${STAGEDIR}${DATADIR}/ispell_dictionaries
+post-install:
+	${MKDIR} ${STAGEDIR}${PREFIX}/share/applications
+	${INSTALL_DATA} ${WRKDIR}/linphone.desktop \
+		${STAGEDIR}${PREFIX}/share/applications/linphone.desktop
+	${MKDIR} ${STAGEDIR}${PREFIX}/share/icons/hicolor/scalable/apps
+	${INSTALL_DATA} ${WRKSRC}/Linphone/data/image/logo.svg \
+		${STAGEDIR}${PREFIX}/share/icons/hicolor/scalable/apps/linphone.svg
+.for size in ${ICON_SIZES}
+	${MKDIR} ${STAGEDIR}${PREFIX}/share/icons/hicolor/${size}/apps
+	${INSTALL_DATA} ${WRKSRC}/Linphone/data/icon/hicolor/${size}/apps/icon.png \
+		${STAGEDIR}${PREFIX}/share/icons/hicolor/${size}/apps/linphone.png
+.endfor
+	# A Qt5 DT_NEEDED entry is an unconditional build failure for this port.
+	@if /usr/bin/readelf -d ${STAGEDIR}${PREFIX}/bin/linphone | \
+		${GREP} -Eq 'NEEDED.*libQt5'; then \
+		${ECHO_MSG} 'ERROR: linphone is directly linked against Qt5'; \
+		exit 1; \
+	fi
+	@${ECHO_MSG} '===> Qt linkage for staged linphone'
+	@/usr/bin/ldd ${STAGEDIR}${PREFIX}/bin/linphone
+	@if /usr/bin/ldd ${STAGEDIR}${PREFIX}/bin/linphone | \
+		${GREP} -Eq 'libQt5|/qt5/'; then \
+		${ECHO_MSG} 'ERROR: linphone has a direct or transitive Qt5 dependency'; \
+		exit 1; \
+	fi
+	@if ! /usr/bin/ldd ${STAGEDIR}${PREFIX}/bin/linphone | \
+		${GREP} -Eq 'libQt6(Core|Gui|Quick|Qml|OpenGL|Widgets)'; then \
+		${ECHO_MSG} 'ERROR: linphone Qt6 linkage was not detected'; \
+		exit 1; \
+	fi
+	@${ECHO_MSG} '===> Qt linkage for system MSQOGL'
+	@/usr/bin/ldd ${LOCALBASE}/lib/mediastreamer/plugins/libmsqogl.so
+	@if /usr/bin/ldd ${LOCALBASE}/lib/mediastreamer/plugins/libmsqogl.so | \
+		${GREP} -Eq 'libQt5|/qt5/'; then \
+		${ECHO_MSG} 'ERROR: system libmsqogl.so is linked against Qt5'; \
+		exit 1; \
+	fi
+	@if ! /usr/bin/ldd ${LOCALBASE}/lib/mediastreamer/plugins/libmsqogl.so | \
+		${GREP} -Eq 'libQt6(Core|Gui|Quick|Qml|OpenGL|Widgets)'; then \
+		${ECHO_MSG} 'ERROR: system libmsqogl.so Qt6 linkage was not detected'; \
+		exit 1; \
+	fi
+	# The package must not contain private copies of the system SDK or Qt.
+	@if ${FIND} ${STAGEDIR}${PREFIX} -type f \( \
+		-name 'libQt5*.so*' -o -name 'libQt6*.so*' -o \
+		-name 'liblinphone*.so*' -o -name 'libmediastreamer*.so*' \) | \
+		${GREP} -q .; then \
+		${ECHO_MSG} 'ERROR: staged tree contains bundled Qt/Liblinphone/Mediastreamer libraries'; \
+		exit 1; \
+	fi
 
 .include <bsd.port.mk>
diff --git a/net/linphone/distinfo b/net/linphone/distinfo
index ddef8dabe1a6..89246d389f19 100644
--- a/net/linphone/distinfo
+++ b/net/linphone/distinfo
@@ -1,5 +1,3 @@
-TIMESTAMP = 1766765152
-SHA256 (linphone-desktop-5.3.2.tar.bz2) = c5ef9fb3b31720da773e7cac54999311b18f254690a3117c3a4692eb936e499c
-SIZE (linphone-desktop-5.3.2.tar.bz2) = 2569523
-SHA256 (public/external-ispell-05574fe160222c3d0b6283c1433c9b087271fad1_GL0.tar.gz) = d0c3fd54a4c6e37af5ce83fae001e47403eeb113efd530d553f437766b8ffe20
-SIZE (public/external-ispell-05574fe160222c3d0b6283c1433c9b087271fad1_GL0.tar.gz) = 1562075
+TIMESTAMP = 1786680452
+SHA256 (linphone-desktop-6.1.2.tar.bz2) = 23f02d67eb2c7d5500fd84c42d4dd655dff9035ea67d26b541b63fb3c2017b7d
+SIZE (linphone-desktop-6.1.2.tar.bz2) = 23146608
diff --git a/net/linphone/files/linphone.desktop b/net/linphone/files/linphone.desktop
deleted file mode 100644
index 8235d9514058..000000000000
--- a/net/linphone/files/linphone.desktop
+++ /dev/null
@@ -1,26 +0,0 @@
-[Desktop Entry]
-Name=Linphone
-GenericName=SIP Phone
-Comment=Linphone is a libre SIP client
-Type=Application
-Exec=linphone %u
-Icon=linphone
-Terminal=false
-Categories=Network;Telephony;
-
-
-# Translations
-Name[de]=Linphone
-Name[he]=Linphone
-Name[ar]=لِنْفُونْ
-Name[hu]=Linphone
-Name[ru]=Linphone
-Name[nb_NO]=Linphone
-Name[it]=Linphone
-Name[ja]=Linphone
-Name[cs]=Linphone
-Name[sr]=Линфон
-Name[sv]=Linphone
-Name[zh_CN]=Linphone
-Name[fr]=Linphone
-Name[zh_TW]=Linphone
diff --git a/net/linphone/files/linphone.desktop.in b/net/linphone/files/linphone.desktop.in
new file mode 100644
index 000000000000..b7565c60c5e8
--- /dev/null
+++ b/net/linphone/files/linphone.desktop.in
@@ -0,0 +1,11 @@
+[Desktop Entry]
+Name=Linphone
+GenericName=SIP Phone
+Comment=Qt 6 SIP client for voice and video calls
+Type=Application
+Exec=linphone %u
+Icon=linphone
+Terminal=false
+Categories=Network;Telephony;
+MimeType=x-scheme-handler/sip-linphone;x-scheme-handler/linphone-sip;x-scheme-handler/sip;x-scheme-handler/sips-linphone;x-scheme-handler/linphone-sips;x-scheme-handler/sips;x-scheme-handler/tel;x-scheme-handler/callto;x-scheme-handler/linphone-config;
+StartupWMClass=Linphone
diff --git a/net/linphone/files/patch-CMakeLists.txt b/net/linphone/files/patch-CMakeLists.txt
index e235da081733..ecd3fea57582 100644
--- a/net/linphone/files/patch-CMakeLists.txt
+++ b/net/linphone/files/patch-CMakeLists.txt
@@ -1,23 +1,23 @@
---- CMakeLists.txt.orig	2025-11-12 12:55:13 UTC
+--- CMakeLists.txt.orig	2026-07-15 12:43:54 UTC
 +++ CMakeLists.txt
-@@ -228,13 +228,13 @@ if(NOT APPLE OR MONO_ARCH)
- 					set(CMAKE_POLICY_DEFAULT_CMP0077 NEW) # Prevent project from overriding the options we just set here
- 					add_subdirectory("linphone-sdk")
- 			endfunction()
--			add_linphone_sdk()
-+			# add_linphone_sdk()
- 
- 			if(ENABLE_QT_KEYCHAIN)
- 					function(add_linphone_keychain)
- 						add_subdirectory("external/qtkeychain")
- 					endfunction()
--					add_linphone_keychain()
-+					# add_linphone_keychain()
+@@ -253,8 +253,11 @@ if(NOT APPLE OR MONO_ARCH)
+ 	endif()
+ 	function(add_linphone_app)
+ 			set(CMAKE_POLICY_DEFAULT_CMP0077 NEW) # Prevent project from overriding the options we just set here
+-			if(UNIX)
++			if(UNIX AND NOT CMAKE_SYSTEM_NAME STREQUAL "FreeBSD")
+ 					set(CMAKE_INSTALL_RPATH "$ORIGIN:$ORIGIN/lib64:$ORIGIN/../lib64:$ORIGIN/lib:$ORIGIN/../lib")
++			elseif(CMAKE_SYSTEM_NAME STREQUAL "FreeBSD")
++					# System Qt and Linphone SDK libraries are resolved through rtld/ldconfig.
++					set(CMAKE_SKIP_INSTALL_RPATH ON)
  			endif()
- 			if(NOT APPLE AND NOT WIN32)
- 				function(add_linphone_ispell)
-@@ -276,4 +276,3 @@ endif()
- else()
-     include(cmake/TasksMacos.cmake)
- endif()
--
+ 			add_subdirectory("Linphone")
+ 	endfunction()
+@@ -293,4 +296,6 @@ endif()
+ # endif()
+ 
+ 
+-file(COPY "${CMAKE_CURRENT_SOURCE_DIR}/cmake/hook/pre-commit" DESTINATION "${CMAKE_CURRENT_SOURCE_DIR}/.git/hooks/")
++if(IS_DIRECTORY "${CMAKE_CURRENT_SOURCE_DIR}/.git/hooks")
++	file(COPY "${CMAKE_CURRENT_SOURCE_DIR}/cmake/hook/pre-commit" DESTINATION "${CMAKE_CURRENT_SOURCE_DIR}/.git/hooks/")
++endif()
diff --git a/net/linphone/files/patch-Linphone_CMakeLists.txt b/net/linphone/files/patch-Linphone_CMakeLists.txt
new file mode 100644
index 000000000000..a1dbed462865
--- /dev/null
+++ b/net/linphone/files/patch-Linphone_CMakeLists.txt
@@ -0,0 +1,53 @@
+--- Linphone/CMakeLists.txt.orig
++++ Linphone/CMakeLists.txt
+@@ -39,7 +39,8 @@
+ ################################################################
+ #						CONFIGS
+ ################################################################
+-if(NOT WIN32)
++# Qt 6.11 adds deprecations that are warnings, not FreeBSD port failures.
++if(NOT WIN32 AND NOT CMAKE_SYSTEM_NAME STREQUAL "FreeBSD")
+ 	add_compile_options(-Werror=deprecated-declarations)
+ endif()
+ set(CMAKE_CXX_STANDARD_REQUIRED ON)
+@@ -58,22 +59,26 @@
+ bc_parse_full_version(${LINPHONEAPP_VERSION} LINPHONE_MAJOR_VERSION LINPHONE_MINOR_VERSION LINPHONE_MICRO_VERSION LINPHONE_BRANCH_VERSION)
+ 
+ set(LINPHONEAPP_SHORT_VERSION "${LINPHONE_MAJOR_VERSION}.${LINPHONE_MINOR_VERSION}.${LINPHONE_MICRO_VERSION}")
+ 
+-set(GIT_BRANCH_NAME)
+-execute_process(
+-    COMMAND git name-rev --name-only HEAD
+-	WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}
+-    OUTPUT_VARIABLE GIT_BRANCH_NAME
+-    OUTPUT_STRIP_TRAILING_WHITESPACE
+-)
++set(GIT_BRANCH_NAME "release/6.1")
++if(IS_DIRECTORY "${CMAKE_SOURCE_DIR}/.git")
++	execute_process(
++		COMMAND git name-rev --name-only HEAD
++		WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}
++		OUTPUT_VARIABLE GIT_BRANCH_NAME
++		OUTPUT_STRIP_TRAILING_WHITESPACE
++	)
++endif()
+ 
+-set(LINPHONESDK_VERSION)
+-execute_process(
+-    COMMAND git describe
+-    WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}/external/linphone-sdk
+-    OUTPUT_VARIABLE LINPHONESDK_VERSION
+-    OUTPUT_STRIP_TRAILING_WHITESPACE
+-)
++set(LINPHONESDK_VERSION "system")
++if(IS_DIRECTORY "${CMAKE_SOURCE_DIR}/external/linphone-sdk/.git")
++	execute_process(
++		COMMAND git describe
++		WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}/external/linphone-sdk
++		OUTPUT_VARIABLE LINPHONESDK_VERSION
++		OUTPUT_STRIP_TRAILING_WHITESPACE
++	)
++endif()
+ 
+ include(application_info.cmake)
+ string(TIMESTAMP CURRENT_YEAR "%Y")
diff --git a/net/linphone/files/patch-Linphone_CMakeLists.txt-jsoncpp b/net/linphone/files/patch-Linphone_CMakeLists.txt-jsoncpp
new file mode 100644
index 000000000000..97c1080171c4
--- /dev/null
+++ b/net/linphone/files/patch-Linphone_CMakeLists.txt-jsoncpp
@@ -0,0 +1,13 @@
+--- Linphone/CMakeLists.txt.orig
++++ Linphone/CMakeLists.txt
+@@ -7,6 +7,11 @@
+ set(LINPHONE_PACKAGES Mediastreamer2 LinphoneCxx BCToolbox LibLinphone)
+ list(APPEND CMAKE_MODULE_PATH "${CMAKE_SOURCE_DIR}/cmake/Modules")
++
++# LibLinphone's installed CMake target exports jsoncpp_lib in its link
++# interface.  Load jsoncpp's package first so that name resolves to the
++# imported target instead of being emitted literally as -ljsoncpp_lib.
++find_package(jsoncpp CONFIG REQUIRED)
+ foreach(PACKAGE ${LINPHONE_PACKAGES})
+ 	message(STATUS "Trying to find ${PACKAGE}")
+ 	find_package(${PACKAGE} REQUIRED)
diff --git a/net/linphone/files/patch-Linphone_core_App.cpp b/net/linphone/files/patch-Linphone_core_App.cpp
new file mode 100644
index 000000000000..d42f22a4197c
--- /dev/null
+++ b/net/linphone/files/patch-Linphone_core_App.cpp
@@ -0,0 +1,56 @@
+--- Linphone/core/App.cpp.orig
++++ Linphone/core/App.cpp
+@@ -116,7 +116,7 @@
+ 
+ DEFINE_ABSTRACT_OBJECT(App)
+ 
+-#ifdef Q_OS_LINUX
++#if defined(Q_OS_LINUX) || defined(Q_OS_FREEBSD)
+ const QString AutoStartDirectory(QDir::homePath().append(QStringLiteral("/.config/autostart/")));
+ const QString ApplicationsDirectory(QDir::homePath().append(QStringLiteral("/.local/share/applications/")));
+ const QString IconsDirectory(QDir::homePath().append(QStringLiteral("/.local/share/icons/hicolor/scalable/apps/")));
+@@ -130,7 +130,7 @@
+ //		Autostart
+ // -----------------------------------------------------------------------------
+ 
+-#ifdef Q_OS_LINUX
++#if defined(Q_OS_LINUX) || defined(Q_OS_FREEBSD)
+ bool App::autoStartEnabled() {
+ 	const QString confPath(AutoStartDirectory + EXECUTABLE_NAME ".desktop");
+ 	QFile file(confPath);
+@@ -220,7 +220,7 @@
+ }
+ #endif // ifdef Q_OS_LINUX
+ 
+-#ifdef Q_OS_LINUX
++#if defined(Q_OS_LINUX) || defined(Q_OS_FREEBSD)
+ 
+ void App::setAutoStart(bool enabled) {
+ 	if (enabled == mAutoStart) return;
+@@ -299,7 +299,7 @@
+ 	mEventCountNotifier = new EventCountNotifier(this);
+ 	mDateUpdateTimer.start();
+ 
+-#ifdef Q_OS_LINUX
++#if defined(Q_OS_LINUX) || defined(Q_OS_FREEBSD)
+ 	exportDesktopFile();
+ #endif
+ }
+@@ -1074,7 +1074,7 @@
+ 			allFamilies << QFontDatabase::applicationFontFamilies(id);
+ 		}
+ 	}
+-#ifdef Q_OS_LINUX
++#if defined(Q_OS_LINUX) || defined(Q_OS_FREEBSD)
+ 	QDirIterator itFonts(":/linux/font/", QDirIterator::Subdirectories);
+ 	while (itFonts.hasNext()) {
+ 		QString ttf = itFonts.next();
+@@ -1904,7 +1904,7 @@
+ 	});
+ }
+ 
+-#ifdef Q_OS_LINUX
++#if defined(Q_OS_LINUX) || defined(Q_OS_FREEBSD)
+ QString App::getApplicationPath() const {
+ 	const QString binPath(QCoreApplication::applicationFilePath());
+ 
diff --git a/net/linphone/files/patch-Linphone_core_App.hpp b/net/linphone/files/patch-Linphone_core_App.hpp
new file mode 100644
index 000000000000..f8795d9ae376
--- /dev/null
+++ b/net/linphone/files/patch-Linphone_core_App.hpp
@@ -0,0 +1,11 @@
+--- Linphone/core/App.hpp.orig
++++ Linphone/core/App.hpp
+@@ -178,7 +178,7 @@
+ 	float getScreenRatio() const;
+ 	Q_INVOKABLE void setScreenRatio(float ratio);
+ 
+-#ifdef Q_OS_LINUX
++#if defined(Q_OS_LINUX) || defined(Q_OS_FREEBSD)
+ 	Q_INVOKABLE void exportDesktopFile();
+ 
+ 	QString getApplicationPath() const;
diff --git a/net/linphone/files/patch-Linphone_core_notifier_Notifier.cpp b/net/linphone/files/patch-Linphone_core_notifier_Notifier.cpp
new file mode 100644
index 000000000000..8abc1c5679b7
--- /dev/null
+++ b/net/linphone/files/patch-Linphone_core_notifier_Notifier.cpp
@@ -0,0 +1,10 @@
+--- Linphone/core/notifier/Notifier.cpp.orig
++++ Linphone/core/notifier/Notifier.cpp
+@@ -153,7 +153,7 @@
+ 						    window->setFlags((showAsTool ? Qt::Tool : Qt::WindowStaysOnTopHint) |
+ 						                     Qt::FramelessWindowHint);
+-#ifdef Q_OS_LINUX || Q_OS_WIN
++#if defined(Q_OS_LINUX) || defined(Q_OS_FREEBSD) || defined(Q_OS_WIN)
+ 						    window->setFlag(Qt::WindowDoesNotAcceptFocus);
+ #endif
+ 						    //						    for (auto it = data.begin(); it != data.end(); ++it)
diff --git a/net/linphone/files/patch-Linphone_model_setting_MediastreamerUtils.cpp b/net/linphone/files/patch-Linphone_model_setting_MediastreamerUtils.cpp
new file mode 100644
index 000000000000..b3af5b22b291
--- /dev/null
+++ b/net/linphone/files/patch-Linphone_model_setting_MediastreamerUtils.cpp
@@ -0,0 +1,21 @@
+--- Linphone/model/setting/MediastreamerUtils.cpp.orig
++++ Linphone/model/setting/MediastreamerUtils.cpp
+@@ -49,6 +49,7 @@
+	if (event == MS_FILTER_OUTPUT_FMT_CHANGED) {
+		SimpleCaptureGraph *graph = (SimpleCaptureGraph *)user_data;
+-		int captureRate, playbackRate, captureChannels, playbackChannels;
++		int captureRate = 8000, playbackRate = 8000;
++		int captureChannels = 1, playbackChannels = 1;
+		ms_filter_call_method(graph->audioCapture, MS_FILTER_GET_SAMPLE_RATE, &captureRate);
+		ms_filter_call_method(graph->audioSink, MS_FILTER_GET_SAMPLE_RATE, &playbackRate);
+		ms_filter_call_method(graph->audioCapture, MS_FILTER_GET_NCHANNELS, &captureChannels);
+@@ -77,7 +78,8 @@
+		playbackVolumeFilter = ms_factory_create_filter(msFactory, MS_VOLUME_ID);
+	}
+	if (!resamplerFilter) resamplerFilter = ms_factory_create_filter(msFactory, MS_RESAMPLE_ID);
+-	int captureRate, playbackRate, captureChannels, playbackChannels;
++	int captureRate = 8000, playbackRate = 8000;
++	int captureChannels = 1, playbackChannels = 1;
+	ms_filter_call_method(audioCapture, MS_FILTER_GET_SAMPLE_RATE, &captureRate);
+	ms_filter_call_method(audioSink, MS_FILTER_GET_SAMPLE_RATE, &playbackRate);
+	ms_filter_call_method(audioCapture, MS_FILTER_GET_NCHANNELS, &captureChannels);
diff --git a/net/linphone/files/patch-Linphone_model_setting_SettingsModel.cpp b/net/linphone/files/patch-Linphone_model_setting_SettingsModel.cpp
new file mode 100644
index 000000000000..0ed3b8621ff6
--- /dev/null
+++ b/net/linphone/files/patch-Linphone_model_setting_SettingsModel.cpp
@@ -0,0 +1,17 @@
+--- Linphone/model/setting/SettingsModel.cpp.orig
++++ Linphone/model/setting/SettingsModel.cpp
+@@ -1,6 +1,6 @@
+ void SettingsModel::accessCallSettings() {
+ 	mustBeInLinphoneThread(log().arg(Q_FUNC_INFO));
+-	startCaptureGraph();
++	if (mSimpleCaptureGraph) deleteCaptureGraph();
+ 
+ 	// Audio
+ 	CoreModel::getInstance()->getCore()->reloadSoundDevices();
+@@ -1,4 +1,6 @@
+ 	// Video
+ 	CoreModel::getInstance()->getCore()->reloadVideoDevices();
+ 	emit videoDevicesChanged(getVideoDevices());
++
++	startCaptureGraph();
+ }
diff --git a/net/linphone/files/patch-Linphone_tool_Utils.cpp b/net/linphone/files/patch-Linphone_tool_Utils.cpp
new file mode 100644
index 000000000000..520c2443051d
--- /dev/null
+++ b/net/linphone/files/patch-Linphone_tool_Utils.cpp
@@ -0,0 +1,12 @@
+--- Linphone/tool/Utils.cpp.orig
++++ Linphone/tool/Utils.cpp
+@@ -1665,7 +1665,7 @@
+ 		CloseHandle(pi.hThread);
+ 	} else {
+ 		lWarning() << "Failed to start process. GetLastError() =" << (int)GetLastError();
+ 	}
+-#elif defined(Q_OS_MACOS) || defined(Q_OS_LINUX)
++#elif defined(Q_OS_MACOS) || defined(Q_OS_LINUX) || defined(Q_OS_FREEBSD)
+ 	QProcess::startDetached("/bin/sh", {"-c", command});
+ #else
+ 	lWarning() << "Unsupported OS!";
diff --git a/net/linphone/files/patch-Linphone_tool_native_DesktopTools.hpp b/net/linphone/files/patch-Linphone_tool_native_DesktopTools.hpp
new file mode 100644
index 000000000000..e653bf3b63ba
--- /dev/null
+++ b/net/linphone/files/patch-Linphone_tool_native_DesktopTools.hpp
@@ -0,0 +1,11 @@
+--- Linphone/tool/native/DesktopTools.hpp.orig
++++ Linphone/tool/native/DesktopTools.hpp
+@@ -20,7 +20,7 @@
+ 
+ #include <QtGlobal>
+ 
+-#ifdef Q_OS_LINUX
++#if defined(Q_OS_LINUX) || defined(Q_OS_FREEBSD)
+ #include "DesktopToolsLinux.hpp"
+ #elif defined(Q_OS_WIN)
+ #include "DesktopToolsWindows.hpp"
diff --git a/net/linphone/files/patch-cmake_Modules_FindBCToolbox.cmake b/net/linphone/files/patch-cmake_Modules_FindBCToolbox.cmake
new file mode 100644
index 000000000000..227602dd2409
--- /dev/null
+++ b/net/linphone/files/patch-cmake_Modules_FindBCToolbox.cmake
@@ -0,0 +1,29 @@
+--- cmake/Modules/FindBCToolbox.cmake.orig	2026-07-15 12:43:54 UTC
++++ cmake/Modules/FindBCToolbox.cmake
+@@ -33,8 +33,8 @@ if(NOT TARGET bctoolbox)
+ if(NOT TARGET bctoolbox)
+     set(EXPORT_PATH ${LINPHONE_OUTPUT_DIR})
+     include(GNUInstallDirs)
+-    set(BCToolbox_CMAKE_DIR ${EXPORT_PATH}/${CMAKE_INSTALL_DATADIR}/bctoolbox/cmake)
+-    include(${BCToolbox_CMAKE_DIR}/bctoolboxTargets.cmake)
++    set(BCToolbox_CMAKE_DIR ${EXPORT_PATH}/${CMAKE_INSTALL_DATADIR}/BCToolbox/cmake)
++    include(${BCToolbox_CMAKE_DIR}/BCToolboxConfig.cmake)
+ endif()
+ 
+ set(_BCToolbox_REQUIRED_VARS BCToolbox_TARGET BCToolbox_CMAKE_DIR BCToolbox_CMAKE_UTILS)
+@@ -42,9 +42,12 @@ if(TARGET bctoolbox)
+ 
+ if(TARGET bctoolbox)
+ 	set(BCToolbox_TARGET bctoolbox)
+-	get_target_property(_BCToolbox_SOURCE_DIR ${BCToolbox_TARGET} SOURCE_DIR)
+-	set(BCToolbox_CMAKE_DIR "${_BCToolbox_SOURCE_DIR}/../cmake")
+-	set(BCToolbox_CMAKE_UTILS "${BCToolbox_CMAKE_DIR}/BCToolboxCMakeUtils.cmake")
++	if(NOT BCToolbox_CMAKE_DIR)
++		set(BCToolbox_CMAKE_DIR "${LINPHONE_OUTPUT_DIR}/${CMAKE_INSTALL_DATADIR}/BCToolbox/cmake")
++	endif()
++	if(NOT BCToolbox_CMAKE_UTILS)
++		set(BCToolbox_CMAKE_UTILS "${BCToolbox_CMAKE_DIR}/BCToolboxCMakeUtils.cmake")
++	endif()
+ 	if(TARGET bctoolbox-tester)
+ 		set(BCToolbox_tester_FOUND TRUE)
+ 		set(BCToolbox_tester_TARGET bctoolbox-tester)
diff --git a/net/linphone/files/patch-cmake_Modules_FindLibLinphone.cmake b/net/linphone/files/patch-cmake_Modules_FindLibLinphone.cmake
new file mode 100644
index 000000000000..91bfa49fe6a8
--- /dev/null
+++ b/net/linphone/files/patch-cmake_Modules_FindLibLinphone.cmake
@@ -0,0 +1,22 @@
+--- cmake/Modules/FindLibLinphone.cmake.orig	2026-07-15 12:43:54 UTC
++++ cmake/Modules/FindLibLinphone.cmake
+@@ -27,7 +27,7 @@ if(NOT TARGET liblinphone)
+ if(NOT TARGET liblinphone)
+     set(EXPORT_PATH ${LINPHONE_OUTPUT_DIR})
+     include(GNUInstallDirs)
+-    include(${EXPORT_PATH}/${CMAKE_INSTALL_DATADIR}/linphone/cmake/linphoneTargets.cmake)
++    include(${EXPORT_PATH}/${CMAKE_INSTALL_DATADIR}/LibLinphone/cmake/LibLinphoneConfig.cmake)
+ endif()
+ 
+ set(_LibLinphone_REQUIRED_VARS LibLinphone_TARGET LibLinphone_PLUGINS_DIR)
+@@ -35,7 +35,9 @@ if(TARGET liblinphone)
+ 
+ if(TARGET liblinphone)
+ 	set(LibLinphone_TARGET liblinphone)
+-	get_target_property(LibLinphone_PLUGINS_DIR ${LibLinphone_TARGET} LIBLINPHONE_PLUGINS_DIR)
++	if(NOT LibLinphone_PLUGINS_DIR)
++		get_target_property(LibLinphone_PLUGINS_DIR ${LibLinphone_TARGET} LIBLINPHONE_PLUGINS_DIR)
++	endif()
+ endif()
+ 
+ include(FindPackageHandleStandardArgs)
diff --git a/net/linphone/files/patch-cmake_Modules_FindLinphoneCxx.cmake b/net/linphone/files/patch-cmake_Modules_FindLinphoneCxx.cmake
new file mode 100644
index 000000000000..0a811c11ae90
--- /dev/null
+++ b/net/linphone/files/patch-cmake_Modules_FindLinphoneCxx.cmake
@@ -0,0 +1,11 @@
+--- cmake/Modules/FindLinphoneCxx.cmake.orig	2026-07-15 12:43:54 UTC
++++ cmake/Modules/FindLinphoneCxx.cmake
+@@ -26,7 +26,7 @@ if(NOT TARGET liblinphone++)
+ if(NOT TARGET liblinphone++)
+     set(EXPORT_PATH ${LINPHONE_OUTPUT_DIR})
+     include(GNUInstallDirs)
+-    include(${EXPORT_PATH}/${CMAKE_INSTALL_DATADIR}/LinphoneCxx/cmake/LinphoneCxxTargets.cmake)
++    include(${EXPORT_PATH}/${CMAKE_INSTALL_DATADIR}/LinphoneCxx/cmake/LinphoneCxxConfig.cmake)
+ endif()
+ 
+ set(_LinphoneCxx_REQUIRED_VARS LinphoneCxx_TARGET)
diff --git a/net/linphone/files/patch-cmake_Modules_FindMediastreamer2.cmake b/net/linphone/files/patch-cmake_Modules_FindMediastreamer2.cmake
new file mode 100644
index 000000000000..0811d2715478
--- /dev/null
+++ b/net/linphone/files/patch-cmake_Modules_FindMediastreamer2.cmake
@@ -0,0 +1,22 @@
+--- cmake/Modules/FindMediastreamer2.cmake.orig	2026-07-15 12:43:54 UTC
++++ cmake/Modules/FindMediastreamer2.cmake
+@@ -29,7 +29,7 @@ if(NOT TARGET mediastreamer2)
+ if(NOT TARGET mediastreamer2)
+     set(EXPORT_PATH ${LINPHONE_OUTPUT_DIR})
+     include(GNUInstallDirs)
+-    include(${EXPORT_PATH}/${CMAKE_INSTALL_DATADIR}/Mediastreamer2/cmake/Mediastreamer2Targets.cmake)
++    include(${EXPORT_PATH}/${CMAKE_INSTALL_DATADIR}/Mediastreamer2/cmake/Mediastreamer2Config.cmake)
+ endif()
+ 
+ set(_Mediastreamer2_REQUIRED_VARS Mediastreamer2_TARGET Mediastreamer2_PLUGINS_DIR)
+@@ -37,7 +37,9 @@ if(TARGET mediastreamer2)
+ 
+ if(TARGET mediastreamer2)
+ 	set(Mediastreamer2_TARGET mediastreamer2)
+-	get_target_property(Mediastreamer2_PLUGINS_DIR ${Mediastreamer2_TARGET} MS2_PLUGINS_DIR)
++	if(NOT Mediastreamer2_PLUGINS_DIR)
++		get_target_property(Mediastreamer2_PLUGINS_DIR ${Mediastreamer2_TARGET} MS2_PLUGINS_DIR)
++	endif()
+ endif()
+ 
+ include(FindPackageHandleStandardArgs)
diff --git a/net/linphone/files/patch-external_ispell_config.h b/net/linphone/files/patch-external_ispell_config.h
deleted file mode 100644
index 70bf897796e1..000000000000
--- a/net/linphone/files/patch-external_ispell_config.h
+++ /dev/null
@@ -1,11 +0,0 @@
---- external/ispell/config.h.orig	2025-12-26 16:36:36 UTC
-+++ external/ispell/config.h
-@@ -228,7 +228,7 @@
- #include <sys/param.h>
- #include <sys/types.h>
- #ifndef USG
--#include <sys/dir.h>
-+/* #include <sys/dir.h> */
- #endif /* USG */
- 
- #ifndef TERMIOS
diff --git a/net/linphone/files/patch-linphone-app_CMakeLists.txt b/net/linphone/files/patch-linphone-app_CMakeLists.txt
deleted file mode 100644
index 938b9adc4edb..000000000000
--- a/net/linphone/files/patch-linphone-app_CMakeLists.txt
+++ /dev/null
@@ -1,93 +0,0 @@
---- linphone-app/CMakeLists.txt.orig	2025-11-12 12:55:13 UTC
-+++ linphone-app/CMakeLists.txt
-@@ -24,7 +24,7 @@ cmake_minimum_required(VERSION 3.22)
- 
- 
- #Linphone targets
--set(LINPHONE_PACKAGES LinphoneCxx Mediastreamer2 Belcard LibLinphone)
-+set(LINPHONE_PACKAGES LinphoneCxx Mediastreamer2 BelCard LibLinphone jsoncpp)
- 
- list(APPEND CMAKE_MODULE_PATH "${CMAKE_CURRENT_SOURCE_DIR}/cmake")
- 
-@@ -40,6 +40,7 @@ set(metadata )
- set(version_patch)
- set(identifiers )
- set(metadata )
-+include(${LINPHONEAPP_INSTALL_PREFIX}/${CMAKE_INSTALL_DATADIR}/BCToolbox/cmake/BCToolboxCMakeUtils.cmake)
- bc_parse_full_version("${LINPHONEAPP_VERSION}" version_major version_minor version_patch identifiers metadata)
- 
- 
-@@ -63,7 +64,7 @@ list(APPEND CMAKE_MODULE_PATH "${LINPHONE_OUTPUT_DIR}/
- endif()
- list(APPEND CMAKE_MODULE_PATH "${CMAKE_CURRENT_SOURCE_DIR}/../cmake")
- list(APPEND CMAKE_MODULE_PATH "${LINPHONE_OUTPUT_DIR}/cmake")
--list(APPEND CMAKE_MODULE_PATH "${LINPHONE_OUTPUT_DIR}/lib64/cmake")
-+# list(APPEND CMAKE_MODULE_PATH "${LINPHONE_OUTPUT_DIR}/lib64/cmake")
- list(APPEND CMAKE_MODULE_PATH "${LINPHONE_OUTPUT_DIR}/lib/cmake")
- 
- list(APPEND CMAKE_PREFIX_PATH "${QTKEYCHAIN_OUTPUT_DIR}/lib/cmake")
-@@ -115,7 +116,7 @@ set(APP_TARGETS ${LinphoneCxx_TARGET}
- set(APP_TARGETS ${LinphoneCxx_TARGET}
- 				${BCToolbox_TARGET}#Logger/App
- 				${Mediastreamer2_TARGET}#MediastreamerUtils
--				${Belcard_TARGET}#VCard Model
-+				${BelCard_TARGET}#VCard Model
- 				${LibLinphone_TARGET})#MediastreamerUtils
- 
- ####################################
-@@ -198,11 +199,11 @@ endif()
- if(ENABLE_VIDEO)
- 	add_definitions(-DENABLE_VIDEO)
- endif()
--if( ENABLE_QT_KEYCHAIN)
-+if(ENABLE_QT_KEYCHAIN)
- 	if(NOT QTKEYCHAIN_TARGET_NAME)
- 		set(QTKEYCHAIN_TARGET_NAME "Qt5Keychain")
- 	endif()
--	list(APPEND APP_TARGETS ${QTKEYCHAIN_TARGET_NAME})
-+	# list(APPEND APP_TARGETS ${QTKEYCHAIN_TARGET_NAME})
- endif()
- if(NOT APPLE AND NOT WIN32)
- 	list(APPEND APP_TARGETS ${ISPELL_TARGET_NAME})
-@@ -734,6 +735,7 @@ include_directories("${LINPHONE_OUTPUT_DIR}/include/")
- include_directories(src/)
- include_directories("${LINPHONE_OUTPUT_DIR}/include/OpenGL")
- include_directories("${LINPHONE_OUTPUT_DIR}/include/")
-+include_directories("${CMAKE_SOURCE_DIR}/linphone-app/include/")
- include_directories("${CMAKE_INSTALL_PREFIX}/${CMAKE_INSTALL_INCLUDEDIR}/")
- include_directories("${QTKEYCHAIN_OUTPUT_DIR}/include/")
- if(NOT APPLE AND NOT WIN32)
-@@ -819,13 +821,18 @@ foreach(T ${PLUGIN_TARGETS})
- 
- foreach(T ${PLUGIN_TARGETS})
- 	target_include_directories(${APP_PLUGIN} SYSTEM PUBLIC  $<TARGET_PROPERTY:${T},INTERFACE_INCLUDE_DIRECTORIES>)
-+	target_link_directories(${APP_PLUGIN} PUBLIC $<TARGET_PROPERTY:${T},INTERFACE_LINK_DIRECTORIES>)
- 	target_link_libraries(${APP_PLUGIN} ${T})
- endforeach()
- 
- foreach(T ${APP_TARGETS})
- 	target_include_directories(${APP_LIBRARY} SYSTEM PUBLIC  $<TARGET_PROPERTY:${T},INTERFACE_INCLUDE_DIRECTORIES>)
-+	target_link_directories(${TARGET_NAME} PUBLIC $<TARGET_PROPERTY:${T},INTERFACE_LINK_DIRECTORIES>)
- 	target_link_libraries(${TARGET_NAME} ${T})
- endforeach()
-+target_include_directories(${TARGET_NAME} SYSTEM PUBLIC ${QTKEYCHAIN_INCLUDE_DIRS})
-+target_link_directories(${TARGET_NAME} PUBLIC ${CMAKE_INSTALL_PREFIX}/${CMAKE_INSTALL_LIBDIR})
-+target_link_libraries(${TARGET_NAME} Qt5Keychain::Qt5Keychain)
- 
- if (APPLE)
- 	target_link_libraries(${TARGET_NAME} "-framework Cocoa" "-framework IOKit" "-framework AVFoundation" "-framework ScreenCaptureKit")
-@@ -857,10 +864,10 @@ set(LINPHONE_BUILDER_SIGNING_IDENTITY ${LINPHONE_BUILD
- set(TOOLS_DIR "${CMAKE_BINARY_DIR}/programs")
- set(LINPHONE_BUILDER_SIGNING_IDENTITY ${LINPHONE_BUILDER_SIGNING_IDENTITY})
- 
--add_custom_command(TARGET ${APP_PLUGIN} POST_BUILD COMMAND ${CMAKE_COMMAND} -E make_directory "${CMAKE_INSTALL_PREFIX}/${CMAKE_INSTALL_LIBDIR}/")
--add_custom_command(TARGET ${APP_PLUGIN} POST_BUILD COMMAND ${CMAKE_COMMAND} -E copy_directory "${CMAKE_CURRENT_SOURCE_DIR}/include/" "${CMAKE_INSTALL_PREFIX}/${CMAKE_INSTALL_INCLUDEDIR}/")
--add_custom_command(TARGET ${APP_PLUGIN} POST_BUILD COMMAND ${CMAKE_COMMAND} -E copy $<TARGET_FILE:${APP_PLUGIN}> "${CMAKE_INSTALL_PREFIX}/${CMAKE_INSTALL_LIBDIR}/")
--add_custom_command(TARGET ${APP_PLUGIN} POST_BUILD COMMAND ${CMAKE_COMMAND} -E copy $<TARGET_LINKER_FILE:${APP_PLUGIN}> "${CMAKE_INSTALL_PREFIX}/${CMAKE_INSTALL_LIBDIR}/")
-+# add_custom_command(TARGET ${APP_PLUGIN} POST_BUILD COMMAND ${CMAKE_COMMAND} -E make_directory "${CMAKE_INSTALL_PREFIX}/${CMAKE_INSTALL_LIBDIR}/")
-+# add_custom_command(TARGET ${APP_PLUGIN} POST_BUILD COMMAND ${CMAKE_COMMAND} -E copy_directory "${CMAKE_CURRENT_SOURCE_DIR}/include/" "${CMAKE_INSTALL_PREFIX}/${CMAKE_INSTALL_INCLUDEDIR}/")
-+# add_custom_command(TARGET ${APP_PLUGIN} POST_BUILD COMMAND ${CMAKE_COMMAND} -E copy $<TARGET_FILE:${APP_PLUGIN}> "${CMAKE_INSTALL_PREFIX}/${CMAKE_INSTALL_LIBDIR}/")
-+# add_custom_command(TARGET ${APP_PLUGIN} POST_BUILD COMMAND ${CMAKE_COMMAND} -E copy $<TARGET_LINKER_FILE:${APP_PLUGIN}> "${CMAKE_INSTALL_PREFIX}/${CMAKE_INSTALL_LIBDIR}/")
- #add_custom_command(TARGET ${TARGET_NAME} PRE_BUILD COMMAND ${CMAKE_COMMAND} -E copy "${CMAKE_CURRENT_SOURCE_DIR}/include/LinphoneApp/*" "${CMAKE_INSTALL_PREFIX}/include/LinphoneApp/")
- 
- #configure_file("${CMAKE_CURRENT_SOURCE_DIR}/include/*" "${CMAKE_INSTALL_PREFIX}/include/LinphoneApp/" COPYONLY)
diff --git a/net/linphone/files/patch-linphone-app_cmake_FindBCToolbox.cmake b/net/linphone/files/patch-linphone-app_cmake_FindBCToolbox.cmake
deleted file mode 100644
index b2debc5643a9..000000000000
--- a/net/linphone/files/patch-linphone-app_cmake_FindBCToolbox.cmake
+++ /dev/null
@@ -1,13 +0,0 @@
---- linphone-app/cmake/FindBCToolbox.cmake.orig	2025-11-12 12:55:13 UTC
-+++ linphone-app/cmake/FindBCToolbox.cmake
-@@ -33,8 +33,8 @@ if(NOT TARGET bctoolbox)
- if(NOT TARGET bctoolbox)
-     set(EXPORT_PATH ${LINPHONE_OUTPUT_DIR})
-     include(GNUInstallDirs)
--    set(BCToolbox_CMAKE_DIR ${EXPORT_PATH}/${CMAKE_INSTALL_DATADIR}/bctoolbox/cmake)
--    include(${BCToolbox_CMAKE_DIR}/bctoolboxTargets.cmake)
-+    set(BCToolbox_CMAKE_DIR ${EXPORT_PATH}/${CMAKE_INSTALL_DATADIR}/BCToolbox/cmake)
-+    include(${BCToolbox_CMAKE_DIR}/BCToolboxTargets.cmake)
- endif()
- 
- set(_BCToolbox_REQUIRED_VARS BCToolbox_TARGET BCToolbox_CMAKE_DIR BCToolbox_CMAKE_UTILS)
diff --git a/net/linphone/files/patch-linphone-app_cmake_FindLibLinphone.cmake b/net/linphone/files/patch-linphone-app_cmake_FindLibLinphone.cmake
deleted file mode 100644
index 2069fe1a5ecb..000000000000
--- a/net/linphone/files/patch-linphone-app_cmake_FindLibLinphone.cmake
+++ /dev/null
@@ -1,28 +0,0 @@
---- linphone-app/cmake/FindLibLinphone.cmake.orig	2025-11-12 12:55:13 UTC
-+++ linphone-app/cmake/FindLibLinphone.cmake
-@@ -27,7 +27,8 @@ if(NOT TARGET liblinphone)
- if(NOT TARGET liblinphone)
-     set(EXPORT_PATH ${LINPHONE_OUTPUT_DIR})
-     include(GNUInstallDirs)
--    include(${EXPORT_PATH}/${CMAKE_INSTALL_DATADIR}/linphone/cmake/linphoneTargets.cmake)
-+    # include(${EXPORT_PATH}/${CMAKE_INSTALL_DATADIR}/linphone/cmake/linphoneTargets.cmake)
-+    include(${EXPORT_PATH}/${CMAKE_INSTALL_DATADIR}/LibLinphone/cmake/LibLinphoneConfig.cmake)
- endif()
- 
- set(_LibLinphone_REQUIRED_VARS LibLinphone_TARGET LibLinphone_PLUGINS_DIR)
-@@ -38,9 +39,9 @@ endif()
- 	get_target_property(LibLinphone_PLUGINS_DIR ${LibLinphone_TARGET} LIBLINPHONE_PLUGINS_DIR)
- endif()
- 
--include(FindPackageHandleStandardArgs)
--find_package_handle_standard_args(LibLinphone
--	REQUIRED_VARS ${_LibLinphone_REQUIRED_VARS}
--	HANDLE_COMPONENTS
--)
--mark_as_advanced(${_LibLinphone_CACHE_VARS})
-+#include(FindPackageHandleStandardArgs)
-+#find_package_handle_standard_args(LibLinphone
-+#	REQUIRED_VARS ${_LibLinphone_REQUIRED_VARS}
-+#	HANDLE_COMPONENTS
-+#)
-+#mark_as_advanced(${_LibLinphone_CACHE_VARS})
diff --git a/net/linphone/files/patch-linphone-app_cmake_FindMediastreamer2.cmake b/net/linphone/files/patch-linphone-app_cmake_FindMediastreamer2.cmake
deleted file mode 100644
index 694272a30610..000000000000
--- a/net/linphone/files/patch-linphone-app_cmake_FindMediastreamer2.cmake
+++ /dev/null
@@ -1,29 +0,0 @@
---- linphone-app/cmake/FindMediastreamer2.cmake.orig	2025-11-12 12:55:13 UTC
-+++ linphone-app/cmake/FindMediastreamer2.cmake
-@@ -29,7 +29,8 @@ if(NOT TARGET mediastreamer2)
- if(NOT TARGET mediastreamer2)
-     set(EXPORT_PATH ${LINPHONE_OUTPUT_DIR})
-     include(GNUInstallDirs)
--    include(${EXPORT_PATH}/${CMAKE_INSTALL_DATADIR}/Mediastreamer2/cmake/Mediastreamer2Targets.cmake)
-+    # include(${EXPORT_PATH}/${CMAKE_INSTALL_DATADIR}/Mediastreamer2/cmake/Mediastreamer2Targets.cmake)
-+    include(${EXPORT_PATH}/${CMAKE_INSTALL_DATADIR}/Mediastreamer2/cmake/Mediastreamer2Config.cmake)
- endif()
- 
- set(_Mediastreamer2_REQUIRED_VARS Mediastreamer2_TARGET Mediastreamer2_PLUGINS_DIR)
-@@ -40,10 +41,10 @@ endif()
- 	get_target_property(Mediastreamer2_PLUGINS_DIR ${Mediastreamer2_TARGET} MS2_PLUGINS_DIR)
- endif()
- 
--include(FindPackageHandleStandardArgs)
--find_package_handle_standard_args(Mediastreamer2
--	REQUIRED_VARS ${_Mediastreamer2_REQUIRED_VARS}
--	HANDLE_COMPONENTS
--)
--mark_as_advanced(${_Mediastreamer2_CACHE_VARS})
-+#include(FindPackageHandleStandardArgs)
-+#find_package_handle_standard_args(Mediastreamer2
-+#	REQUIRED_VARS ${_Mediastreamer2_REQUIRED_VARS}
-+#	HANDLE_COMPONENTS
-+#)
-+#mark_as_advanced(${_Mediastreamer2_CACHE_VARS})
- 
diff --git a/net/linphone/files/patch-linphone-app_cmake_FindQtKeychain.cmake b/net/linphone/files/patch-linphone-app_cmake_FindQtKeychain.cmake
deleted file mode 100644
index 226f2d87c072..000000000000
--- a/net/linphone/files/patch-linphone-app_cmake_FindQtKeychain.cmake
+++ /dev/null
@@ -1,35 +0,0 @@
---- linphone-app/cmake/FindQtKeychain.cmake.orig	2025-11-12 12:55:13 UTC
-+++ linphone-app/cmake/FindQtKeychain.cmake
-@@ -26,23 +26,22 @@ if(NOT TARGET ${QTKEYCHAIN_TARGET_NAME})
- #  QtKeychain_INCLUDE_DIRS - the linphonecxx include directory
- #  QtKeychain_LIBRARIES - The library needed to use linphonecxx
- if(NOT TARGET ${QTKEYCHAIN_TARGET_NAME})
--    set(EXPORT_PATH ${QTKEYCHAIN_OUTPUT_DIR})
-+    set(EXPORT_PATH ${LINPHONE_OUTPUT_DIR})
-     include(GNUInstallDirs)
-     include(${EXPORT_PATH}/${CMAKE_INSTALL_LIBDIR}/cmake/${QTKEYCHAIN_TARGET_NAME}/${QTKEYCHAIN_TARGET_NAME}Config.cmake)
- endif()
- 
--set(_QtKeychain_REQUIRED_VARS QtKeychain_TARGET)
--set(_QtKeychain_CACHE_VARS ${_QtKeychain_REQUIRED_VARS})
-+# set(_QtKeychain_REQUIRED_VARS QtKeychain_TARGET)
-+# set(_QtKeychain_CACHE_VARS ${_QtKeychain_REQUIRED_VARS})
- 
- if(TARGET ${QTKEYCHAIN_TARGET_NAME})
- 	set(QtKeychain_TARGET ${QTKEYCHAIN_TARGET_NAME})
- 	set(QtKeychain_USE_BUILD_INTERFACE TRUE)
- endif()
- 
--include(FindPackageHandleStandardArgs)
--find_package_handle_standard_args(QtKeychain
--	REQUIRED_VARS ${_QtKeychain_REQUIRED_VARS}
--	HANDLE_COMPONENTS
--)
--mark_as_advanced(${_QtKeychain_CACHE_VARS})
--
-+#include(FindPackageHandleStandardArgs)
-+#find_package_handle_standard_args(QtKeychain
-+#	REQUIRED_VARS ${_QtKeychain_REQUIRED_VARS}
-+#	HANDLE_COMPONENTS
-+#)
-+#mark_as_advanced(${_QtKeychain_CACHE_VARS})
diff --git a/net/linphone/files/patch-linphone-app_cmake__builder_linphone__package_CMakeLists.txt b/net/linphone/files/patch-linphone-app_cmake__builder_linphone__package_CMakeLists.txt
deleted file mode 100644
index e310e5a34145..000000000000
--- a/net/linphone/files/patch-linphone-app_cmake__builder_linphone__package_CMakeLists.txt
+++ /dev/null
@@ -1,11 +0,0 @@
---- linphone-app/cmake_builder/linphone_package/CMakeLists.txt.orig	2025-11-12 12:55:13 UTC
-+++ linphone-app/cmake_builder/linphone_package/CMakeLists.txt
-@@ -26,7 +26,7 @@ include("${CMAKE_CURRENT_SOURCE_DIR}/../../application
- endif()
- include("${CMAKE_CURRENT_SOURCE_DIR}/../../application_info.cmake")
*** 192 LINES SKIPPED ***