gnu: jami: Update to 20221220.0956.79e1207.

* gnu/packages/jami.scm (%jami-version): Update to 20221220.0956.79e1207.
(%jami-sources): Remove all but the 'jami-disable-integration-tests.patch' and
'jami-libjami-headers-search.patch' patches.
* gnu/packages/patches/jami-fix-qml-imports.patch: Delete file.
* gnu/packages/patches/jami-fix-unit-tests-build.patch: Likewise.
* gnu/packages/patches/jami-no-webengine.patch: Likewise.
* gnu/packages/patches/jami-sip-contacts.patch: Likewise.
* gnu/packages/patches/jami-sip-unregister.patch: Likewise.
* gnu/packages/patches/jami-sipaccount-segfault.patch: Likewise.
* gnu/packages/patches/jami-xcb-link.patch: Likewise.
* gnu/local.mk (dist_patch_DATA): De-register them.
This commit is contained in:
Maxim Cournoyer 2022-12-27 12:15:55 -05:00
parent aeb42167fd
commit fd0e69984f
No known key found for this signature in database
GPG key ID: 1260E46482E63562
9 changed files with 3 additions and 665 deletions

View file

@ -1343,14 +1343,7 @@ dist_patch_DATA = \
%D%/packages/patches/isl-0.11.1-aarch64-support.patch \
%D%/packages/patches/itk-snap-alt-glibc-compat.patch \
%D%/packages/patches/jami-disable-integration-tests.patch \
%D%/packages/patches/jami-fix-qml-imports.patch \
%D%/packages/patches/jami-fix-unit-tests-build.patch \
%D%/packages/patches/jami-libjami-headers-search.patch \
%D%/packages/patches/jami-no-webengine.patch \
%D%/packages/patches/jami-sipaccount-segfault.patch \
%D%/packages/patches/jami-sip-contacts.patch \
%D%/packages/patches/jami-sip-unregister.patch \
%D%/packages/patches/jami-xcb-link.patch \
%D%/packages/patches/jamvm-1.5.1-aarch64-support.patch \
%D%/packages/patches/jamvm-1.5.1-armv7-support.patch \
%D%/packages/patches/jamvm-2.0.0-aarch64-support.patch \

View file

@ -69,7 +69,7 @@ (define-module (gnu packages jami)
#:use-module (guix packages)
#:use-module (guix utils))
(define %jami-version "20221031.1308.130cc26")
(define %jami-version "20221220.0956.79e1207")
(define %jami-sources
;; Return an origin object of the tarball release sources archive of the
@ -93,16 +93,9 @@ (define %jami-sources
"plugins"))))
(sha256
(base32
"0hbsjjs61n7268lyjnjb9lzfpkkd65fmz76l1bg4awlz1f3cyywm"))
"0g5709rmb9944s0ij9g4pm1b871f5z0s5nawvm10z14wx3y1np8m"))
(patches (search-patches "jami-disable-integration-tests.patch"
"jami-libjami-headers-search.patch"
"jami-fix-unit-tests-build.patch"
"jami-fix-qml-imports.patch"
"jami-no-webengine.patch"
"jami-sipaccount-segfault.patch"
"jami-sip-contacts.patch"
"jami-sip-unregister.patch"
"jami-xcb-link.patch"))))
"jami-libjami-headers-search.patch"))))
;; Jami maintains a set of patches for some key dependencies (currently
;; pjproject and ffmpeg) of Jami that haven't yet been integrated upstream.

View file

@ -1,78 +0,0 @@
From 9c4d065093d18b5495d3193028457b7393daea4b Mon Sep 17 00:00:00 2001
From: Maxim Cournoyer <maxim.cournoyer@savoirfairelinux.com>
Date: Mon, 7 Nov 2022 16:26:50 -0500
Subject: [PATCH] tests: Fix broken QML import directives.
Fixes
<https://git.jami.net/savoirfairelinux/jami-client-qt/-/issues/883>.
Automated via:
$ find tests -name '*.qml' | xargs sed -i 's,qrc:/src,../../../src,'
Change-Id: Ic1a2f419e3e328e8bf861e7fdf370f15da66675f
---
Upstream status: https://review.jami.net/c/jami-client-qt/+/22990
tests/qml/src/tst_ChatViewFooter.qml | 2 +-
tests/qml/src/tst_FilesToSendContainer.qml | 2 +-
tests/qml/src/tst_PresenceIndicator.qml | 2 +-
tests/qml/src/tst_WizardView.qml | 4 ++--
4 files changed, 5 insertions(+), 5 deletions(-)
diff --git a/client-qt/tests/qml/src/tst_ChatViewFooter.qml b/client-qt/tests/qml/src/tst_ChatViewFooter.qml
index 84316d78..b0cffe1a 100644
--- a/client-qt/tests/qml/src/tst_ChatViewFooter.qml
+++ b/client-qt/tests/qml/src/tst_ChatViewFooter.qml
@@ -25,7 +25,7 @@ import QtTest
import net.jami.Models 1.1
import net.jami.Constants 1.1
-import "qrc:/src/app/mainview/components"
+import "../../../src/app/mainview/components"
ColumnLayout {
id: root
diff --git a/client-qt/tests/qml/src/tst_FilesToSendContainer.qml b/client-qt/tests/qml/src/tst_FilesToSendContainer.qml
index b7f4810a..9432a44d 100644
--- a/client-qt/tests/qml/src/tst_FilesToSendContainer.qml
+++ b/client-qt/tests/qml/src/tst_FilesToSendContainer.qml
@@ -25,7 +25,7 @@ import QtTest
import net.jami.Models 1.1
import net.jami.Constants 1.1
-import "qrc:/src/app/mainview/components"
+import "../../../src/app/mainview/components"
ColumnLayout {
id: root
diff --git a/client-qt/tests/qml/src/tst_PresenceIndicator.qml b/client-qt/tests/qml/src/tst_PresenceIndicator.qml
index 0eda9169..46c048e8 100644
--- a/client-qt/tests/qml/src/tst_PresenceIndicator.qml
+++ b/client-qt/tests/qml/src/tst_PresenceIndicator.qml
@@ -22,7 +22,7 @@ import QtTest
import net.jami.Models 1.1
import net.jami.Constants 1.1
-import "qrc:/src/app/commoncomponents"
+import "../../../src/app/commoncomponents"
PresenceIndicator {
id: uut
diff --git a/client-qt/tests/qml/src/tst_WizardView.qml b/client-qt/tests/qml/src/tst_WizardView.qml
index 08698b7a..6a4f971d 100644
--- a/client-qt/tests/qml/src/tst_WizardView.qml
+++ b/client-qt/tests/qml/src/tst_WizardView.qml
@@ -24,8 +24,8 @@ import net.jami.Models 1.1
import net.jami.Constants 1.1
import net.jami.Enums 1.1
-import "qrc:/src/app/wizardview"
-import "qrc:/src/app/commoncomponents"
+import "../../../src/app/wizardview"
+import "../../../src/app/commoncomponents"
WizardView {
id: uut
--
2.37.3

View file

@ -1,139 +0,0 @@
From 82ecd786a29344d57e6dd95ef0800bef9dd44542 Mon Sep 17 00:00:00 2001
From: Maxim Cournoyer <maxim.cournoyer@savoirfairelinux.com>
Date: Sun, 6 Nov 2022 00:16:34 -0400
Subject: [PATCH 3/3] tests: Fix various compilation failures.
Fixes <https://git.jami.net/savoirfairelinux/jami-client-qt/-/issues/882>.
* tests/CMakeLists.txt: Add "Widgets" Qt module to find_package call.
(QML_TEST_LIBS): Add Qt::Widgets.
* tests/CMakeLists.txt: Rename QML_LIBS to QT_LIBS, a regression
introduced in d82e3820706214d15d7cb7462978b7a43b798355. Remove the
dependency on on the Widgets module, now provided via QT_LIBS.
* tests/qml/main.cpp [WITH_WEBENGINE]: Include QtWebEngine modules
conditionally.
(main) [WITH_WEBENGINE]: Initialize webengine conditionally.
* tests/CMakeLists.txt: Link test objects with ${LIBCLIENT_NAME}.
* src/app/qmlregister.h (registerTypes): Change parent type from
MainApplication* to QObject*
* src/app/qmlregister.cpp (registerTypes): Likewise.
* tests/unittests/account_unittest.cpp (globalEnv): Remove variable.
* tests/unittests/contact_unittest.cpp: Likewise.
---
Upstream status: https://review.jami.net/c/jami-client-qt/+/22984/1
src/app/qmlregister.cpp | 2 +-
src/app/qmlregister.h | 2 +-
tests/CMakeLists.txt | 6 +++---
tests/qml/main.cpp | 7 ++++---
tests/unittests/account_unittest.cpp | 2 --
tests/unittests/contact_unittest.cpp | 2 --
6 files changed, 9 insertions(+), 12 deletions(-)
diff --git a/client-qt/client-qt/src/app/qmlregister.cpp b/client-qt/src/app/qmlregister.cpp
index 285f7814..67222eb5 100644
--- a/client-qt/client-qt/src/app/qmlregister.cpp
+++ b/client-qt/src/app/qmlregister.cpp
@@ -105,7 +105,7 @@ registerTypes(QQmlEngine* engine,
AppSettingsManager* settingsManager,
PreviewEngine* previewEngine,
ScreenInfo* screenInfo,
- MainApplication* parent)
+ QObject* parent)
{
// setup the adapters (their lifetimes are that of MainApplication)
auto callAdapter = new CallAdapter(systemTray, lrcInstance, parent);
diff --git a/client-qt/client-qt/src/app/qmlregister.h b/client-qt/src/app/qmlregister.h
index 38bfd091..aac0a887 100644
--- a/client-qt/client-qt/src/app/qmlregister.h
+++ b/client-qt/src/app/qmlregister.h
@@ -67,5 +67,5 @@ void registerTypes(QQmlEngine* engine,
AppSettingsManager* appSettingsManager,
PreviewEngine* previewEngine,
ScreenInfo* screenInfo,
- MainApplication* parent);
+ QObject* parent);
}
diff --git a/client-qt/client-qt/tests/CMakeLists.txt b/client-qt/tests/CMakeLists.txt
index 8904d5ec..4e42b307 100644
--- a/client-qt/client-qt/tests/CMakeLists.txt
+++ b/client-qt/tests/CMakeLists.txt
@@ -1,4 +1,4 @@
-find_package(Qt${QT_VERSION_MAJOR} CONFIG REQUIRED QuickTest Test)
+find_package(Qt${QT_VERSION_MAJOR} CONFIG REQUIRED QuickTest Test Widgets)
if(MSVC)
# Download and unpack googletest for windows
@@ -15,7 +15,7 @@ else()
endif()
enable_testing(true)
-set(QML_TEST_LIBS ${QML_LIBS} Qt::QuickTest Qt::Test)
+set(QML_TEST_LIBS ${QT_LIBS} ${LIBCLIENT_NAME} Qt::QuickTest Qt::Test Qt::Widgets)
set(TESTS_INCLUDES
${CMAKE_SOURCE_DIR}/src
${CMAKE_SOURCE_DIR}/tests/qml
@@ -192,4 +192,4 @@ else()
${LRC}/include)
add_test(NAME UnitTests COMMAND unittests)
-endif()
\ No newline at end of file
+endif()
diff --git a/client-qt/client-qt/tests/qml/main.cpp b/client-qt/tests/qml/main.cpp
index 09c02f3e..4c42027c 100644
--- a/client-qt/client-qt/tests/qml/main.cpp
+++ b/client-qt/tests/qml/main.cpp
@@ -31,9 +31,10 @@
#include <QQmlEngine>
#include <QQmlContext>
#include <QFontDatabase>
+#ifdef WITH_WEBENGINE
#include <QtWebEngineCore>
#include <QtWebEngineQuick>
-
+#endif
#ifdef Q_OS_WIN
#include <windows.h>
#endif
@@ -155,9 +156,9 @@ main(int argc, char** argv)
// Adjust the argument count.
argc = std::distance(argv, end);
}
-
+#ifdef WITH_WEBENGINE
QtWebEngineQuick::initialize();
-
+#endif
QTEST_SET_MAIN_SOURCE_PATH
Setup setup(muteDring);
return quick_test_main_with_setup(argc, argv, "qml_test", nullptr, &setup);
diff --git a/client-qt/client-qt/tests/unittests/account_unittest.cpp b/client-qt/tests/unittests/account_unittest.cpp
index aa98453e..5af2ad6e 100644
--- a/client-qt/client-qt/tests/unittests/account_unittest.cpp
+++ b/client-qt/tests/unittests/account_unittest.cpp
@@ -19,8 +19,6 @@
#include "globaltestenvironment.h"
-TestEnvironment globalEnv;
-
/*!
* Test fixture for AccountAdapter testing
*/
diff --git a/client-qt/client-qt/tests/unittests/contact_unittest.cpp b/client-qt/tests/unittests/contact_unittest.cpp
index af8a9a22..b05cc856 100644
--- a/client-qt/client-qt/tests/unittests/contact_unittest.cpp
+++ b/client-qt/tests/unittests/contact_unittest.cpp
@@ -18,8 +18,6 @@
#include "globaltestenvironment.h"
-TestEnvironment globalEnv;
-
/*!
* Test fixture for AccountAdapter testing
*/
--
2.37.3

View file

@ -1,243 +0,0 @@
From 1f73d3c88e94f2d932c59cab8a02c72a325ccc20 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?S=C3=A9bastien=20Blin?=
<sebastien.blin@savoirfairelinux.com>
Date: Fri, 11 Nov 2022 16:19:11 -0500
Subject: [PATCH] misc: fix build without webengine
Change-Id: I2511cd89e1ce7f60424f69ab6576d7fb992dd58c
GitLab: #881
---
.../components/DocumentsScrollview.qml | 1 -
src/app/mainview/components/FilePreview.qml | 1 -
src/app/mainview/components/MediaPreview.qml | 57 ++--------------
.../mainview/components/SwarmDetailsPanel.qml | 1 -
src/app/nowebengine/VideoPreview.qml | 24 +++++++
src/app/webengine/VideoPreview.qml | 68 +++++++++++++++++++
6 files changed, 99 insertions(+), 53 deletions(-)
create mode 100644 src/app/nowebengine/VideoPreview.qml
create mode 100644 src/app/webengine/VideoPreview.qml
diff --git a/client-qt/src/app/mainview/components/DocumentsScrollview.qml b/client-qt/src/app/mainview/components/DocumentsScrollview.qml
index df516961..3338536a 100644
--- a/client-qt/src/app/mainview/components/DocumentsScrollview.qml
+++ b/client-qt/src/app/mainview/components/DocumentsScrollview.qml
@@ -20,7 +20,6 @@ import QtQuick.Controls
import QtQuick.Layouts
import Qt.labs.platform
import Qt5Compat.GraphicalEffects
-import QtWebEngine
import net.jami.Models 1.1
import net.jami.Adapters 1.1
diff --git a/client-qt/src/app/mainview/components/FilePreview.qml b/client-qt/src/app/mainview/components/FilePreview.qml
index 57b1ec8b..fe8f3fd9 100644
--- a/client-qt/src/app/mainview/components/FilePreview.qml
+++ b/client-qt/src/app/mainview/components/FilePreview.qml
@@ -19,7 +19,6 @@ import QtQuick.Controls
import QtQuick.Layouts
import Qt.labs.platform
import Qt5Compat.GraphicalEffects
-import QtWebEngine
import net.jami.Models 1.1
import net.jami.Adapters 1.1
diff --git a/client-qt/src/app/mainview/components/MediaPreview.qml b/client-qt/src/app/mainview/components/MediaPreview.qml
index 0c33bf3e..965f9343 100644
--- a/client-qt/src/app/mainview/components/MediaPreview.qml
+++ b/client-qt/src/app/mainview/components/MediaPreview.qml
@@ -19,7 +19,6 @@ import QtQuick.Controls
import QtQuick.Layouts
import Qt.labs.platform
import Qt5Compat.GraphicalEffects
-import QtWebEngine
import net.jami.Models 1.1
import net.jami.Adapters 1.1
@@ -92,59 +91,17 @@ Component {
}
Component {
id: avMediaComp
-
Loader {
- property real msgRadius: 20
-
- Rectangle {
- id: videoAudioRect
- color: JamiTheme.secondaryBackgroundColor
- anchors.fill: parent
-
- WebEngineView {
- id: wev
-
- property bool isVideo: mediaInfo.isVideo
- property string html: mediaInfo.html
-
- anchors.fill: parent
- anchors.verticalCenter: videoAudioRect.verticalCenter
- backgroundColor: JamiTheme.secondaryBackgroundColor
- anchors.topMargin: isVideo? 0 : wev.implicitHeight / 2
- settings.fullScreenSupportEnabled: isVideo
- settings.javascriptCanOpenWindows: false
- Component.onCompleted: loadHtml(html, 'file://')
- onFullScreenRequested: function(request) {
- if (request.toggleOn) {
- layoutManager.pushFullScreenItem(
- this,
- videoAudioRect,
- null,
- function() { wev.fullScreenCancelled() })
- } else if (!request.toggleOn) {
- layoutManager.removeFullScreenItem(this)
- }
- request.accept()
- }
- }
-
- layer.enabled: true
- layer.effect: OpacityMask {
- maskSource: Item {
- width: videoAudioRect.width
- height: videoAudioRect.height
- Rectangle {
- anchors.centerIn: parent
- width: videoAudioRect.width
- height: videoAudioRect.height
- radius: JamiTheme.swarmDetailsPageDocumentsMediaRadius
- }
- }
- }
+ Component.onCompleted: {
+ var qml = WITH_WEBENGINE ?
+ "qrc:/webengine/VideoPreview.qml" :
+ "qrc:/nowebengine/VideoPreview.qml"
+ setSource( qml, { isVideo: mediaInfo.isVideo, html:mediaInfo.html } )
}
+
+ property real msgRadius: 20
}
}
-
Component {
id: imageMediaComp
diff --git a/client-qt/src/app/mainview/components/SwarmDetailsPanel.qml b/client-qt/src/app/mainview/components/SwarmDetailsPanel.qml
index 0dd93bc2..7625a76e 100644
--- a/client-qt/src/app/mainview/components/SwarmDetailsPanel.qml
+++ b/client-qt/src/app/mainview/components/SwarmDetailsPanel.qml
@@ -21,7 +21,6 @@ import QtQuick.Controls
import QtQuick.Layouts
import Qt.labs.platform
import Qt5Compat.GraphicalEffects
-import QtWebEngine
import net.jami.Models 1.1
import net.jami.Adapters 1.1
diff --git a/client-qt/src/app/nowebengine/VideoPreview.qml b/client-qt/src/app/nowebengine/VideoPreview.qml
new file mode 100644
index 00000000..8c2e8a4f
--- /dev/null
+++ b/client-qt/src/app/nowebengine/VideoPreview.qml
@@ -0,0 +1,24 @@
+/*
+ * Copyright (C) 2022 Savoir-faire Linux Inc.
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see <https://www.gnu.org/licenses/>.
+ */
+
+import QtQuick
+import QtQuick.Controls
+import QtQuick.Layouts
+
+Rectangle {
+ property var mediaInfo: undefined
+}
\ No newline at end of file
diff --git a/client-qt/src/app/webengine/VideoPreview.qml b/client-qt/src/app/webengine/VideoPreview.qml
new file mode 100644
index 00000000..edc03599
--- /dev/null
+++ b/client-qt/src/app/webengine/VideoPreview.qml
@@ -0,0 +1,68 @@
+/*
+ * Copyright (C) 2022 Savoir-faire Linux Inc.
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see <https://www.gnu.org/licenses/>.
+ */
+
+import QtQuick
+import QtWebEngine
+import Qt5Compat.GraphicalEffects
+
+import net.jami.Constants 1.1
+
+Rectangle {
+ id: root
+ color: JamiTheme.secondaryBackgroundColor
+ anchors.fill: parent
+ property bool isVideo: false
+ property string html: ""
+
+ WebEngineView {
+ id: wev
+
+ anchors.fill: parent
+ anchors.verticalCenter: root.verticalCenter
+ backgroundColor: JamiTheme.secondaryBackgroundColor
+ anchors.topMargin: root.isVideo? 0 : wev.implicitHeight / 2
+ settings.fullScreenSupportEnabled: root.isVideo
+ settings.javascriptCanOpenWindows: false
+ Component.onCompleted: loadHtml(root.html, 'file://')
+ onFullScreenRequested: function(request) {
+ if (request.toggleOn) {
+ layoutManager.pushFullScreenItem(
+ this,
+ root,
+ null,
+ function() { wev.fullScreenCancelled() })
+ } else if (!request.toggleOn) {
+ layoutManager.removeFullScreenItem(this)
+ }
+ request.accept()
+ }
+ }
+
+ layer.enabled: true
+ layer.effect: OpacityMask {
+ maskSource: Item {
+ width: root.width
+ height: root.height
+ Rectangle {
+ anchors.centerIn: parent
+ width: root.width
+ height: root.height
+ radius: JamiTheme.swarmDetailsPageDocumentsMediaRadius
+ }
+ }
+ }
+}
\ No newline at end of file
--
2.37.3

View file

@ -1,38 +0,0 @@
From 3ba007d02bc19e499c8f3c2345302453028831a8 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?S=C3=A9bastien=20Blin?=
<sebastien.blin@savoirfairelinux.com>
Date: Tue, 29 Nov 2022 09:26:20 -0500
Subject: [PATCH] misc: fix incoming message sip
We do not need to check contacts for SIP as it will be considered
automatically as a contact
Change-Id: If78113e9d79dcd695c39c2d12c0441e2cb282737
---
src/libclient/conversationmodel.cpp | 8 ++++++--
1 file changed, 6 insertions(+), 2 deletions(-)
diff --git a/client-qt/src/libclient/conversationmodel.cpp b/client-qt/src/libclient/conversationmodel.cpp
index dba206bd..5604a17c 100644
--- a/client-qt/src/libclient/conversationmodel.cpp
+++ b/client-qt/src/libclient/conversationmodel.cpp
@@ -3611,8 +3611,12 @@ ConversationModelPimpl::addIncomingMessage(const QString& peerId,
try {
auto contact = linked.owner.contactModel->getContact(peerId);
isRequest = contact.profileInfo.type == profile::Type::PENDING;
- if (isRequest && !contact.isBanned && peerId != linked.owner.profileInfo.uri) {
- addContactRequest(peerId);
+ // if isSip, it will be a contact!
+ auto isSip = linked.owner.profileInfo.type == profile::Type::SIP;
+ if (isSip
+ || (isRequest && !contact.isBanned && peerId != linked.owner.profileInfo.uri)) {
+ if (!isSip)
+ addContactRequest(peerId);
convIds.push_back(storage::beginConversationWithPeer(db, contact.profileInfo.uri));
auto& conv = getConversationForPeerUri(contact.profileInfo.uri).get();
conv.uid = convIds[0];
base-commit: 6f30acf0043d07dcbe63ee8636509885a9b6fd76
--
2.38.1

View file

@ -1,48 +0,0 @@
From c1e6d664601b35a466f4e02e86a2c8181fdcca12 Mon Sep 17 00:00:00 2001
From: Antoine Noreau <antoine.noreau@savoirfairelinux.com>
Date: Thu, 3 Nov 2022 15:35:40 -0400
Subject: [PATCH] sip: ensure correct unregister upon closure
Ensure SIP connections are gracefully terminated:
Removed duplicated register calls to SIP server
Change-Id: I330e67cf9534504f92517996eb7b693b43d359d3
Gitlab: #786
---
src/upnp/upnp_context.cpp | 11 ++++++++---
1 file changed, 8 insertions(+), 3 deletions(-)
diff --git a/daemon/src/upnp/upnp_context.cpp b/daemon/src/upnp/upnp_context.cpp
index a447e2d75..c68fe502c 100644
--- a/daemon/src/upnp/upnp_context.cpp
+++ b/daemon/src/upnp/upnp_context.cpp
@@ -143,7 +143,7 @@ void
UPnPContext::stopUpnp(bool forceRelease)
{
if (not isValidThread()) {
- runOnUpnpContextQueue([this] { stopUpnp(); });
+ runOnUpnpContextQueue([this, forceRelease] { stopUpnp(forceRelease); });
return;
}
@@ -168,10 +168,15 @@ UPnPContext::stopUpnp(bool forceRelease)
preferredIgd_.reset();
validIgdList_.clear();
}
-
for (auto const& map : toRemoveList) {
requestRemoveMapping(map);
- updateMappingState(map, MappingState::FAILED);
+
+ /* Notify is not needed in updateMappingState when
+ shutting down (hence set it to false). NotifyCallback
+ would trigger a new SIP registration and create a
+ false registered state upon program close. */
+
+ updateMappingState(map, MappingState::FAILED, false);
// We dont remove mappings with auto-update enabled,
// unless forceRelease is true.
if (not map->getAutoUpdate() or forceRelease) {
--
2.37.3

View file

@ -1,30 +0,0 @@
From e5a449d60abc667d85dacd75ad6e31d4ddca5853 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?S=C3=A9bastien=20Blin?=
<sebastien.blin@savoirfairelinux.com>
Date: Thu, 17 Nov 2022 12:02:20 -0500
Subject: [PATCH] sipaccount: fix potential null dereference
Detected by sonarqube
Change-Id: I606f9cf2458dda07471d0a67af8915c7ca13d410
---
src/sip/sipaccount.cpp | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)
diff --git a/daemon/src/sip/sipaccount.cpp b/daemon/src/sip/sipaccount.cpp
index 695b71839..e544ac31a 100644
--- a/daemon/src/sip/sipaccount.cpp
+++ b/daemon/src/sip/sipaccount.cpp
@@ -789,7 +789,8 @@ SIPAccount::sendRegister()
if (pjsip_regc_set_transport(regc, &tp_sel) != PJ_SUCCESS)
throw VoipLinkException("Unable to set transport");
- setUpTransmissionData(tdata, tp_sel.u.transport->key.type);
+ if (tp_sel.u.transport)
+ setUpTransmissionData(tdata, tp_sel.u.transport->key.type);
// pjsip_regc_send increment the transport ref count by one,
if ((status = pjsip_regc_send(regc, tdata)) != PJ_SUCCESS) {
--
GitLab

View file

@ -1,72 +0,0 @@
From 3db2a7802422e69f50030db854abfb72fbc9caa4 Mon Sep 17 00:00:00 2001
From: Maxim Cournoyer <maxim.cournoyer@savoirfairelinux.com>
Date: Fri, 11 Nov 2022 22:38:32 -0500
Subject: [PATCH] Move xcb include/link directives from jami to libclient.
Relates to <https://git.jami.net/savoirfairelinux/jami-client-qt/-/issues/882>.
This problem was discovered when attempting to build the test suite:
ld: ../src/libclient/liblibjamiclient.a(avmodel.cpp.o): undefined
reference to symbol 'xcb_get_setup'
* CMakeLists.txt: [!(APPLE or MSVC] Move xcb includes and link directives to...
* src/libclient/CMakeLists.txt [!(APPLE or MSVC]: ... here.
Change-Id: If9b6653e157081300caad8f13cafe4979a49630b
---
CMakeLists.txt | 6 +-----
src/libclient/CMakeLists.txt | 6 ++++++
2 files changed, 7 insertions(+), 5 deletions(-)
diff --git a/client-qt/CMakeLists.txt b/client-qt/CMakeLists.txt
index d0a8fd70..2a09fd6c 100644
--- a/client-qt/CMakeLists.txt
+++ b/client-qt/CMakeLists.txt
@@ -384,8 +384,6 @@ elseif (NOT APPLE)
add_definitions(${LIBGDKPIXBUF_CFLAGS})
endif()
- pkg_check_modules(XCB xcb)
-
list(PREPEND CMAKE_PREFIX_PATH
${LIBJAMI_CONTRIB_DIR}/native/ffmpeg/libavutil)
pkg_check_modules(LIBAVUTIL libavutil>=55.75.100)
@@ -398,7 +396,6 @@ elseif (NOT APPLE)
${LIBNOTIFY_INCLUDE_DIRS}
${LIBGDKPIXBUF_INCLUDE_DIRS}
${GLIB_INCLUDE_DIRS}
- ${XCB_INCLUDE_DIRS}
${LIBAVUTIL_INCLUDE_DIRS})
set(JAMI_DATA_PREFIX "${CMAKE_INSTALL_PREFIX}/share")
@@ -586,8 +583,7 @@ elseif (NOT APPLE)
${LIBNOTIFY_LIBRARIES}
${LIBGDKPIXBUF_LIBRARIES}
${GLIB_LIBRARIES}
- ${GIO_LIBRARIES}
- ${XCB_LIBRARIES})
+ ${GIO_LIBRARIES})
# Installation rules
install(
diff --git a/client-qt/src/libclient/CMakeLists.txt b/client-qt/src/libclient/CMakeLists.txt
index 99780f5f..1dd32677 100644
--- a/client-qt/src/libclient/CMakeLists.txt
+++ b/client-qt/src/libclient/CMakeLists.txt
@@ -475,6 +475,12 @@ add_library(${LIBCLIENT_NAME} STATIC
foreach(QT_LIB ${QT_LIBS})
target_link_libraries(${LIBCLIENT_NAME} ${QT_LIB})
endforeach()
+
+if(NOT(APPLE OR MSVC))
+ pkg_check_modules(XCB xcb IMPORTED_TARGET)
+ target_link_libraries(${LIBCLIENT_NAME} PkgConfig::XCB)
+endif()
+
if(ENABLE_LIBWRAP)
target_link_libraries(${LIBCLIENT_NAME} qtwrapper ${LIBJAMI_LIB})
if (NOT (CMAKE_CXX_COMPILER_ID MATCHES "MSVC"))
--
2.37.3