guix_mirror_bot pushed a commit to branch master
in repository guix.
commit 46b6479e9228b412450a9fa4241779ababe01615
Author: Maxim Cournoyer <[email protected]>
AuthorDate: Sat Aug 8 15:02:02 2026 +0900
gnu: jami: Update to 20260811.0.
* gnu/packages/patches/libjami-networkservice-header.patch: New file.
* gnu/packages/patches/jami-link-to-libavutil.patch: Likewise.
* gnu/packages/patches/jami-qml-fix.patch: Likewise.
* gnu/packages/patches/jami-avutil-link.patch: Delete file.
* gnu/packages/patches/jami-libjami-cmake.patch: Likewise.
* gnu/local.mk (dist_patch_DATA): Update accordingly.
* gnu/packages/jami.scm (%jami-nightly-version): Set to 20260811.0.
(%jami-daemon-commit): Set to c87ccc39b1469a6b766401407746d447cb5d6ee9.
(libjami) [source]: Apply libjami-networkservice-header.patch patch.
(jami) [source]: Update patches.
[#:arguments] {check}: Skip some tests via the GTEST_FILTER environment
variable.
---
gnu/local.mk | 7 +-
gnu/packages/jami.scm | 17 +-
gnu/packages/patches/jami-avutil-link.patch | 17 --
gnu/packages/patches/jami-libjami-cmake.patch | 181 ----------------
gnu/packages/patches/jami-link-to-libavutil.patch | 234 +++++++++++++++++++++
gnu/packages/patches/jami-qml-fix.patch | 15 ++
.../patches/libjami-networkservice-header.patch | 14 ++
7 files changed, 277 insertions(+), 208 deletions(-)
diff --git a/gnu/local.mk b/gnu/local.mk
index 76e854e2435..fb291d8e4e1 100644
--- a/gnu/local.mk
+++ b/gnu/local.mk
@@ -1269,6 +1269,7 @@ dist_patch_DATA =
\
%D%/packages/patches/emacs-helpful-fix-signature.patch \
%D%/packages/patches/emacs-helpful-fix-tests.patch \
%D%/packages/patches/emacs-highlight-stages-add-gexp.patch \
+ %D%/packages/patches/emacs-ivy-avoid-nil-predicate.patch \
%D%/packages/patches/emacs-json-reformat-fix-tests.patch \
%D%/packages/patches/emacs-kv-fix-tests.patch \
%D%/packages/patches/emacs-lispy-revert-js.patch \
@@ -1702,9 +1703,8 @@ 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-avutil-link.patch \
- %D%/packages/patches/emacs-ivy-avoid-nil-predicate.patch \
- %D%/packages/patches/jami-libjami-cmake.patch \
+ %D%/packages/patches/jami-link-to-libavutil.patch \
+ %D%/packages/patches/jami-qml-fix.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 \
@@ -1750,6 +1750,7 @@ 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-networkservice-header.patch \
%D%/packages/patches/libmaus2-fix-gcc-13-require-include-cstdint.patch
\
%D%/packages/patches/libpatch-respect-ldflags.patch \
%D%/packages/patches/libportal-qt-6.9.patch \
diff --git a/gnu/packages/jami.scm b/gnu/packages/jami.scm
index a08ff132792..fef98a97803 100644
--- a/gnu/packages/jami.scm
+++ b/gnu/packages/jami.scm
@@ -81,8 +81,8 @@
;;; When updating Jami, make sure that the patches used for ffmpeg-jami are up
;;; to date with those listed in
;;;
<https://git.jami.net/savoirfairelinux/jami-daemon/-/blob/master/contrib/src/ffmpeg/rules.mak>.
-(define %jami-nightly-version "20260220.0")
-(define %jami-daemon-commit "67a68a69f958ca72142ed3cc20b3181ae32f3661")
+(define %jami-nightly-version "20260811.0")
+(define %jami-daemon-commit "c87ccc39b1469a6b766401407746d447cb5d6ee9")
(define-public libjami
(package
@@ -96,7 +96,8 @@
(file-name (git-file-name name version))
(sha256
(base32
- "1hjx9vzskjkg8aa6699l28wpx1f69agynfyr56xsb2d8nyifs5ds"))))
+ "13p70w80g7xd1v26h0x3bz3bkcbn6xmpsi1ycgcpm4dr8khp53ms"))
+ (patches (search-patches
"libjami-networkservice-header.patch"))))
;; Reduce the output by about 2 MiB by splitting the seldom used 'jamid'
;; daemon binary to the "bin" output.
(outputs '("out" "bin" "debug"))
@@ -222,10 +223,9 @@ QSortFilterProxyModel conveniently exposed for QML.")
(file-name (git-file-name name version))
(sha256
(base32
- "0g6hdh9kdnvfika2x4ymcmm00i13ml2rp91flzawqhlb3nm6jdy6"))
- (patches (search-patches
- "jami-libjami-cmake.patch"
- "jami-avutil-link.patch"))))
+ "0zq0x8vcl85rqpgyhanvc9x85kn2dcrzjmznsf0vyfjq6ycpgqn5"))
+ (patches (search-patches "jami-link-to-libavutil.patch"
+ "jami-qml-fix.patch"))))
(build-system qt-build-system)
(outputs '("out" "debug"))
(arguments
@@ -269,6 +269,9 @@ QSortFilterProxyModel conveniently exposed for QML.")
"1"))))
(display "Running unit tests...\n")
+ ;; Skip the name server related tests, since they fail in
+ ;; the Guix build environment, which lacks name resolution.
+ (setenv "GTEST_FILTER" "-ApiServerFixture.Nameserver*")
(apply invoke "ctest" "-R" "Unit_Tests" ctest-args)
;; The QML test suite is currently disabled as it segfaults
diff --git a/gnu/packages/patches/jami-avutil-link.patch
b/gnu/packages/patches/jami-avutil-link.patch
deleted file mode 100644
index 05e0dfd8401..00000000000
--- a/gnu/packages/patches/jami-avutil-link.patch
+++ /dev/null
@@ -1,17 +0,0 @@
-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)
diff --git a/gnu/packages/patches/jami-libjami-cmake.patch
b/gnu/packages/patches/jami-libjami-cmake.patch
deleted file mode 100644
index 3c95b990b15..00000000000
--- a/gnu/packages/patches/jami-libjami-cmake.patch
+++ /dev/null
@@ -1,181 +0,0 @@
-diff --git a/CMakeLists.txt b/CMakeLists.txt
-index 979dae2a..21adb2fc 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.
-@@ -226,11 +225,9 @@ submodules afterwards. You can do so by running \"git
submodule \
- update --init\" in the repository.")
- 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()
-+find_package(LibJami REQUIRED)
-+if (NOT TARGET LibJami::LibJami)
-+ message(FATAL_ERROR "libjami could not be found")
- endif()
-
- include(FindPython3)
-@@ -755,6 +752,8 @@ foreach(MODULE ${QT_MODULES})
- list(APPEND QT_LIBS "Qt::${MODULE}")
- endforeach()
-
-+list(APPEND CLIENT_LIBS LibJami::LibJami)
-+
- if(MSVC)
- # Makes it a GUI executable instead of a console application
- set_target_properties(
-@@ -763,7 +762,6 @@ if(MSVC)
- WIN32_EXECUTABLE TRUE)
-
- list(APPEND CLIENT_LIBS
-- ${LIBJAMI_LIB}
- ${GNUTLS_LIB}
- ${LIBCLIENT_NAME}
- ${QT_LIBS}
-diff --git a/extras/build/cmake/modules/FindLibJami.cmake
b/extras/build/cmake/modules/FindLibJami.cmake
-index ee2bf6d9..92cd9e55 100644
---- a/extras/build/cmake/modules/FindLibJami.cmake
-+++ b/extras/build/cmake/modules/FindLibJami.cmake
-@@ -14,17 +14,38 @@
- # 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). A pure interface variant target, LibJami::Headers, is
-+# also defined. It can be used if only the headers are required.
-
- set(LIBJAMI_FOUND true)
-
-+# Do not use ALIAS as these are not in the global scope.
-+function(create_libjami_target backend_target)
-+ add_library(LibJami::LibJami INTERFACE IMPORTED GLOBAL)
-+ target_link_libraries(LibJami::LibJami INTERFACE ${backend_target})
-+endfunction()
-+
- if(WITH_DAEMON_SUBMODULE)
-+ if(JAMICORE_AS_SUBDIR)
-+ create_libjami_target(jami-core)
-+ message(STATUS "Using jami-core CMake project directly as libjami")
-+ return()
-+ endif()
- 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)
-+ create_libjami_target(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 +130,16 @@ endif()
- # Restore the original value of CMAKE_FIND_LIBRARY_SUFFIXES.
- set(CMAKE_FIND_LIBRARY_SUFFIXES ${CMAKE_FIND_LIBRARY_SUFFIXES_orig})
-
--message(STATUS "Jami daemon headers are in " ${LIBJAMI_INCLUDE_DIR})
--message(STATUS "Jami daemon library is at " ${LIBJAMI_LIB})
-+# 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 GLOBAL)
-+ set_target_properties(LibJami::LibJami PROPERTIES
-+ IMPORTED_LOCATION "${LIBJAMI_LIB}"
-+ INTERFACE_INCLUDE_DIRECTORIES "${LIBJAMI_INCLUDE_DIR}"
-+ )
-+ message(STATUS "Jami daemon headers are in " ${LIBJAMI_INCLUDE_DIR})
-+ message(STATUS "Jami daemon library is at " ${LIBJAMI_LIB})
-+else()
-+ message(WARNING "Could not find Jami library")
-+endif()
-diff --git a/src/libclient/CMakeLists.txt b/src/libclient/CMakeLists.txt
-index 04cdbc6d..26744a6e 100644
---- a/src/libclient/CMakeLists.txt
-+++ b/src/libclient/CMakeLists.txt
-@@ -46,10 +46,6 @@ if(NOT DEFINED EXTRAS_DIR)
- 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 ")
-@@ -202,10 +198,6 @@ Qt${QT_VERSION_MAJOR} enabled.")
- add_subdirectory(qtwrapper)
- include_directories(qtwrapper)
-
-- if(JAMICORE_AS_SUBDIR)
-- add_dependencies(qtwrapper jami-core)
-- endif()
--
- if(${VERBOSE_IPC} MATCHES true)
- message(STATUS "Adding more debug output")
- add_definitions(-DVERBOSE_IPC=true)
-@@ -454,16 +446,6 @@ add_library(${LIBCLIENT_NAME} STATIC
- ${LIBCLIENT_HEADERS_API}
- ${LIBCLIENT_HEADERS_MOC})
-
--if(JAMICORE_AS_SUBDIR)
-- # Define the project dependencies depending on the build type.
-- if(ENABLE_LIBWRAP)
-- add_dependencies(qtwrapper jami-core)
-- add_dependencies(${LIBCLIENT_NAME} qtwrapper)
-- else()
-- add_dependencies(${LIBCLIENT_NAME} jami-core)
-- endif()
--endif()
--
- foreach(QT_LIB ${QT_LIBS})
- target_link_libraries(${LIBCLIENT_NAME} ${QT_LIB})
- endforeach()
-@@ -479,6 +461,8 @@ if(ENABLE_LIBWRAP)
- if (NOT (CMAKE_CXX_COMPILER_ID MATCHES "MSVC"))
- target_link_libraries(${LIBCLIENT_NAME} ${AVUTIL_LIBRARY})
- endif()
-+else()
-+ target_link_libraries(${LIBCLIENT_NAME} LibJami::LibJami)
- endif()
- if (NOT (CMAKE_CXX_COMPILER_ID MATCHES "MSVC"))
- target_link_libraries(${LIBCLIENT_NAME} -lpthread)
-diff --git a/src/libclient/qtwrapper/CMakeLists.txt
b/src/libclient/qtwrapper/CMakeLists.txt
-index c412112f..ba4bd5cb 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)
diff --git a/gnu/packages/patches/jami-link-to-libavutil.patch
b/gnu/packages/patches/jami-link-to-libavutil.patch
new file mode 100644
index 00000000000..b2cad60c130
--- /dev/null
+++ b/gnu/packages/patches/jami-link-to-libavutil.patch
@@ -0,0 +1,234 @@
+Upstream-status: <https://review.jami.net/c/jami-client-qt/+/33107/8>
+
+diff --git a/CMakeLists.txt b/CMakeLists.txt
+index ee14dbf5..7eace45b 100644
+--- a/CMakeLists.txt
++++ b/CMakeLists.txt
+@@ -89,13 +89,27 @@ endif()
+
+ if(JAMICORE_AS_SUBDIR)
+ add_subdirectory(${DAEMON_DIR} EXCLUDE_FROM_ALL)
+- set(LIBJAMI_LIB jami-core)
+ # ponytail: BUILD_SHARED_LIBS is later force-set OFF (md4c bundling, below)
+ # since it's a shared global CACHE var, so latch jami-core's actual type
+ # here rather than re-reading BUILD_SHARED_LIBS after that point.
+ get_target_property(JAMICORE_TARGET_TYPE jami-core TYPE)
+ endif()
+
++# Ensure the contribs can be found via pkg-config.
++if(NOT MSVC)
++ set(LIBJAMI_CONTRIB_DIR "${DAEMON_DIR}/contrib")
++ set(LIBJAMI_TARGET ${CMAKE_LIBRARY_ARCHITECTURE})
++ if (NOT LIBJAMI_TARGET)
++ execute_process(COMMAND "${CMAKE_C_COMPILER}" -dumpmachine
++ OUTPUT_VARIABLE LIBJAMI_TARGET
++ OUTPUT_STRIP_TRAILING_WHITESPACE)
++ endif()
++ set(LIBJAMI_CONTRIB_PREFIX "${LIBJAMI_CONTRIB_DIR}/${LIBJAMI_TARGET}")
++ set(ENV{PKG_CONFIG_PATH}
++ "${LIBJAMI_CONTRIB_PREFIX}/lib/pkgconfig:$ENV{PKG_CONFIG_PATH}")
++ message(DEBUG "PKG_CONFIG_PATH set to $ENV{PKG_CONFIG_PATH}")
++endif()
++
+ # init some variables for includes, libs, etc.
+ set(CLIENT_INCLUDE_DIRS, "")
+ set(CLIENT_LINK_DIRS, "")
+@@ -466,11 +480,9 @@ submodules afterwards. You can do so by running \"git
submodule \
+ update --init\" in the repository.")
+ 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()
++find_package(LibJami REQUIRED)
++if (NOT TARGET LibJami::LibJami)
++ message(FATAL_ERROR "libjami could not be found")
+ endif()
+
+ include(FindPython3)
+@@ -701,21 +713,6 @@ set(COMMON_HEADERS
+ ${APP_SRC_DIR}/apitokenlistmodel.h
+ )
+
+-set(CONTRIB_DARWIN_FOLDER "")
+-if(APPLE)
+- list(LENGTH CMAKE_OSX_ARCHITECTURES ARCH_LEN)
+- if(ARCH_LEN EQUAL 1)
+- # single-arch -> use <arch>-apple-darwin<ver>
+- set(DARWIN_ARCH "${CMAKE_OSX_ARCHITECTURES}")
+- set(CONTRIB_DARWIN_FOLDER
"${DARWIN_ARCH}-apple-darwin${CMAKE_SYSTEM_VERSION}")
+- else() # multi-arch -> use apple-darwin<ver>
+- set(CONTRIB_DARWIN_FOLDER "apple-darwin${CMAKE_SYSTEM_VERSION}")
+- endif()
+-endif()
+-
+-# For libavutil/avframe.
+-set(LIBJAMI_CONTRIB_DIR "${DAEMON_DIR}/contrib")
+-
+ find_package(Vulkan)
+ if(Vulkan_FOUND)
+ add_definitions(-DHAS_VULKAN)
+@@ -1099,6 +1096,8 @@ foreach(MODULE ${QT_MODULES})
+ list(APPEND QT_LIBS "Qt::${MODULE}")
+ endforeach()
+
++list(APPEND CLIENT_LIBS LibJami::LibJami)
++
+ if(MSVC)
+ # Makes it a GUI executable instead of a console application
+ set_target_properties(
+@@ -1107,7 +1106,6 @@ if(MSVC)
+ WIN32_EXECUTABLE TRUE)
+
+ list(APPEND CLIENT_LIBS
+- ${LIBJAMI_LIB}
+ ${GNUTLS_LIB}
+ ${QT_LIBS}
+ ${WINDOWS_SYS_LIBS})
+@@ -1163,7 +1161,9 @@ if(MSVC)
+
+ # executable name
+ set_target_properties(${PROJECT_NAME} PROPERTIES OUTPUT_NAME "Jami")
+-elseif (NOT APPLE)
++elseif (NOT APPLE) # GNU/Linux
++ pkg_search_module(LIBAVUTIL REQUIRED IMPORTED_TARGET libavutil)
++
+ list(APPEND CLIENT_LIBS
+ ${QT_LIBS}
+ ${X11}
+@@ -1171,7 +1171,8 @@ elseif (NOT APPLE)
+ ${LIBNOTIFY_LIBRARIES}
+ ${LIBGDKPIXBUF_LIBRARIES}
+ ${GLIB_LIBRARIES}
+- ${GIO_LIBRARIES})
++ ${GIO_LIBRARIES}
++ PkgConfig::LIBAVUTIL)
+
+ install(
+ TARGETS ${PROJECT_NAME}
+@@ -1299,7 +1300,7 @@ elseif (NOT APPLE)
+ uninstall
+ COMMAND
+ ${CMAKE_COMMAND} -P ${CMAKE_CURRENT_BINARY_DIR}/cmake_uninstall.cmake)
+-else()
++else() # Apple
+ set(resources
+ ${CMAKE_CURRENT_SOURCE_DIR}/resources/images/jami.icns
+ ${CMAKE_CURRENT_SOURCE_DIR}/resources/images/Assets.car)
+diff --git a/extras/build/cmake/modules/FindLibJami.cmake
b/extras/build/cmake/modules/FindLibJami.cmake
+index ee2bf6d9..43c50ed0 100644
+--- a/extras/build/cmake/modules/FindLibJami.cmake
++++ b/extras/build/cmake/modules/FindLibJami.cmake
+@@ -14,17 +14,42 @@
+ # 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). A pure interface variant target, LibJami::Headers, is
++# also defined. It can be used if only the headers are required.
++
++if (TARGET LibJami::LibJami)
++ return()
++endif()
+
+ set(LIBJAMI_FOUND true)
+
++# Do not use ALIAS as these are not in the global scope.
++function(create_libjami_target backend_target)
++ add_library(LibJami::LibJami INTERFACE IMPORTED GLOBAL)
++ target_link_libraries(LibJami::LibJami INTERFACE ${backend_target})
++endfunction()
++
+ if(WITH_DAEMON_SUBMODULE)
++ if(JAMICORE_AS_SUBDIR)
++ create_libjami_target(jami-core)
++ message(STATUS "Using jami-core CMake project directly as libjami")
++ return()
++ endif()
+ 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)
++ create_libjami_target(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 +134,16 @@ endif()
+ # Restore the original value of CMAKE_FIND_LIBRARY_SUFFIXES.
+ set(CMAKE_FIND_LIBRARY_SUFFIXES ${CMAKE_FIND_LIBRARY_SUFFIXES_orig})
+
+-message(STATUS "Jami daemon headers are in " ${LIBJAMI_INCLUDE_DIR})
+-message(STATUS "Jami daemon library is at " ${LIBJAMI_LIB})
++# 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 GLOBAL)
++ set_target_properties(LibJami::LibJami PROPERTIES
++ IMPORTED_LOCATION "${LIBJAMI_LIB}"
++ INTERFACE_INCLUDE_DIRECTORIES "${LIBJAMI_INCLUDE_DIR}"
++ )
++ message(STATUS "Jami daemon headers are in " ${LIBJAMI_INCLUDE_DIR})
++ message(STATUS "Jami daemon library is at " ${LIBJAMI_LIB})
++else()
++ message(WARNING "Could not find Jami library")
++endif()
+diff --git a/extras/scripts/install.sh b/extras/scripts/install.sh
+index 30f6dda6..c4257d68 100755
+--- a/extras/scripts/install.sh
++++ b/extras/scripts/install.sh
+@@ -177,8 +177,8 @@ if [[ "$OSTYPE" == "darwin"* ]]; then
+
daemon_cmake_flags+=(-DCMAKE_OSX_ARCHITECTURES="${CMAKE_OSX_ARCHITECTURES}")
+ fi
+
+-cmake .. "${daemon_cmake_flags[@]}"
+-make -j"${proc}" V=1
++cmake --log-level=debug .. "${daemon_cmake_flags[@]}"
++make -j"${proc}" VERBOSE=1
+ make_install "${global}" "${priv_install}"
+
+ # Verify system's version if no path provided.
+@@ -256,7 +256,7 @@ if [ -n "${extra_cmake_flags}" ]; then
+ client_cmake_flags+=(${extra_cmake_flags})
+ fi
+
+-echo "info: Configuring $client client with flags: ${client_cmake_flags[*]}"
+-cmake .. "${client_cmake_flags[@]}"
+-make -j"${proc}" V=1
++echo "info: Configuring client with flags: ${client_cmake_flags[*]}"
++cmake --log-level=debug .. "${client_cmake_flags[@]}"
++make -j"${proc}" VERBOSE=1
+ make_install "${global}" "${priv_install}"
+diff --git a/src/qtwrapper/CMakeLists.txt b/src/qtwrapper/CMakeLists.txt
+index 22641e8f..c6d69de9 100644
+--- a/src/qtwrapper/CMakeLists.txt
++++ b/src/qtwrapper/CMakeLists.txt
+@@ -40,7 +40,6 @@ endif()
+
+ include_directories(${CMAKE_CURRENT_SOURCE_DIR})
+ include_directories(${CMAKE_SOURCE_DIR}/src)
+-include_directories(${LIBJAMI_INCLUDE_DIR})
+ include_directories(${CORE_SRC_DIR})
+ include_directories(${DBUS_SRC_DIR})
+
+@@ -50,4 +49,4 @@ add_library(${PROJECT_NAME} STATIC
+
+ target_link_libraries(${PROJECT_NAME}
+ Qt::Core
+- ${LIBJAMI_LIB})
++ LibJami::LibJami)
diff --git a/gnu/packages/patches/jami-qml-fix.patch
b/gnu/packages/patches/jami-qml-fix.patch
new file mode 100644
index 00000000000..71e04cba875
--- /dev/null
+++ b/gnu/packages/patches/jami-qml-fix.patch
@@ -0,0 +1,15 @@
+Upstream-status:
<https://git.jami.net/savoirfairelinux/jami-client-qt/-/work_items/2433>
+
+diff --git a/src/app/mainview/components/AccountComboBox.qml
b/src/app/mainview/components/AccountComboBox.qml
+index 4f862f60..55a50902 100644
+--- a/src/app/mainview/components/AccountComboBox.qml
++++ b/src/app/mainview/components/AccountComboBox.qml
+@@ -98,7 +98,7 @@ Item {
+ filters: ValueFilter {
+ roleName: "ID"
+ value: LRCInstance.currentAccountId
+- invert: true
++ inverted: true
+ }
+ }
+
diff --git a/gnu/packages/patches/libjami-networkservice-header.patch
b/gnu/packages/patches/libjami-networkservice-header.patch
new file mode 100644
index 00000000000..28ff61e8390
--- /dev/null
+++ b/gnu/packages/patches/libjami-networkservice-header.patch
@@ -0,0 +1,14 @@
+Upstream-status: already merged upstream
+
+diff --git a/src/meson.build b/src/meson.build
+index 51d3afb22..347bb3a40 100644
+--- a/src/meson.build
++++ b/src/meson.build
+@@ -313,6 +313,7 @@ if get_option('interfaces').contains('library')
+ 'jami/def.h',
+ 'jami/jami.h',
+ 'jami/media_const.h',
++ 'jami/networkservice_interface.h',
+ 'jami/presence_const.h',
+ 'jami/presencemanager_interface.h',
+ 'jami/security_const.h',