M gnu/local.mk => gnu/local.mk +5 -5
@@ 19,7 19,7 @@
# Copyright © 2018 Amirouche Boubekki <amirouche@hypermove.net>
# Copyright © 2018, 2019, 2020, 2021, 2022, 2024, 2025 Oleg Pykhalov <go.wigust@gmail.com>
# Copyright © 2018 Stefan Stefanović <stefanx2ovic@gmail.com>
-# Copyright © 2018, 2020-2025 Maxim Cournoyer <maxim@guixotic.coop>
+# Copyright © 2018, 2020-2026 Maxim Cournoyer <maxim@guixotic.coop>
# Copyright © 2019, 2020, 2021, 2022, 2024 Guillaume Le Vaillant <glv@posteo.net>
# Copyright © 2019, 2020 John Soo <jsoo1@asu.edu>
# Copyright © 2019 Jonathan Brielmaier <jonathan.brielmaier@web.de>
@@ 1631,11 1631,9 @@ dist_patch_DATA = \
%D%/packages/patches/irrlicht-link-against-needed-libs.patch \
%D%/packages/patches/isl-0.11.1-aarch64-support.patch \
%D%/packages/patches/ispell-for-linphone-cmake.patch \
- %D%/packages/patches/jami-find-package-avutil.patch \
- %D%/packages/patches/jami-libjami-headers-search.patch \
+ %D%/packages/patches/jami-allow-system-zxing-cpp.patch \
+ %D%/packages/patches/jami-avutil-link.patch \
%D%/packages/patches/jami-qwindowkit.patch \
- %D%/packages/patches/jami-skip-tests-requiring-internet.patch \
- %D%/packages/patches/jami-unbundle-dependencies.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 \
@@ 1681,6 1679,8 @@ dist_patch_DATA = \
%D%/packages/patches/libgeotiff-fix-tests-on-i386.patch \
%D%/packages/patches/libguestfs-syms.patch \
%D%/packages/patches/libinfinity-renew-test-certificate.patch \
+ %D%/packages/patches/libjami-pkgconf.patch \
+ %D%/packages/patches/libjami-simdutf.patch \
%D%/packages/patches/libretro-dolphin-emu-data.patch \
%D%/packages/patches/libretro-dolphin-emu-gc-font-tool.patch \
%D%/packages/patches/libretro-dolphin-emu-libusb-assert.patch \
M gnu/packages/jami.scm => gnu/packages/jami.scm +29 -25
@@ 2,7 2,7 @@
;;; Copyright © 2019 Pierre Neidhardt <mail@ambrevar.xyz>
;;; Copyright © 2020 Vincent Legoll <vincent.legoll@gmail.com>
;;; Copyright © 2019, 2020 Jan Wielkiewicz <tona_kosmicznego_smiecia@interia.pl>
-;;; Copyright © 2020-2025 Maxim Cournoyer <maxim@guixotic.coop>
+;;; Copyright © 2020-2026 Maxim Cournoyer <maxim@guixotic.coop>
;;;
;;; This file is part of GNU Guix.
;;;
@@ 26,6 26,7 @@
#:use-module (gnu packages autotools)
#:use-module (gnu packages backup)
#:use-module (gnu packages base)
+ #:use-module (gnu packages c)
#:use-module (gnu packages check)
#:use-module (gnu packages crypto)
#:use-module (gnu packages documentation)
@@ 43,6 44,7 @@
#:use-module (gnu packages networking)
#:use-module (gnu packages perl)
#:use-module (gnu packages pkg-config)
+ #:use-module (gnu packages pretty-print)
#:use-module (gnu packages pulseaudio)
#:use-module (gnu packages python)
#:use-module (gnu packages qt)
@@ 78,9 80,9 @@
;;; When updating Jami, make sure that the patches used for ffmpeg-jami are up
;;; to date with those listed in
-;;; <https://review.jami.net/plugins/gitiles/jami-daemon/+/refs/heads/master/contrib/src/ffmpeg/rules.mak>.
-(define %jami-nightly-version "20251003.0")
-(define %jami-daemon-commit "afe2446133eb3c9279e42b0d1dcfdd9a3c76a35f")
+;;; <https://git.jami.net/savoirfairelinux/jami-daemon/-/blob/master/contrib/src/ffmpeg/rules.mak>.
+(define %jami-nightly-version "20251212.0")
+(define %jami-daemon-commit "663dc3f7b625abcd05e516d819c70fd883a3c9f2")
(define-public libjami
(package
@@ 94,7 96,9 @@
(file-name (git-file-name name version))
(sha256
(base32
- "05vjykg3nzf91bwzrhh95c6mndiz5n6gz204y2nrfrszx161irh9"))))
+ "1379vq5afqgrjgwhl2qwapzrs9irjsxr2gzm35jrsg31rms5xgzb"))
+ (patches (search-patches "libjami-pkgconf.patch"
+ "libjami-simdutf.patch"))))
(outputs '("out" "bin" "debug")) ;"bin' contains jamid
(build-system gnu-build-system)
(arguments
@@ 102,14 106,15 @@
;; XXX: The test suites reportedly takes 2 h 30 to run by upstream's CI.
;; Many tests also fail, within and without the containerized
;; environment. Some issues have recently been fixed, so try again in
- ;; the next release.
+ ;; the next release. More problematically, it currently fails to build
+ ;; at all (see: <https://git.jami.net/savoirfairelinux/jami-daemon/-/issues/1168>).
#:tests? #f
;; The agent links the daemon binary with libguile, which enables the
;; execution of test plans described in Scheme. It may be useful in
;; user scripts too, until more general purpose Scheme bindings are made
;; available (see: test/agent/README.md).
;; FIXME: compiling the agent currently fails (see:
- ;; https://git.jami.net/savoirfairelinux/jami-daemon/-/issues/1139).
+ ;; <https://git.jami.net/savoirfairelinux/jami-daemon/-/issues/1139>).
#:configure-flags #~(list "--disable-agent" "--enable-debug")
#:make-flags #~(list"V=1") ;build verbosely
#:phases
@@ 138,6 143,14 @@
(mkdir-p share)
(rename-file (search-input-directory outputs "share/dbus-1")
(string-append share "/dbus-1"))))))))
+ (native-inputs
+ (list autoconf
+ automake
+ cppunit
+ libtool
+ perl ;to generate manpages with pod2man
+ pkg-config
+ which))
(inputs
(list alsa-lib
asio
@@ 159,16 172,9 @@
sdbus-c++
speex
speexdsp
+ simdutf
webrtc-audio-processing-0.3
yaml-cpp))
- (native-inputs
- (list autoconf
- automake
- cppunit
- libtool
- perl ;to generate manpages with pod2man
- pkg-config
- which))
(synopsis "Jami core library and daemon")
(description "This package provides a library and daemon implementing the
Jami core functionality. Jami is a secure and distributed voice, video and
@@ 231,13 237,12 @@ QSortFilterProxyModel conveniently exposed for QML.")
(file-name (git-file-name name version))
(sha256
(base32
- "1ivgs7ckc5wcjlg1p2v7nsw4skcr2hfgv7yk9kx1hd4pbiknr6hk"))
+ "13mpv62pw4f8cb9h8qaplxkn2ydsy9d2fr4v4p54r225ynzbq04h"))
(patches (search-patches
- "jami-unbundle-dependencies.patch"
- "jami-libjami-headers-search.patch"
+ "jami-allow-system-zxing-cpp.patch"
+ "jami-libjami-cmake.patch"
"jami-qwindowkit.patch"
- "jami-skip-tests-requiring-internet.patch"
- "jami-find-package-avutil.patch"))))
+ "jami-avutil-link.patch"))))
(build-system qt-build-system)
(outputs '("out" "debug"))
(arguments
@@ 267,7 272,7 @@ QSortFilterProxyModel conveniently exposed for QML.")
;; This works around the lack of configuration for the X11
;; push-to-talk feature, which is auto-detected via the
;; XDG_SESSION_TYPE environment variable (see:
- ;; https://git.jami.net/savoirfairelinux/jami-client-qt/-/issues/1504).
+ ;; <https://git.jami.net/savoirfairelinux/jami-client-qt/-/issues/1504>).
(setenv "XDG_SESSION_TYPE" "x11")))
(replace 'check
(lambda* (#:key tests? parallel-tests? #:allow-other-keys)
@@ 288,9 293,9 @@ QSortFilterProxyModel conveniently exposed for QML.")
;; The QML test suite is currently disabled as it segfaults
;; (see:
- ;; https://git.jami.net/savoirfairelinux/jami-client-qt/-/issues/1631).
- ;; (display "Running functional tests...\n") (apply invoke
- ;; "ctest" "-R" "Qml_Tests" ctest-args)
+ ;; <https://git.jami.net/savoirfairelinux/jami-client-qt/-/issues/1631>).
+ ;;(display "Running functional tests...\n")
+ ;;(apply invoke "ctest" "-R" "Qml_Tests" ctest-args)
)))))))
(native-inputs
(list git-minimal
@@ 311,7 316,6 @@ QSortFilterProxyModel conveniently exposed for QML.")
libxkbcommon
md4c
network-manager
- qrencode
qt5compat
qtdeclarative
qtmultimedia
R gnu/packages/patches/jami-unbundle-dependencies.patch => gnu/packages/patches/jami-allow-system-zxing-cpp.patch +12 -17
@@ 1,37 1,32 @@
-Upstream-status: https://git.jami.net/savoirfairelinux/jami-client-qt/-/issues/1506
-Upstream-status: https://git.jami.net/savoirfairelinux/jami-client-qt/-/issues/2073
+Upstream-status: <https://review.jami.net/c/jami-client-qt/+/31461>
diff --git a/CMakeLists.txt b/CMakeLists.txt
-index e802357f..6d2dccfb 100644
+index c046b597..3251762e 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
-@@ -696,12 +696,19 @@ add_subdirectory(3rdparty/SortFilterProx
+@@ -714,13 +714,18 @@ else()
+ endif()
# ZXing-cpp configuration
--set(BUILD_EXAMPLES OFF CACHE BOOL "")
--set(BUILD_BLACKBOX_TESTS OFF CACHE BOOL "")
+-set(ZXING_EXAMPLES OFF CACHE BOOL "")
+-set(ZXING_BLACKBOX_TESTS OFF CACHE BOOL "")
-add_subdirectory(3rdparty/zxing-cpp EXCLUDE_FROM_ALL)
+-
+-# Add ZXing-cpp to includes and libraries
+-list(APPEND CLIENT_INCLUDE_DIRS ${CMAKE_CURRENT_SOURCE_DIR}/3rdparty/zxing-cpp/core/src)
+-list(APPEND CLIENT_LIBS ZXing)
+pkg_check_modules(zxing IMPORTED_TARGET zxing)
+if(zxing_FOUND)
+ message(STATUS "Using system-provided ZXing-cpp")
+ list(APPEND CLIENT_INCLUDE_DIRS ${zxing_INCLUDE_DIRS})
+ list(APPEND CLIENT_LIBS PkgConfig::zxing)
+else()
-+ set(BUILD_EXAMPLES OFF CACHE BOOL "")
-+ set(BUILD_BLACKBOX_TESTS OFF CACHE BOOL "")
++ set(ZXING_EXAMPLES OFF CACHE BOOL "")
++ set(ZXING_BLACKBOX_TESTS OFF CACHE BOOL "")
+ add_subdirectory(3rdparty/zxing-cpp EXCLUDE_FROM_ALL)
-
- # Add ZXing-cpp to includes and libraries
--list(APPEND CLIENT_INCLUDE_DIRS ${CMAKE_CURRENT_SOURCE_DIR}/3rdparty/zxing-cpp/core/src)
--list(APPEND CLIENT_LIBS ZXing)
+ list(APPEND CLIENT_INCLUDE_DIRS ${CMAKE_CURRENT_SOURCE_DIR}/3rdparty/zxing-cpp/core/src)
+ list(APPEND CLIENT_LIBS ZXing)
+endif()
# common executable sources
qt_add_executable(
-
-base-commit: a4300308dc8d03d59f620bb5fed753df5cf31ed9
---
-2.41.0
-
A gnu/packages/patches/jami-avutil-link.patch => gnu/packages/patches/jami-avutil-link.patch +17 -0
@@ 0,0 1,17 @@
+Upstream-status: <https://review.jami.net/c/jami-client-qt/+/32710>
+
+diff --git a/src/libclient/CMakeLists.txt b/src/libclient/CMakeLists.txt
+index 5c35e402..5e3929bc 100644
+--- a/src/libclient/CMakeLists.txt
++++ b/src/libclient/CMakeLists.txt
+@@ -325,6 +325,10 @@ if(CMAKE_CXX_COMPILER_ID MATCHES "GNU|Clang")
+ else()
+ set(CC_MACHINE "")
+ endif()
++find_library(AVUTIL_LIBRARY avutil
++ HINTS
++ ${LIBJAMI_CONTRIB_DIR}/${CC_MACHINE}/lib
++ ${LIBJAMI_CONTRIB_DIR}/apple-darwin/lib)
+
+ if(ENABLE_LIBWRAP)
+ list(APPEND LIBCLIENT_HEADERS directrenderer.h)
D gnu/packages/patches/jami-find-package-avutil.patch => gnu/packages/patches/jami-find-package-avutil.patch +0 -54
@@ 1,54 0,0 @@
-kestrelwx: The upstream CMake recipe does not link ffmpeg's libavutil,
-resulting in a build failure. INCLUDE_DIRS from pkg-config here are actually
-empty inside the build enviornment, but don't seem to affect the build.
-Relevant upstream issue:
-https://git.jami.net/savoirfairelinux/jami-client-qt/-/issues/2110
-
-diff --git a/CMakeLists.txt b/CMakeLists.txt
-index 29bfde9a..db46776e 100644
---- a/CMakeLists.txt
-+++ b/CMakeLists.txt
-@@ -453,12 +453,6 @@ endif()
-
- # For libavutil/avframe.
- set(LIBJAMI_CONTRIB_DIR "${DAEMON_DIR}/contrib")
--find_path(AVUTIL_INCLUDE_DIR libavutil/avutil.h
-- PATHS
-- ${LIBJAMI_CONTRIB_DIR}/native/ffmpeg
-- ${LIBJAMI_CONTRIB_DIR}/${CONTRIB_DARWIN_FOLDER}/include/
-- ${LIBJAMI_CONTRIB_DIR}/build/ffmpeg/Build/win32/x64/include)
--include_directories(${AVUTIL_INCLUDE_DIR})
-
- find_package(Vulkan)
- if(Vulkan_FOUND)
-@@ -479,6 +473,11 @@ endif()
-
- find_package(PkgConfig REQUIRED)
-
-+# avutil
-+pkg_search_module(avutil IMPORTED_TARGET libavutil)
-+list(APPEND CLIENT_LIBS PkgConfig::avutil)
-+include_directories(${avutil_INCLUDE_DIRS})
-+
- # hunspell
- pkg_search_module(hunspell IMPORTED_TARGET hunspell)
- if(hunspell_FOUND)
-diff --git a/src/libclient/CMakeLists.txt b/src/libclient/CMakeLists.txt
-index 01405038..b56a621b 100644
---- a/src/libclient/CMakeLists.txt
-+++ b/src/libclient/CMakeLists.txt
-@@ -318,11 +318,9 @@ if(APPLE)
- endif()
- endif()
-
--find_path(AVUTIL_INCLUDE_DIR libavutil/avutil.h
-- PATHS
-- ${LIBJAMI_CONTRIB_DIR}/native/ffmpeg
-- ${LIBJAMI_CONTRIB_DIR}/${CONTRIB_DARWIN_FOLDER}/include/
-- ${LIBJAMI_CONTRIB_DIR}/build/ffmpeg/Build/win32/x64/include)
-+pkg_search_module(AVUTIL libavutil)
-+set(AVUTIL_INCLUDE_DIR ${AVUTIL_INCLUDE_DIRS})
-+set(AVUTIL_LIBRARY ${AVUTIL_LIBRARIES})
- include_directories(${AVUTIL_INCLUDE_DIR})
- if(CMAKE_CXX_COMPILER_ID MATCHES "GNU|Clang")
- execute_process(COMMAND ${CMAKE_CXX_COMPILER} -dumpmachine
A gnu/packages/patches/jami-libjami-cmake.patch => gnu/packages/patches/jami-libjami-cmake.patch +127 -0
@@ 0,0 1,127 @@
+Upstream-status: <https://review.jami.net/c/jami-client-qt/+/32711>
+
+diff --git a/CMakeLists.txt b/CMakeLists.txt
+index c046b597..8ee7b16d 100644
+--- a/CMakeLists.txt
++++ b/CMakeLists.txt
+@@ -60,7 +60,6 @@ endif()
+
+ if(JAMICORE_AS_SUBDIR)
+ add_subdirectory(${DAEMON_DIR} EXCLUDE_FROM_ALL)
+- set(LIBJAMI_LIB jami-core)
+ endif()
+
+ # init some variables for includes, libs, etc.
+@@ -236,9 +235,6 @@ endif()
+ list(APPEND CMAKE_MODULE_PATH ${PROJECT_SOURCE_DIR}/extras/build/cmake/modules)
+ if (NOT JAMICORE_AS_SUBDIR)
+ find_package(LibJami REQUIRED)
+- if(LIBJAMI_FOUND)
+- include_directories(${LIBJAMI_INCLUDE_DIR})
+- endif()
+ endif()
+
+ include(FindPython3)
+@@ -751,7 +747,7 @@ if(MSVC)
+ WIN32_EXECUTABLE TRUE)
+
+ list(APPEND CLIENT_LIBS
+- ${LIBJAMI_LIB}
++ LibJami::LibJami
+ ${GNUTLS_LIB}
+ ${LIBCLIENT_NAME}
+ ${QT_LIBS}
+@@ -794,7 +790,8 @@ elseif (NOT APPLE)
+ ${LIBNOTIFY_LIBRARIES}
+ ${LIBGDKPIXBUF_LIBRARIES}
+ ${GLIB_LIBRARIES}
+- ${GIO_LIBRARIES})
++ ${GIO_LIBRARIES}
++ LibJami::LibJami)
+
+ install(
+ TARGETS ${PROJECT_NAME}
+diff --git a/extras/build/cmake/modules/FindLibJami.cmake b/extras/build/cmake/modules/FindLibJami.cmake
+index ee2bf6d9..31ec9c02 100644
+--- a/extras/build/cmake/modules/FindLibJami.cmake
++++ b/extras/build/cmake/modules/FindLibJami.cmake
+@@ -14,17 +14,26 @@
+ # along with this program; if not, write to the Free Software
+ # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+
+-# Once done, this find module will set:
+-#
+-# LIBJAMI_INCLUDE_DIR - libjami include directory
+-# LIBJAMI_FOUND - whether it was able to find the include directories
+-# LIBJAMI_LIB - path to libjami or libring library
++# Once done, this find module will set the LibJami::LibJami imported
++# target, which references all what is needed (headers, libraries,
++# dependencies).
+
+ set(LIBJAMI_FOUND true)
+
+ if(WITH_DAEMON_SUBMODULE)
+ set(LIBJAMI_INCLUDE_DIR ${DAEMON_DIR}/src/jami)
+ else()
++ # Preferably find libjami via pkg-config.
++ find_package(PkgConfig QUIET)
++ if(PKG_CONFIG_FOUND)
++ pkg_check_modules(LIBJAMI QUIET IMPORTED_TARGET jami)
++ if(LIBJAMI_FOUND)
++ add_library(LibJami::LibJami ALIAS PkgConfig::LIBJAMI)
++ message(STATUS "Found LibJami via pkg-config")
++ return()
++ endif()
++ endif()
++
+ find_path(LIBJAMI_INCLUDE_DIR jami.h PATH_SUFFIXES jami)
+ if(NOT LIBJAMI_INCLUDE_DIR)
+ message(STATUS "Jami daemon headers not found!
+@@ -109,5 +118,15 @@ endif()
+ # Restore the original value of CMAKE_FIND_LIBRARY_SUFFIXES.
+ set(CMAKE_FIND_LIBRARY_SUFFIXES ${CMAKE_FIND_LIBRARY_SUFFIXES_orig})
+
++# Assemble a CMake imported target with the above information gathered
++# by other means than pkg-config.
++if(LIBJAMI_FOUND AND LIBJAMI_LIB AND LIBJAMI_INCLUDE_DIR)
++ add_library(LibJami::LibJami UNKNOWN IMPORTED)
++ set_target_properties(LibJami::LibJami PROPERTIES
++ IMPORTED_LOCATION "${LIBJAMI_LIB}"
++ INTERFACE_INCLUDE_DIRECTORIES "${LIBJAMI_INCLUDE_DIR}"
++ )
++endif()
++
+ message(STATUS "Jami daemon headers are in " ${LIBJAMI_INCLUDE_DIR})
+ message(STATUS "Jami daemon library is at " ${LIBJAMI_LIB})
+diff --git a/src/libclient/CMakeLists.txt b/src/libclient/CMakeLists.txt
+index 5c35e402..94d77523 100644
+--- a/src/libclient/CMakeLists.txt
++++ b/src/libclient/CMakeLists.txt
+@@ -47,9 +47,6 @@ endif()
+ set(CMAKE_MODULE_PATH
+ ${CMAKE_MODULE_PATH} "${EXTRAS_DIR}/build/cmake/modules")
+ find_package(LibJami REQUIRED)
+-if(LIBJAMI_FOUND)
+- include_directories(${LIBJAMI_INCLUDE_DIR})
+-endif()
+
+ string(SUBSTRING ${CMAKE_GENERATOR} 0 14 CMAKE_GENERATOR_SHORT)
+ if(CMAKE_GENERATOR_SHORT MATCHES "Visual Studio ")
+diff --git a/src/libclient/qtwrapper/CMakeLists.txt b/src/libclient/qtwrapper/CMakeLists.txt
+index 761278c9..b4b5a708 100644
+--- a/src/libclient/qtwrapper/CMakeLists.txt
++++ b/src/libclient/qtwrapper/CMakeLists.txt
+@@ -39,7 +39,6 @@ else()
+ endif()
+
+ include_directories(${CMAKE_CURRENT_SOURCE_DIR})
+-include_directories(${LIBJAMI_INCLUDE_DIR})
+ include_directories(${CMAKE_CURRENT_SOURCE_DIR}/../)
+ include_directories(${CMAKE_CURRENT_SOURCE_DIR}/../dbus)
+
+@@ -49,4 +48,4 @@ add_library(${PROJECT_NAME} STATIC
+
+ target_link_libraries(${PROJECT_NAME}
+ Qt::Core
+- ${LIBJAMI_LIB})
++ LibJami::LibJami)
D => +0 -21
@@ 1,21 0,0 @@
It was applied, then reverted (by mistake?) in 4d2c55348bc014.
It's been resubmitted here:
https://lists.gnu.org/archive/html/jami/2024-01/msg00005.html
The remaining hunk was reverted by 22be4be8.
Submitted:
https://git.jami.net/savoirfairelinux/jami-client-qt/-/issues/2112
diff --git a/CMakeLists.txt b/CMakeLists.txt
index 29bfde9a..3b4c7a92 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -237,6 +237,6 @@ list(APPEND CMAKE_MODULE_PATH ${PROJECT_SOURCE_DIR}/extras/build/cmake/modules)
if (NOT JAMICORE_AS_SUBDIR)
find_package(LibJami REQUIRED)
if(LIBJAMI_FOUND)
- include_directories(${LIBJAMI_INCLUDE_DIRS})
+ include_directories(${LIBJAMI_INCLUDE_DIR})
endif()
endif()
M gnu/packages/patches/jami-qwindowkit.patch => gnu/packages/patches/jami-qwindowkit.patch +3 -5
@@ 1,9 1,7 @@
-Upstream-status: https://lists.gnu.org/archive/html/jami/2024-03/msg00008.html
-
-This makes it possible to use the system-provided qwindowkit library.
+Upstream-status: <https://review.jami.net/c/jami-client-qt/+/31456>
diff --git a/CMakeLists.txt b/CMakeLists.txt
-index 29bfde9a..3b4c7a92 100644
+index c046b597..366758f5 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -101,13 +101,13 @@ endif()
@@ 23,7 21,7 @@ index 29bfde9a..3b4c7a92 100644
# If ENABLE_CRASHREPORTS is enabled, we will use crashpad_cmake for now.
diff --git a/tests/CMakeLists.txt b/tests/CMakeLists.txt
-index c5228ccf..816f97a7 100644
+index a1aeb22f..94f558e0 100644
--- a/tests/CMakeLists.txt
+++ b/tests/CMakeLists.txt
@@ -61,7 +61,7 @@ target_include_directories(test_common_obj PRIVATE
D gnu/packages/patches/jami-skip-tests-requiring-internet.patch => gnu/packages/patches/jami-skip-tests-requiring-internet.patch +0 -51
@@ 1,51 0,0 @@
-Forwarded upstream: https://lists.gnu.org/archive/html/jami/2024-01/msg00010.html
-
-From 1d3b044c85c32341cca392254fe8bbf34a4639e1 Mon Sep 17 00:00:00 2001
-From: Maxim Cournoyer <maxim.cournoyer@gmail.com>
-Date: Tue, 9 Jan 2024 11:14:04 -0500
-Subject: [PATCH] tests: Skip tests that need Internet when there's none.
-MIME-Version: 1.0
-Content-Type: text/plain; charset=UTF-8
-Content-Transfer-Encoding: 8bit
-
-* tests/unittests/messageparser_unittest.cpp (ALinkIsParsedCorrectly)
-(YoutubeLinkIsParsedCorrectly): Skip when there is no Internet.
-
-Series-to: jami@gnu.org
-Series-cc: Sébastien Blin <sebastien.blin@savoirfairelinux.com>
-Fixes: <https://git.jami.net/savoirfairelinux/jami-client-qt/-/issues/1507>
-Change-Id: I0a5b57cd82f93fd7edf3fbeb73fb3db5a04c628c
----
- tests/unittests/messageparser_unittest.cpp | 6 ++++++
- 1 file changed, 6 insertions(+)
-
-diff --git a/tests/unittests/messageparser_unittest.cpp b/tests/unittests/messageparser_unittest.cpp
-index c10b0d0b..df7a0692 100644
---- a/tests/unittests/messageparser_unittest.cpp
-+++ b/tests/unittests/messageparser_unittest.cpp
-@@ -69,6 +69,9 @@ TEST_F(MessageParserFixture, TextIsParsedCorrectly)
- */
- TEST_F(MessageParserFixture, ALinkIsParsedCorrectly)
- {
-+ if (!globalEnv.connectivityMonitor->isOnline())
-+ GTEST_SKIP() << "ALinkIsParsedCorrectly requires Internet connectivity";
-+
- auto linkColor = QColor::fromRgb(0, 0, 255);
- auto backgroundColor = QColor::fromRgb(0, 0, 255);
-
-@@ -174,6 +177,9 @@ TEST_F(MessageParserFixture, FencedCodeIsParsedCorrectly)
- */
- TEST_F(MessageParserFixture, YoutubeLinkIsParsedCorrectly)
- {
-+ if (!globalEnv.connectivityMonitor->isOnline())
-+ GTEST_SKIP() << "YoutubeLinkIsParsedCorrectly requires Internet connectivity";
-+
- auto url = "https://www.youtube.com/watch?v=1234567890";
- auto msg = "blah blah " + QString(url) + " blah blah";
-
-
-base-commit: a4300308dc8d03d59f620bb5fed753df5cf31ed9
-prerequisite-patch-id: 90a419e7de1f4fa5bb68bc58ad0da2817ed268e0
---
-2.41.0
-
D gnu/packages/patches/libjami-ac-config-files.patch => gnu/packages/patches/libjami-ac-config-files.patch +0 -52
@@ 1,52 0,0 @@
-Forwarded here: https://lists.gnu.org/archive/html/jami/2024-01/msg00003.html
-
-From 20a1702d881b381979d31c456f1b8cf5e0f728ad Mon Sep 17 00:00:00 2001
-From: Maxim Cournoyer <maxim.cournoyer@gmail.com>
-Date: Sun, 7 Jan 2024 16:40:41 -0500
-Subject: [PATCH] configure.ac: Expand AC_CONFIG_FILES to fix a race.
-
-The commands apparently run for each file listed, or something
-similar, leading to:
-
- configure: creating ./config.status
- config.status: creating test/agent/Makefile
- chmod: cannot access 'test/agent/pre-inst-env': No such file or directory
- chmod: cannot access 'test/agent/scenarios/bulk-calls/run-scenario': No such file or directory
- config.status: creating test/agent/pre-inst-env
- chmod: cannot access 'test/agent/scenarios/bulk-calls/run-scenario': No such file or directory
-
-* configure.ac [ENABLE_AGENT]: Separate AC_CONFIG_FILES uses per file.
-
-Series-to: jami@gnu.org
-Series-postfix: daemon
-Change-Id: Ib283955b73540248e09bf31ef44ef3d178b216fa
----
- configure.ac | 10 +++++-----
- 1 file changed, 5 insertions(+), 5 deletions(-)
-
-diff --git a/configure.ac b/configure.ac
-index cdea5ff1c..2ab96d817 100644
---- a/configure.ac
-+++ b/configure.ac
-@@ -61,11 +61,11 @@ AC_ARG_ENABLE([agent],
- [Build agent]))
- AM_CONDITIONAL([ENABLE_AGENT], [test "x$enable_agent" = "xyes"])
- AM_COND_IF([ENABLE_AGENT],
-- [AC_CONFIG_FILES([test/agent/Makefile
-- test/agent/pre-inst-env:test/agent/build-aux/pre-inst-env.in
-- test/agent/scenarios/bulk-calls/run-scenario],
-- [chmod +x test/agent/pre-inst-env
-- chmod +x test/agent/scenarios/bulk-calls/run-scenario])])
-+ [AC_CONFIG_FILES([test/agent/Makefile])
-+ AC_CONFIG_FILES([test/agent/pre-inst-env:test/agent/build-aux/pre-inst-env.in],
-+ [chmod +x test/agent/pre-inst-env])
-+ AC_CONFIG_FILES([test/agent/scenarios/bulk-calls/run-scenario],
-+ [chmod +x test/agent/scenarios/bulk-calls/run-scenario])])
-
- AC_ARG_ENABLE([tracepoints], AS_HELP_STRING([--enable-tracepoints], [Enable tracepoints]))
-
-
-base-commit: e246fb2e090c9b3de55e2d455eee5a6f05a5b286
---
-2.41.0
-
A gnu/packages/patches/libjami-pkgconf.patch => gnu/packages/patches/libjami-pkgconf.patch +15 -0
@@ 0,0 1,15 @@
+Upstream-status: <https://review.jami.net/c/jami-daemon/+/32709>
+
+diff --git a/jami.pc.in b/jami.pc.in
+index fb8bac58a..3b741e7ed 100644
+--- a/jami.pc.in
++++ b/jami.pc.in
+@@ -1,7 +1,7 @@
+ prefix=@prefix@
+ exec_prefix=@exec_prefix@
+ libdir=@libdir@
+-includedir=@includedir@
++includedir=@includedir@/jami
+
+ Name: jami
+ Description: Jami core library and daemon
D gnu/packages/patches/libjami-sdbus-cpp-v2.patch => gnu/packages/patches/libjami-sdbus-cpp-v2.patch +0 -144
@@ 1,144 0,0 @@
-Upstream-status: <https://review.jami.net/c/jami-daemon/+/31504>
-
-diff --git a/bin/dbus/dbuscallmanager.hpp b/bin/dbus/dbuscallmanager.hpp
-index b79e0cd6f..918d8bc30 100644
---- a/bin/dbus/dbuscallmanager.hpp
-+++ b/bin/dbus/dbuscallmanager.hpp
-@@ -23,7 +23,7 @@ class DBusCallManager : public sdbus::AdaptorInterfaces<cx::ring::Ring::CallMana
- {
- public:
- DBusCallManager(sdbus::IConnection& connection)
-- : AdaptorInterfaces(connection, "/cx/ring/Ring/CallManager")
-+ : AdaptorInterfaces(connection, sdbus::ObjectPath("/cx/ring/Ring/CallManager"))
- {
- registerAdaptor();
- registerSignalHandlers();
-diff --git a/bin/dbus/dbusconfigurationmanager.hpp b/bin/dbus/dbusconfigurationmanager.hpp
-index a6bb8e4e9..895c7690d 100644
---- a/bin/dbus/dbusconfigurationmanager.hpp
-+++ b/bin/dbus/dbusconfigurationmanager.hpp
-@@ -33,7 +33,7 @@ public:
- std::vector<std::map<std::string, std::string>>,
- std::map<std::string, int32_t>>;
- DBusConfigurationManager(sdbus::IConnection& connection)
-- : AdaptorInterfaces(connection, "/cx/ring/Ring/ConfigurationManager")
-+ : AdaptorInterfaces(connection, sdbus::ObjectPath("/cx/ring/Ring/ConfigurationManager"))
- {
- registerAdaptor();
- registerSignalHandlers();
-diff --git a/bin/dbus/dbusinstance.hpp b/bin/dbus/dbusinstance.hpp
-index d45c033e1..184fd2c7d 100644
---- a/bin/dbus/dbusinstance.hpp
-+++ b/bin/dbus/dbusinstance.hpp
-@@ -28,7 +28,7 @@ class DBusInstance : public sdbus::AdaptorInterfaces<cx::ring::Ring::Instance_ad
- {
- public:
- DBusInstance(sdbus::IConnection& connection)
-- : AdaptorInterfaces(connection, "/cx/ring/Ring/Instance")
-+ : AdaptorInterfaces(connection, sdbus::ObjectPath("/cx/ring/Ring/Instance"))
- {
- registerAdaptor();
- }
-diff --git a/bin/dbus/dbuspluginmanagerinterface.hpp b/bin/dbus/dbuspluginmanagerinterface.hpp
-index c063a9903..132674e9f 100644
---- a/bin/dbus/dbuspluginmanagerinterface.hpp
-+++ b/bin/dbus/dbuspluginmanagerinterface.hpp
-@@ -23,7 +23,7 @@ class DBusPluginManagerInterface : public sdbus::AdaptorInterfaces<cx::ring::Rin
- {
- public:
- DBusPluginManagerInterface(sdbus::IConnection& connection)
-- : AdaptorInterfaces(connection, "/cx/ring/Ring/PluginManagerInterface")
-+ : AdaptorInterfaces(connection, sdbus::ObjectPath("/cx/ring/Ring/PluginManagerInterface"))
- {
- registerAdaptor();
- registerSignalHandlers();
-diff --git a/bin/dbus/dbuspresencemanager.hpp b/bin/dbus/dbuspresencemanager.hpp
-index ca8ba7f2a..27b93eee4 100644
---- a/bin/dbus/dbuspresencemanager.hpp
-+++ b/bin/dbus/dbuspresencemanager.hpp
-@@ -23,7 +23,7 @@ class DBusPresenceManager : public sdbus::AdaptorInterfaces<cx::ring::Ring::Pres
- {
- public:
- DBusPresenceManager(sdbus::IConnection& connection)
-- : AdaptorInterfaces(connection, "/cx/ring/Ring/PresenceManager")
-+ : AdaptorInterfaces(connection, sdbus::ObjectPath("/cx/ring/Ring/PresenceManager"))
- {
- registerAdaptor();
- registerSignalHandlers();
-diff --git a/bin/dbus/dbusvideomanager.hpp b/bin/dbus/dbusvideomanager.hpp
-index 7fbca2492..96f73e99b 100644
---- a/bin/dbus/dbusvideomanager.hpp
-+++ b/bin/dbus/dbusvideomanager.hpp
-@@ -23,7 +23,7 @@ class DBusVideoManager : public sdbus::AdaptorInterfaces<cx::ring::Ring::VideoMa
- {
- public:
- DBusVideoManager(sdbus::IConnection& connection)
-- : AdaptorInterfaces(connection, "/cx/ring/Ring/VideoManager")
-+ : AdaptorInterfaces(connection, sdbus::ObjectPath("/cx/ring/Ring/VideoManager"))
- {
- registerAdaptor();
- registerSignalHandlers();
-diff --git a/bin/dbus/main.cpp b/bin/dbus/main.cpp
-index ee8a349cc..4d7adc95e 100644
---- a/bin/dbus/main.cpp
-+++ b/bin/dbus/main.cpp
-@@ -180,7 +180,7 @@ main(int argc, char *argv [])
- }
-
- try {
-- connection = sdbus::createSessionBusConnection("cx.ring.Ring");
-+ connection = sdbus::createSessionBusConnection(sdbus::ServiceName("cx.ring.Ring"));
- DBusCallManager callManager(*connection);
- DBusConfigurationManager configurationManager(*connection);
- DBusInstance instanceManager(*connection);
-diff --git a/configure.ac b/configure.ac
-index 66e52ee62..68de32497 100644
---- a/configure.ac
-+++ b/configure.ac
-@@ -420,7 +420,7 @@ AC_ARG_WITH([dbus],
- [],
- [with_dbus=yes])
- AS_IF([test "x$with_dbus" = "xyes"],
-- [PKG_CHECK_MODULES(SDBUSCPP, [sdbus-c++],,
-+ [PKG_CHECK_MODULES(SDBUSCPP, [sdbus-c++ >= 2.0.0],,
- AC_MSG_ERROR([sdbus-c++ not found]))
-
- AC_CONFIG_FILES([bin/dbus/Makefile])
-diff --git a/contrib/src/sdbus-cpp/SHA512SUMS b/contrib/src/sdbus-cpp/SHA512SUMS
-index a48ebec1c..009d0b81b 100644
---- a/contrib/src/sdbus-cpp/SHA512SUMS
-+++ b/contrib/src/sdbus-cpp/SHA512SUMS
-@@ -1 +1 @@
--dab2c4d9a5ea6d626672a5a6ee6f3490c60c6fdd160769801a4d6b4cf3df4983fad57ff0230132a5d637ec78a55993200ce217fa89461016e101865cc2777d7d sdbus-cpp-1.2.0.tar.gz
-+4247d49f0d5231e2768c0c96fa9c266bbcc340292c9c3d748f9c37ff992b82301faea798300f916e9a5c992d77adfe56186866c91a4c7d4157750ff09ba5a047 sdbus-cpp-2.1.0.tar.gz
-diff --git a/contrib/src/sdbus-cpp/rules.mak b/contrib/src/sdbus-cpp/rules.mak
-index 397d18d3b..d00fa97ca 100644
---- a/contrib/src/sdbus-cpp/rules.mak
-+++ b/contrib/src/sdbus-cpp/rules.mak
-@@ -1,4 +1,4 @@
--SDBUS_CPP_VERSION := 1.2.0
-+SDBUS_CPP_VERSION := 2.1.0
- SDBUS_CPP_URL := https://github.com/Kistler-Group/sdbus-cpp/archive/refs/tags/v$(SDBUS_CPP_VERSION).tar.gz
-
- ifdef HAVE_LINUX
-@@ -7,17 +7,14 @@ PKGS += sdbus-cpp
- endif
- endif
-
--ifeq ($(call need_pkg,"sdbus-c++ >= 1.2.0"),)
-+ifeq ($(call need_pkg,"sdbus-c++ >= 2.0.0"),)
- PKGS_FOUND += sdbus-cpp
- endif
-
- SDBUS_CPP_CMAKECONF := -D CMAKE_BUILD_TYPE=Release \
- -D BUILD_SHARED_LIBS=OFF \
-- -D BUILD_CODE_GEN=ON \
-- -D BUILD_LIBSYSTEMD=OFF \
-- -D BUILD_TESTS=OFF \
-- -D BUILD_EXAMPLES=OFF \
-- -D BUILD_DOC=OFF
-+ -D SDBUSCPP_BUILD_CODEGEN=ON \
-+ -D SDBUSCPP_BUILD_DOCS=OFF
-
- $(TARBALLS)/sdbus-cpp-$(SDBUS_CPP_VERSION).tar.gz:
- $(call download,$(SDBUS_CPP_URL))
A gnu/packages/patches/libjami-simdutf.patch => gnu/packages/patches/libjami-simdutf.patch +51 -0
@@ 0,0 1,51 @@
+Upstream-status: <https://review.jami.net/c/jami-daemon/+/32708>
+
+diff --git a/configure.ac b/configure.ac
+index 055151670..f6e4ae978 100644
+--- a/configure.ac
++++ b/configure.ac
+@@ -590,6 +590,8 @@ PKG_CHECK_MODULES([SECP256K1], [libsecp256k1 >= 0.1],,
+ PKG_CHECK_MODULES([FMT], [fmt >= 7.0],,
+ AC_MSG_FAILURE([Missing {fmt}]))
+
++PKG_CHECK_MODULES([SIMDUTF], [simdutf])
++
+ # SHM
+ dnl check for shm
+ AS_IF([test "x$with_dbus" == xyes],
+diff --git a/meson.build b/meson.build
+index c0f98c7f8..3ad0bd0ba 100644
+--- a/meson.build
++++ b/meson.build
+@@ -32,6 +32,7 @@ deplibavutil = dependency('libavutil', version: '>= 55.75.100')
+ depfmt = dependency('fmt', version: '>= 5.3')
+ depyamlcpp = dependency('yaml-cpp', version: '>= 0.5.1')
+ depjsoncpp = dependency('jsoncpp', version: '>= 1.6.5')
++depsimdutf = dependency('simdutf')
+ depzlib = dependency('zlib')
+
+ if get_option('interfaces').contains('dbus')
+diff --git a/src/Makefile.am b/src/Makefile.am
+index 8d874223e..cee546126 100644
+--- a/src/Makefile.am
++++ b/src/Makefile.am
+@@ -52,6 +52,7 @@ libjami_la_LIBADD += \
+ $(FMT_LIBS) \
+ $(LIBSSL_LIBS) \
+ $(LIBCRYPTO_LIBS) \
++ $(SIMDUTF_LIBS) \
+ $(ZLIB_LIBS)
+
+ # XXX: It seems this should be the default value when otherwise left
+diff --git a/src/meson.build b/src/meson.build
+index 22d026abc..bfc809cba 100644
+--- a/src/meson.build
++++ b/src/meson.build
+@@ -140,6 +140,7 @@ libjami_dependencies = [
+ depfmt,
+ depyamlcpp,
+ depjsoncpp,
++ depsimdutf,
+ depzlib,
+ depopenssl
+ ]