git: 46dfe1ded5c6 - main - net/linphone: Update version 4.1.1=>4.4.8

From: Muhammad Moinur Rahman <bofh_at_FreeBSD.org>
Date: Tue, 19 Jul 2022 09:23:59 UTC
The branch main has been updated by bofh:

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

commit 46dfe1ded5c6b4a625dc6ff5138b64244e69ad8c
Author:     Felix Palmen <felix@palmen-it.de>
AuthorDate: 2022-07-19 09:20:00 +0000
Commit:     Muhammad Moinur Rahman <bofh@FreeBSD.org>
CommitDate: 2022-07-19 09:23:51 +0000

    net/linphone: Update version 4.1.1=>4.4.8
    
    - Add LICENSE GPLv3
    
    Differential Revision: https://reviews.freebsd.org/D35805
---
 net/linphone/Makefile                              |  52 ++++-
 net/linphone/distinfo                              |   6 +-
 net/linphone/files/linphone.desktop                |  26 +++
 net/linphone/files/patch-00-ecaab0f                |  93 ---------
 net/linphone/files/patch-01-5dd0161                |  74 -------
 net/linphone/files/patch-02-c840bba                | 216 ---------------------
 net/linphone/files/patch-03-85c2165                |  23 ---
 net/linphone/files/patch-04-8720931                |  68 -------
 net/linphone/files/patch-05-4f908ef                |  25 ---
 net/linphone/files/patch-06-70f47b0                |  90 ---------
 net/linphone/files/patch-07-7f62ae9                |  39 ----
 net/linphone/files/patch-08-313aa68                |  29 ---
 net/linphone/files/patch-CMakeLists.txt            |  10 -
 net/linphone/files/patch-resources.qrc             |  16 --
 net/linphone/files/patch-src-app-AppController.cpp |  11 --
 ...components_other_desktop-tools_DesktopTools.hpp |  11 ++
 net/linphone/pkg-plist                             |   6 +-
 17 files changed, 85 insertions(+), 710 deletions(-)

diff --git a/net/linphone/Makefile b/net/linphone/Makefile
index a7e9a8477b9d..4f64d36ec09e 100644
--- a/net/linphone/Makefile
+++ b/net/linphone/Makefile
@@ -1,25 +1,61 @@
 PORTNAME=	linphone
-PORTVERSION=	4.1.1
-PORTREVISION=	6
+PORTVERSION=	4.4.8
 PORTEPOCH=	1
 CATEGORIES=	net
-MASTER_SITES=	https://www.linphone.org/releases/sources/linphoneqt/
-DISTNAME=	linphoneqt-${PORTVERSION}
 
 MAINTAINER=	ports@FreeBSD.org
 COMMENT=	SIP client supporting voice/video calls and text messaging
 
+LICENSE=	GPLv3
+
 LIB_DEPENDS=	libbctoolbox.so:net/bctoolbox \
 		libbelcard.so:deskutils/belcard \
-		liblinphone++.so:net/liblinphone
+		liblinphone++.so:net/liblinphone \
+		libmediastreamer.so:net/mediastreamer \
+		libortp.so:net/ortp
 
 USES=		cmake compiler:c++11-lib pkgconfig qt:5
-USE_QT=		buildtools_build concurrent core declarative \
-		graphicaleffects_run gui linguisttools network qmake_build \
-		quickcontrols_run quickcontrols2 speech svg testlib widgets
+USE_GITLAB=	yes
+GL_SITE=	https://gitlab.linphone.org/BC
+GL_ACCOUNT=	public
+GL_PROJECT=	linphone-desktop
+GL_COMMIT=	da40aed848da44e851d67a2039e7e966c5257d3b
+USE_QT=		concurrent core dbus declarative gui linguisttools network \
+		quickcontrols2 speech svg testlib widgets buildtools_build \
+		qmake_build graphicaleffects_run quickcontrols_run
+
+# 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"
+
+WRKSRC_SUBDIR=	linphone-app
+
+ICONDIR=	${LOCALBASE}/share/icons/hicolor/scalable/apps
 
 post-patch:
+	@${REINPLACE_CMD} -e 's/bc_compute_full_version([^)]*)//' \
+		-e 's/set(FULL_VERSION /&${PORTVERSION}/' \
+		-e 's/INSTALL_RPATH_USE_LINK_PATH/BUILD_WITH_INSTALL_RPATH/' \
+		-e '/add_subdirectory.*linphone_package/d' \
+		-e '/add_custom_command/d' -e '/deployqt_hack/d' \
+		${WRKSRC}/CMakeLists.txt
 	@${REINPLACE_CMD} 's/LINPHONE_QT_GIT_VERSION/"${PORTVERSION}"/' \
 		${WRKSRC}/src/app/AppController.cpp
 
+# override install because otherwise, it does a complete rebuild during stage
+do-install:
+	${INSTALL_PROGRAM} ${BUILD_WRKSRC}/linphone \
+		${STAGEDIR}${LOCALBASE}/bin
+	${MKDIR} ${STAGEDIR}${LOCALBASE}/lib/linphone
+	${MKDIR} ${STAGEDIR}${ICONDIR}
+	${INSTALL_LIB} ${BUILD_WRKSRC}/libapp-plugin.so \
+		${STAGEDIR}${LOCALBASE}/lib/linphone
+	${INSTALL_DATA} ${WRKSRC}/assets/images/linphone_logo.svg \
+		${STAGEDIR}${ICONDIR}/linphone.svg
+	${INSTALL_DATA} ${FILESDIR}/linphone.desktop \
+		${STAGEDIR}${LOCALBASE}/share/applications/linphone.desktop
+
 .include <bsd.port.mk>
diff --git a/net/linphone/distinfo b/net/linphone/distinfo
index 9c4875b94baf..507ac8477824 100644
--- a/net/linphone/distinfo
+++ b/net/linphone/distinfo
@@ -1,3 +1,3 @@
-TIMESTAMP = 1538765035
-SHA256 (linphoneqt-4.1.1.tar.gz) = 4a00c0cc2861089f8d3a1d0af1cde8ad4094f23640fb6df483e1814853ce5fbc
-SIZE (linphoneqt-4.1.1.tar.gz) = 1820252
+TIMESTAMP = 1657718753
+SHA256 (public-linphone-desktop-da40aed848da44e851d67a2039e7e966c5257d3b_GL0.tar.gz) = b8ea0a2d466a28e57da5bc4ca6916f67606dfc01b08e5c3e4483e6bffc63f91e
+SIZE (public-linphone-desktop-da40aed848da44e851d67a2039e7e966c5257d3b_GL0.tar.gz) = 2751020
diff --git a/net/linphone/files/linphone.desktop b/net/linphone/files/linphone.desktop
new file mode 100644
index 000000000000..8235d9514058
--- /dev/null
+++ b/net/linphone/files/linphone.desktop
@@ -0,0 +1,26 @@
+[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/patch-00-ecaab0f b/net/linphone/files/patch-00-ecaab0f
deleted file mode 100644
index daad35e8c955..000000000000
--- a/net/linphone/files/patch-00-ecaab0f
+++ /dev/null
@@ -1,93 +0,0 @@
-From ecaab0f73d0b74bbfbf150286305fa6e12970037 Mon Sep 17 00:00:00 2001
-From: Ronan Abhamon <ronan.abhamon@belledonne-communications.com>
-Date: Fri, 19 Jan 2018 14:42:01 +0100
-Subject: [PATCH] fix(SettingsWindow): rename icon property of TabButton to
- iconName (issue with Qt 5.10 and new icon property)
-
----
- ui/modules/Common/Form/Tab/TabButton.qml |  8 ++++----
- ui/views/App/Settings/SettingsWindow.qml | 14 +++++++-------
- 2 files changed, 11 insertions(+), 11 deletions(-)
-
-diff --git a/ui/modules/Common/Form/Tab/TabButton.qml b/ui/modules/Common/Form/Tab/TabButton.qml
-index ad220ab2..a47bb20b 100644
---- ui/modules/Common/Form/Tab/TabButton.qml
-+++ ui/modules/Common/Form/Tab/TabButton.qml
-@@ -12,8 +12,8 @@ Controls.TabButton {
- 
-   // ---------------------------------------------------------------------------
- 
--  property string icon
-   property int iconSize: TabButtonStyle.icon.size
-+  property string iconName
- 
-   readonly property bool _isSelected: parent.parent.currentItem === button
- 
-@@ -66,9 +66,9 @@ Controls.TabButton {
-       Layout.leftMargin: TabButtonStyle.text.leftPadding
- 
-       icon: {
--        var icon = button.icon
--        return icon.length
--          ? (icon + '_' + (button._isSelected ? 'selected' : 'normal'))
-+        var iconName = button.iconName
-+        return iconName.length
-+          ? (iconName + '_' + (button._isSelected ? 'selected' : 'normal'))
-           : ''
-       }
-       iconSize: button.iconSize
-diff --git a/ui/views/App/Settings/SettingsWindow.qml b/ui/views/App/Settings/SettingsWindow.qml
-index b8f5a80f..58909544 100644
---- ui/views/App/Settings/SettingsWindow.qml
-+++ ui/views/App/Settings/SettingsWindow.qml
-@@ -48,43 +48,43 @@ ApplicationWindow {
-         id: tabBar
- 
-         TabButton {
--          icon: 'settings_sip_accounts'
-+          iconName: 'settings_sip_accounts'
-           text: qsTr('sipAccountsTab')
-           width: implicitWidth
-         }
- 
-         TabButton {
--          icon: 'settings_audio'
-+          iconName: 'settings_audio'
-           text: qsTr('audioTab')
-           width: implicitWidth
-         }
- 
-         TabButton {
--          icon: 'settings_video'
-+          iconName: 'settings_video'
-           text: qsTr('videoTab')
-           width: implicitWidth
-         }
- 
-         TabButton {
--          icon: 'settings_call'
-+          iconName: 'settings_call'
-           text: qsTr('callsAndChatTab')
-           width: implicitWidth
-         }
- 
-         TabButton {
--          icon: 'settings_network'
-+          iconName: 'settings_network'
-           text: qsTr('networkTab')
-           width: implicitWidth
-         }
- 
-         TabButton {
--          icon: 'settings_advanced'
-+          iconName: 'settings_advanced'
-           text: qsTr('uiTab')
-           width: implicitWidth
-         }
- 
-         TabButton {
--          icon: 'settings_advanced'
-+          iconName: 'settings_advanced'
-           text: qsTr('uiAdvanced')
-           width: implicitWidth
-         }
diff --git a/net/linphone/files/patch-01-5dd0161 b/net/linphone/files/patch-01-5dd0161
deleted file mode 100644
index a920b8567761..000000000000
--- a/net/linphone/files/patch-01-5dd0161
+++ /dev/null
@@ -1,74 +0,0 @@
-From 5dd0161a68db97dd1bb1c367630821e61eae3584 Mon Sep 17 00:00:00 2001
-From: Ronan Abhamon <ronan.abhamon@belledonne-communications.com>
-Date: Mon, 22 Jan 2018 11:04:26 +0100
-Subject: [PATCH] feat(app): try to support menu bar between qt 5.9 and qt 5.10
-
----
- resources.qrc                                |  2 +
- src/app/App.cpp                              | 12 ++-
- ui/views/App/Main/+5.9/MainWindowMenuBar.qml | 79 ++++++++++++++++++++
- ui/views/App/Main/+mac/MainWindowMenuBar.qml | 79 ++++++++++++++++++++
- ui/views/App/Main/MainWindowMenuBar.qml      | 37 ++++-----
- 5 files changed, 184 insertions(+), 25 deletions(-)
- create mode 100644 ui/views/App/Main/+5.9/MainWindowMenuBar.qml
- create mode 100644 ui/views/App/Main/+mac/MainWindowMenuBar.qml
-
-diff --git a/ui/views/App/Main/MainWindowMenuBar.qml b/ui/views/App/Main/MainWindowMenuBar.qml
-index 48a0dde3..e32b8fe3 100644
---- ui/views/App/Main/MainWindowMenuBar.qml
-+++ ui/views/App/Main/MainWindowMenuBar.qml
-@@ -1,7 +1,5 @@
- import QtQuick 2.7
--
--// Experimental.
--import Qt.labs.platform 1.0
-+import QtQuick.Controls 2.3
- 
- import Linphone 1.0
- 
-@@ -48,32 +46,25 @@ Item {
-   // Menu.
-   // ---------------------------------------------------------------------------
- 
--  MenuBar {
--    Menu {
--      id: menu
-+  Menu {
-+    id: menu
- 
--      MenuItem {
--        role: MenuItem.PreferencesRole
--        shortcut: settingsShortcut.sequence
--        text: qsTr('settings')
-+    MenuItem {
-+      text: qsTr('settings')
- 
--        onTriggered: settingsShortcut.onActivated()
--      }
-+      onTriggered: settingsShortcut.onActivated()
-+    }
- 
--      MenuItem {
--        role: MenuItem.AboutRole
--        text: qsTr('about')
-+    MenuItem {
-+      text: qsTr('about')
- 
--        onTriggered: aboutShortcut.onActivated()
--      }
-+      onTriggered: aboutShortcut.onActivated()
-+    }
- 
--      MenuItem {
--        role: MenuItem.QuitRole
--        shortcut: quitShortcut.sequence
--        text: qsTr('quit')
-+    MenuItem {
-+      text: qsTr('quit')
- 
--        onTriggered: quitShortcut.onActivated()
--      }
-+      onTriggered: quitShortcut.onActivated()
-     }
-   }
- }
diff --git a/net/linphone/files/patch-02-c840bba b/net/linphone/files/patch-02-c840bba
deleted file mode 100644
index 1f0df996faca..000000000000
--- a/net/linphone/files/patch-02-c840bba
+++ /dev/null
@@ -1,216 +0,0 @@
-From c840bbab8ca823f4cca0b70f6e692a38933449d8 Mon Sep 17 00:00:00 2001
-From: Ronan Abhamon <ronan.abhamon@belledonne-communications.com>
-Date: Fri, 15 Jun 2018 11:55:59 +0200
-Subject: [PATCH] fix(Timeline.qml): do not anchors rectangle in ColumnLayout
- (Qt5.11)
-
----
- ui/modules/Linphone/Timeline/Timeline.qml | 168 +++++++++++-----------
- 1 file changed, 83 insertions(+), 85 deletions(-)
-
-diff --git a/ui/modules/Linphone/Timeline/Timeline.qml b/ui/modules/Linphone/Timeline/Timeline.qml
-index d260bd7b..95205458 100644
---- ui/modules/Linphone/Timeline/Timeline.qml
-+++ ui/modules/Linphone/Timeline/Timeline.qml
-@@ -9,7 +9,7 @@ import 'Timeline.js' as Logic
- 
- // =============================================================================
- 
--ColumnLayout {
-+Rectangle {
-   id: timeline
- 
-   // ---------------------------------------------------------------------------
-@@ -35,110 +35,108 @@ ColumnLayout {
- 
-   // ---------------------------------------------------------------------------
- 
--  spacing: 0
-+  color: TimelineStyle.color
- 
--  // ---------------------------------------------------------------------------
-+  ColumnLayout {
-+    anchors.fill: parent
-+    spacing: 0
- 
--  Connections {
--    target: model
-+    // -------------------------------------------------------------------------
- 
--    onDataChanged: Logic.handleDataChanged(topLeft, bottomRight, roles)
--    onRowsAboutToBeRemoved: Logic.handleRowsAboutToBeRemoved (parent, first, last)
--  }
-+    Connections {
-+      target: model
- 
--  // ---------------------------------------------------------------------------
--
--  Rectangle {
--    anchors.fill: parent
--    color: TimelineStyle.color
--  }
-+      onDataChanged: Logic.handleDataChanged(topLeft, bottomRight, roles)
-+      onRowsAboutToBeRemoved: Logic.handleRowsAboutToBeRemoved(parent, first, last)
-+    }
- 
--  // ---------------------------------------------------------------------------
--  // Legend.
--  // ---------------------------------------------------------------------------
-+    // -------------------------------------------------------------------------
-+    // Legend.
-+    // -------------------------------------------------------------------------
- 
--  Rectangle {
--    Layout.fillWidth: true
--    Layout.preferredHeight: TimelineStyle.legend.height
--    color: TimelineStyle.legend.backgroundColor
-+    Rectangle {
-+      Layout.fillWidth: true
-+      Layout.preferredHeight: TimelineStyle.legend.height
-+      color: TimelineStyle.legend.backgroundColor
- 
--    Row {
--      anchors {
--        fill: parent
--        leftMargin: TimelineStyle.legend.leftMargin
--        rightMargin: TimelineStyle.legend.rightMargin
--      }
--      spacing: TimelineStyle.legend.spacing
-+      Row {
-+        anchors {
-+          fill: parent
-+          leftMargin: TimelineStyle.legend.leftMargin
-+          rightMargin: TimelineStyle.legend.rightMargin
-+        }
-+        spacing: TimelineStyle.legend.spacing
- 
--      Icon {
--        anchors.verticalCenter: parent.verticalCenter
--        icon: 'history'
--        iconSize: TimelineStyle.legend.iconSize
--      }
-+        Icon {
-+          anchors.verticalCenter: parent.verticalCenter
-+          icon: 'history'
-+          iconSize: TimelineStyle.legend.iconSize
-+        }
- 
--      Text {
--        color: TimelineStyle.legend.color
--        font.pointSize: TimelineStyle.legend.pointSize
--        height: parent.height
--        text: qsTr('timelineTitle')
--        verticalAlignment: Text.AlignVCenter
-+        Text {
-+          color: TimelineStyle.legend.color
-+          font.pointSize: TimelineStyle.legend.pointSize
-+          height: parent.height
-+          text: qsTr('timelineTitle')
-+          verticalAlignment: Text.AlignVCenter
-+        }
-       }
-     }
--  }
- 
--  // ---------------------------------------------------------------------------
--  // History.
--  // ---------------------------------------------------------------------------
-+    // -------------------------------------------------------------------------
-+    // History.
-+    // -------------------------------------------------------------------------
-+
-+    ScrollableListView {
-+      id: view
-+
-+      Layout.fillHeight: true
-+      Layout.fillWidth: true
-+      currentIndex: -1
- 
--  ScrollableListView {
--    id: view
--
--    Layout.fillHeight: true
--    Layout.fillWidth: true
--    currentIndex: -1
--
--    delegate: Item {
--      height: TimelineStyle.contact.height
--      width: parent ? parent.width : 0
--
--      Contact {
--        anchors.fill: parent
--        color: view.currentIndex === index
--          ? TimelineStyle.contact.backgroundColor.selected
--          : (
--            index % 2 == 0
--              ? TimelineStyle.contact.backgroundColor.a
--              : TimelineStyle.contact.backgroundColor.b
--          )
--        displayUnreadMessagesCount: view.currentIndex !== index
--        entry: $timelineEntry
--        sipAddressColor: view.currentIndex === index
--          ? TimelineStyle.contact.sipAddress.color.selected
--          : TimelineStyle.contact.sipAddress.color.normal
--        usernameColor: view.currentIndex === index
--          ? TimelineStyle.contact.username.color.selected
--          : TimelineStyle.contact.username.color.normal
--
--        Loader {
-+      delegate: Item {
-+        height: TimelineStyle.contact.height
-+        width: parent ? parent.width : 0
-+
-+        Contact {
-           anchors.fill: parent
--          sourceComponent: TooltipArea {
--            text: $timelineEntry.timestamp.toLocaleString(
--              Qt.locale(App.locale),
--              Locale.ShortFormat
-+          color: view.currentIndex === index
-+            ? TimelineStyle.contact.backgroundColor.selected
-+            : (
-+              index % 2 == 0
-+                ? TimelineStyle.contact.backgroundColor.a
-+                : TimelineStyle.contact.backgroundColor.b
-             )
-+            displayUnreadMessagesCount: view.currentIndex !== index
-+            entry: $timelineEntry
-+            sipAddressColor: view.currentIndex === index
-+              ? TimelineStyle.contact.sipAddress.color.selected
-+              : TimelineStyle.contact.sipAddress.color.normal
-+            usernameColor: view.currentIndex === index
-+              ? TimelineStyle.contact.username.color.selected
-+              : TimelineStyle.contact.username.color.normal
-+
-+          Loader {
-+            anchors.fill: parent
-+            sourceComponent: TooltipArea {
-+              text: $timelineEntry.timestamp.toLocaleString(
-+                Qt.locale(App.locale),
-+                Locale.ShortFormat
-+              )
-+            }
-           }
-         }
--      }
- 
--      MouseArea {
--        anchors.fill: parent
--        onClicked: {
--          view.currentIndex = index
--          timeline.entrySelected($timelineEntry.sipAddress)
-+        MouseArea {
-+          anchors.fill: parent
-+          onClicked: {
-+            view.currentIndex = index
-+            timeline.entrySelected($timelineEntry.sipAddress)
-+          }
-         }
-       }
--    }
- 
--    onCountChanged: Logic.handleCountChanged(count)
-+      onCountChanged: Logic.handleCountChanged(count)
-+    }
-   }
- }
diff --git a/net/linphone/files/patch-03-85c2165 b/net/linphone/files/patch-03-85c2165
deleted file mode 100644
index e542b57e4ce9..000000000000
--- a/net/linphone/files/patch-03-85c2165
+++ /dev/null
@@ -1,23 +0,0 @@
-From 85c2165dd2cfaa051f2b5079406cccf363cdc0c8 Mon Sep 17 00:00:00 2001
-From: Ronan Abhamon <ronan.abhamon@belledonne-communications.com>
-Date: Fri, 15 Jun 2018 14:26:54 +0200
-Subject: [PATCH] fix(TabContainer.qml): do not anchors rectangle in
- StackLayout (Qt5.11)
-
----
- ui/modules/Common/Form/Tab/TabContainer.qml               | 1 -
- ui/views/App/Settings/Dialogs/SettingsSipAccountsEdit.qml | 2 ++
- 2 files changed, 2 insertions(+), 1 deletion(-)
-
-diff --git a/ui/modules/Common/Form/Tab/TabContainer.qml b/ui/modules/Common/Form/Tab/TabContainer.qml
-index 1ddbcc18..1706849a 100644
---- ui/modules/Common/Form/Tab/TabContainer.qml
-+++ ui/modules/Common/Form/Tab/TabContainer.qml
-@@ -11,7 +11,6 @@ import Utils 1.0
- Rectangle {
-   default property alias _content: content.data
- 
--  anchors.fill: parent
-   color: TabContainerStyle.color
- 
-   ColumnLayout {
diff --git a/net/linphone/files/patch-04-8720931 b/net/linphone/files/patch-04-8720931
deleted file mode 100644
index d55c025ae04f..000000000000
--- a/net/linphone/files/patch-04-8720931
+++ /dev/null
@@ -1,68 +0,0 @@
-From 872093116f2b8cee869f38cdccf527b22d1f1ea1 Mon Sep 17 00:00:00 2001
-From: Ronan Abhamon <ronan.abhamon@belledonne-communications.com>
-Date: Fri, 15 Jun 2018 15:20:35 +0200
-Subject: [PATCH] fix(ExclusiveButtons.spec.qml): do not use SignalSpy in Qt
- 5.11, click is emitted twice instead of one
-
----
- .../Form/Buttons/ExclusiveButtons.spec.qml    | 28 ++++++++++---------
- 1 file changed, 15 insertions(+), 13 deletions(-)
-
-diff --git a/ui/modules/Common/Form/Buttons/ExclusiveButtons.spec.qml b/ui/modules/Common/Form/Buttons/ExclusiveButtons.spec.qml
-index be92a1c4..0154fa95 100644
---- ui/modules/Common/Form/Buttons/ExclusiveButtons.spec.qml
-+++ ui/modules/Common/Form/Buttons/ExclusiveButtons.spec.qml
-@@ -27,13 +27,6 @@ Item {
- 
-         texts: ['A', 'B', 'C', 'D', 'E']
-       }
--
--      SignalSpy {
--        id: spy
--
--        signalName: 'clicked'
--        target: exclusiveButtons
--      }
-     }
-   }
- 
-@@ -54,24 +47,33 @@ Item {
- 
-     function test_signals (data) {
-       var container = buildExclusiveButtons(data.defaultSelectedButton)
--      var spy = container.data[1]
-       var exclusiveButtons = container.data[0]
--
-       var buttonToClick = data.buttonToClick
- 
-       // Test default selected button.
-       compare(exclusiveButtons.selectedButton, data.defaultSelectedButton)
- 
-+      var button = -1
-+      var count = 0
-+
-+      exclusiveButtons.clicked.connect(function (_button) {
-+        button = _button;
-+        count += 1
-+      })
-+
-       // Test a click to change the selected button.
-       mouseClick(exclusiveButtons.data[buttonToClick])
--      spy.wait(100)
--      compare(spy.signalArguments[0][0], buttonToClick)
-+
-+      compare(button, buttonToClick)
-       compare(exclusiveButtons.selectedButton, buttonToClick)
-+      compare(count, 1)
- 
-       // No signal must be emitted.
-       mouseClick(exclusiveButtons.data[buttonToClick])
--      wait(100)
--      compare(spy.count, 1)
-+
-+      compare(button, buttonToClick)
-+      compare(exclusiveButtons.selectedButton, buttonToClick)
-+      compare(count, 1)
- 
-       container.destroy()
-     }
diff --git a/net/linphone/files/patch-05-4f908ef b/net/linphone/files/patch-05-4f908ef
deleted file mode 100644
index 0a03271d9323..000000000000
--- a/net/linphone/files/patch-05-4f908ef
+++ /dev/null
@@ -1,25 +0,0 @@
-From 4f908efd12647d9e603c9c6247170e127129c71a Mon Sep 17 00:00:00 2001
-From: Ronan Abhamon <ronan.abhamon@belledonne-communications.com>
-Date: Wed, 20 Jun 2018 14:32:53 +0200
-Subject: [PATCH] fix(Calls): avoid a crash with a bad binding (Qt 5.11) on
- ConferenceControls
-
----
- ui/modules/Linphone/Calls/Calls.qml | 4 +---
- 1 file changed, 1 insertion(+), 3 deletions(-)
-
-diff --git a/ui/modules/Linphone/Calls/Calls.qml b/ui/modules/Linphone/Calls/Calls.qml
-index 89309129..b6f95bae 100644
---- ui/modules/Linphone/Calls/Calls.qml
-+++ ui/modules/Linphone/Calls/Calls.qml
-@@ -93,9 +93,7 @@ ListView {
-   // ---------------------------------------------------------------------------
- 
-   header: ConferenceControls {
--    readonly property bool isSelected: calls.currentIndex === -1 &&
--      calls._selectedCall == null &&
--      visible
-+    readonly property bool isSelected: calls.currentIndex === -1 && calls._selectedCall == null
- 
-     height: visible ? ConferenceControlsStyle.height : 0
-     width: parent.width
diff --git a/net/linphone/files/patch-06-70f47b0 b/net/linphone/files/patch-06-70f47b0
deleted file mode 100644
index 36df71bf6395..000000000000
--- a/net/linphone/files/patch-06-70f47b0
+++ /dev/null
@@ -1,90 +0,0 @@
-From 70f47b01d375ab1d3687b2d448c601fdc15fab20 Mon Sep 17 00:00:00 2001
-From: Ronan Abhamon <ronan.abhamon@belledonne-communications.com>
-Date: Wed, 20 Jun 2018 14:56:53 +0200
-Subject: [PATCH] fix(App): do not create windows later to avoid warning and
- abort (QQmlComponent: Cannot create new component instance before completing
- the previous)
-
----
- src/app/App.cpp | 40 +++++++++++++++++++---------------------
- src/app/App.hpp |  4 ++--
- 2 files changed, 21 insertions(+), 23 deletions(-)
-
-diff --git a/src/app/App.cpp b/src/app/App.cpp
-index 36b68590..12661dd4 100644
---- src/app/App.cpp.orig
-+++ src/app/App.cpp
-@@ -147,8 +147,6 @@
-     qInfo() << QStringLiteral("Restarting app...");
-     delete mEngine;
- 
--    mCallsWindow = nullptr;
--    mSettingsWindow = nullptr;
- 
-     CoreManager::uninit();
- 
-@@ -232,10 +230,7 @@
- 
- // -----------------------------------------------------------------------------
- 
--QQuickWindow *App::getCallsWindow () {
--  if (!mCallsWindow)
--    mCallsWindow = ::createSubWindow(mEngine, QML_VIEW_CALLS_WINDOW);
--
-+QQuickWindow *App::getCallsWindow () const {
-   return mCallsWindow;
- }
- 
-@@ -245,18 +240,7 @@
-   );
- }
- 
--QQuickWindow *App::getSettingsWindow () {
--  if (!mSettingsWindow) {
--    mSettingsWindow = ::createSubWindow(mEngine, QML_VIEW_SETTINGS_WINDOW);
--    QObject::connect(mSettingsWindow, &QWindow::visibilityChanged, this, [](QWindow::Visibility visibility) {
--        if (visibility == QWindow::Hidden) {
--          qInfo() << QStringLiteral("Update nat policy.");
--          shared_ptr<linphone::Core> core = CoreManager::getInstance()->getCore();
--          core->setNatPolicy(core->getNatPolicy());
--        }
--      });
--  }
--
-+QQuickWindow *App::getSettingsWindow () const {
-   return mSettingsWindow;
- }
- 
-@@ -504,6 +488,17 @@
- 
- void App::openAppAfterInit () {
-   qInfo() << QStringLiteral("Open linphone app.");
-+
-+  // Create other windows.
-+  mCallsWindow = createSubWindow(mEngine, QML_VIEW_CALLS_WINDOW);
-+  mSettingsWindow = createSubWindow(mEngine, QML_VIEW_SETTINGS_WINDOW);
-+  QObject::connect(mSettingsWindow, &QWindow::visibilityChanged, this, [](QWindow::Visibility visibility) {
-+    if (visibility == QWindow::Hidden) {
-+      qInfo() << QStringLiteral("Update nat policy.");
-+      shared_ptr<linphone::Core> core = CoreManager::getInstance()->getCore();
-+      core->setNatPolicy(core->getNatPolicy());
-+    }
-+  });
- 
-   QQuickWindow *mainWindow = getMainWindow();
- 
-diff --git a/src/app/App.hpp b/src/app/App.hpp
-index cdae4a06..21ad9617 100644
---- src/app/App.hpp.orig
-+++ src/app/App.hpp
-@@ -79,8 +79,8 @@
-     exit(APP_CODE_RESTART);
-   }
- 
--  Q_INVOKABLE QQuickWindow *getCallsWindow ();
--  Q_INVOKABLE QQuickWindow *getSettingsWindow ();
-+  Q_INVOKABLE QQuickWindow *getCallsWindow () const;
-+  Q_INVOKABLE QQuickWindow *getSettingsWindow () const;
- 
-   Q_INVOKABLE static void smartShowWindow (QQuickWindow *window);
- 
diff --git a/net/linphone/files/patch-07-7f62ae9 b/net/linphone/files/patch-07-7f62ae9
deleted file mode 100644
index cd31e792f99f..000000000000
--- a/net/linphone/files/patch-07-7f62ae9
+++ /dev/null
@@ -1,39 +0,0 @@
-From 7f62ae905a92507c078ca6e43a2e5474b60baec8 Mon Sep 17 00:00:00 2001
-From: Ronan Abhamon <ronan.abhamon@belledonne-communications.com>
-Date: Thu, 21 Jun 2018 11:31:33 +0200
-Subject: [PATCH] fix(ComboBox): import named QtQuick.Controls, avoid
- `QQmlComponent: Component is not Ready` with Qt 5.11.1
-
----
- ui/modules/Common/Form/ComboBox.qml | 6 +++---
- 1 file changed, 3 insertions(+), 3 deletions(-)
-
-diff --git a/ui/modules/Common/Form/ComboBox.qml b/ui/modules/Common/Form/ComboBox.qml
-index 9d6a93bd..2e25d01b 100644
---- ui/modules/Common/Form/ComboBox.qml
-+++ ui/modules/Common/Form/ComboBox.qml
-@@ -1,5 +1,5 @@
- import QtQuick 2.7
--import QtQuick.Controls 2.1
-+import QtQuick.Controls 2.1 as Controls
- import QtQuick.Layouts 1.3
- 
- import Common 1.0
-@@ -10,7 +10,7 @@ import 'ComboBox.js' as Logic
- 
- // =============================================================================
- 
--ComboBox {
-+Controls.ComboBox {
-   id: comboBox
- 
-   // ---------------------------------------------------------------------------
-@@ -82,7 +82,7 @@ ComboBox {
- 
-   // ---------------------------------------------------------------------------
- 
--  delegate: ItemDelegate {
-+  delegate: Controls.ItemDelegate {
-     id: item
- 
-     readonly property var flattenedModel: comboBox.textRole.length &&
diff --git a/net/linphone/files/patch-08-313aa68 b/net/linphone/files/patch-08-313aa68
deleted file mode 100644
index 5a4029332ee6..000000000000
--- a/net/linphone/files/patch-08-313aa68
+++ /dev/null
@@ -1,29 +0,0 @@
-From 313aa682738fc877ee8ba78b1d4060e08739cc24 Mon Sep 17 00:00:00 2001
-From: Ronan Abhamon <ronan.abhamon@belledonne-communications.com>
-Date: Fri, 19 Jan 2018 15:16:03 +0100
-Subject: [PATCH] feat(AppController): force default theme style
-
----
- src/app/AppController.cpp | 2 ++
- 1 file changed, 2 insertions(+)
-
-diff --git a/src/app/AppController.cpp b/src/app/AppController.cpp
-index 2d353884..711e1a9b 100644
---- src/app/AppController.cpp
-+++ src/app/AppController.cpp
-@@ -23,6 +23,7 @@
- #include <QDirIterator>
- #include <QFontDatabase>
- #include <QMessageBox>
-+#include <QQuickStyle>
- 
- #include "gitversion.h"
- 
-@@ -85,6 +86,7 @@ AppController::AppController (int &argc, char *argv[]) {
-   QCoreApplication::setApplicationVersion(APPLICATION_VERSION);
- 
-   mApp = new App(argc, argv);
-+  QQuickStyle::setStyle("Default");
-   if (mApp->isSecondary()) {
-     #ifdef Q_OS_MACOS
-       mApp->processEvents();
diff --git a/net/linphone/files/patch-CMakeLists.txt b/net/linphone/files/patch-CMakeLists.txt
deleted file mode 100644
index 3e6f2a64b189..000000000000
--- a/net/linphone/files/patch-CMakeLists.txt
+++ /dev/null
@@ -1,10 +0,0 @@
---- CMakeLists.txt.orig	2017-07-21 13:14:18 UTC
-+++ CMakeLists.txt
-@@ -342,7 +342,6 @@ else ()
- endif ()
- 
- if (NOT WIN32)
--  add_dependencies(update_translations check_qml)
- endif ()
- set_target_properties(${TARGET_NAME} PROPERTIES OUTPUT_NAME "${EXECUTABLE_NAME}")
- set_target_properties(${TESTER_TARGET_NAME} PROPERTIES OUTPUT_NAME "${TESTER_EXECUTABLE_NAME}")
diff --git a/net/linphone/files/patch-resources.qrc b/net/linphone/files/patch-resources.qrc
deleted file mode 100644
index 3a2bae3e4cb0..000000000000
--- a/net/linphone/files/patch-resources.qrc
+++ /dev/null
@@ -1,16 +0,0 @@
---- resources.qrc.orig	2017-06-29 09:20:37 UTC
-+++ resources.qrc
-@@ -1,13 +1,5 @@
- <!DOCTYPE RCC><RCC version="1.0">
-   <qresource prefix="/">
--    <file>assets/fonts/NotoSans-hinted/NotoSans-BoldItalic.ttf</file>
--    <file>assets/fonts/NotoSans-hinted/NotoSans-Bold.ttf</file>
--    <file>assets/fonts/NotoSans-hinted/NotoSans-Italic.ttf</file>
--    <file>assets/fonts/NotoSans-hinted/NotoSans-Regular.ttf</file>
--    <file>assets/fonts/NotoSans-hinted/NotoSansUI-BoldItalic.ttf</file>
--    <file>assets/fonts/NotoSans-hinted/NotoSansUI-Bold.ttf</file>
--    <file>assets/fonts/NotoSans-hinted/NotoSansUI-Italic.ttf</file>
--    <file>assets/fonts/NotoSans-hinted/NotoSansUI-Regular.ttf</file>
-     <file>assets/images/add_disabled.svg</file>
-     <file>assets/images/add_hovered.svg</file>
-     <file>assets/images/add_normal.svg</file>
diff --git a/net/linphone/files/patch-src-app-AppController.cpp b/net/linphone/files/patch-src-app-AppController.cpp
deleted file mode 100644
index a18ff3f74a92..000000000000
--- a/net/linphone/files/patch-src-app-AppController.cpp
+++ /dev/null
@@ -1,11 +0,0 @@
---- src/app/AppController.cpp.orig	2018-11-11 20:28:45 UTC
-+++ src/app/AppController.cpp
-@@ -34,7 +34,7 @@
- #define APPLICATION_VERSION "4.1.1"
- #define APPLICATION_MINIMAL_QT_VERSION "5.9.0"
- 
--#define DEFAULT_FONT "Noto Sans"
-+#define DEFAULT_FONT "sans-serif"
- 
- using namespace std;
- 
diff --git a/net/linphone/files/patch-src_components_other_desktop-tools_DesktopTools.hpp b/net/linphone/files/patch-src_components_other_desktop-tools_DesktopTools.hpp
new file mode 100644
index 000000000000..110b9cfd9c47
--- /dev/null
+++ b/net/linphone/files/patch-src_components_other_desktop-tools_DesktopTools.hpp
@@ -0,0 +1,11 @@
+--- src/components/other/desktop-tools/DesktopTools.hpp.orig	2022-07-05 13:20:17 UTC
++++ src/components/other/desktop-tools/DesktopTools.hpp
+@@ -23,7 +23,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/pkg-plist b/net/linphone/pkg-plist
index 5352913f71c4..50fc36acea0d 100644
--- a/net/linphone/pkg-plist
+++ b/net/linphone/pkg-plist
@@ -1,8 +1,4 @@
 bin/linphone
-bin/linphone-tester
+lib/linphone/libapp-plugin.so
 share/applications/linphone.desktop
 share/icons/hicolor/scalable/apps/linphone.svg
-%%DATADIR%%/assistant/create-linphone-sip-account.rc
-%%DATADIR%%/assistant/use-linphone-sip-account.rc
-%%DATADIR%%/assistant/use-other-sip-account.rc
-%%DATADIR%%/linphonerc-factory