gnu: jami: Update to 20251212.0.

* gnu/packages/jami.scm (libjami): Update to 20251212.0.
[source]: Add libjami-pkgconf.patch and libjami-simdutf.patch patches.
[inputs]: Add simdutf.
(jami) Update to 20251212.0.
[source]: Remove jami-unbundle-dependencies.patch,
jami-libjami-headers-search.patch, jami-skip-tests-requiring-internet.patch
and jami-find-package-avutil.patch; add jami-allow-system-zxing-cpp.patch,
jami-libjami-cmake.patch and jami-avutil-link.patch patches.
[inputs]: Delete qrencode.
* gnu/packages/patches/jami-allow-system-zxing-cpp.patch: New file.
* gnu/packages/patches/jami-avutil-link.patch: Likewise.
* gnu/packages/patches/jami-libjami-cmake.patch: Likewise.
* gnu/packages/patches/libjami-pkgconf.patch: Likewise.
* gnu/packages/patches/libjami-simdutf.patch: Likewise.
* gnu/packages/patches/jami-find-package-avutil.patch: Delete file.
* gnu/packages/patches/jami-libjami-headers-search.patch: Likewise.
* gnu/packages/patches/jami-skip-tests-requiring-internet.patch: Likewise.
* gnu/packages/patches/jami-unbundle-dependencies.patch: Likewise.
* gnu/packages/patches/libjami-ac-config-files.patch: Likewise.
* gnu/packages/patches/libjami-sdbus-cpp-v2.patch: Likewise.
* gnu/packages/patches/jami-qwindowkit.patch: Update upstream status.
* gnu/local.mk (dist_patch_DATA): Update accordingly.

Change-Id: I03ff9f4a892e1fead81d2c6e547f1c0cf405eb5f
This commit is contained in:
Maxim Cournoyer 2026-01-03 15:29:01 +09:00
parent 25e2662e7e
commit 3b8d7b10ae
No known key found for this signature in database
GPG key ID: 1260E46482E63562
13 changed files with 259 additions and 374 deletions

View file

@ -19,7 +19,7 @@
# Copyright © 2018 Amirouche Boubekki <amirouche@hypermove.net> # Copyright © 2018 Amirouche Boubekki <amirouche@hypermove.net>
# Copyright © 2018, 2019, 2020, 2021, 2022, 2024, 2025 Oleg Pykhalov <go.wigust@gmail.com> # Copyright © 2018, 2019, 2020, 2021, 2022, 2024, 2025 Oleg Pykhalov <go.wigust@gmail.com>
# Copyright © 2018 Stefan Stefanović <stefanx2ovic@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, 2021, 2022, 2024 Guillaume Le Vaillant <glv@posteo.net>
# Copyright © 2019, 2020 John Soo <jsoo1@asu.edu> # Copyright © 2019, 2020 John Soo <jsoo1@asu.edu>
# Copyright © 2019 Jonathan Brielmaier <jonathan.brielmaier@web.de> # 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/irrlicht-link-against-needed-libs.patch \
%D%/packages/patches/isl-0.11.1-aarch64-support.patch \ %D%/packages/patches/isl-0.11.1-aarch64-support.patch \
%D%/packages/patches/ispell-for-linphone-cmake.patch \ %D%/packages/patches/ispell-for-linphone-cmake.patch \
%D%/packages/patches/jami-find-package-avutil.patch \ %D%/packages/patches/jami-allow-system-zxing-cpp.patch \
%D%/packages/patches/jami-libjami-headers-search.patch \ %D%/packages/patches/jami-avutil-link.patch \
%D%/packages/patches/jami-qwindowkit.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-aarch64-support.patch \
%D%/packages/patches/jamvm-1.5.1-armv7-support.patch \ %D%/packages/patches/jamvm-1.5.1-armv7-support.patch \
%D%/packages/patches/jamvm-2.0.0-aarch64-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/libgeotiff-fix-tests-on-i386.patch \
%D%/packages/patches/libguestfs-syms.patch \ %D%/packages/patches/libguestfs-syms.patch \
%D%/packages/patches/libinfinity-renew-test-certificate.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-data.patch \
%D%/packages/patches/libretro-dolphin-emu-gc-font-tool.patch \ %D%/packages/patches/libretro-dolphin-emu-gc-font-tool.patch \
%D%/packages/patches/libretro-dolphin-emu-libusb-assert.patch \ %D%/packages/patches/libretro-dolphin-emu-libusb-assert.patch \

View file

@ -2,7 +2,7 @@
;;; Copyright © 2019 Pierre Neidhardt <mail@ambrevar.xyz> ;;; Copyright © 2019 Pierre Neidhardt <mail@ambrevar.xyz>
;;; Copyright © 2020 Vincent Legoll <vincent.legoll@gmail.com> ;;; Copyright © 2020 Vincent Legoll <vincent.legoll@gmail.com>
;;; Copyright © 2019, 2020 Jan Wielkiewicz <tona_kosmicznego_smiecia@interia.pl> ;;; 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. ;;; This file is part of GNU Guix.
;;; ;;;
@ -26,6 +26,7 @@
#:use-module (gnu packages autotools) #:use-module (gnu packages autotools)
#:use-module (gnu packages backup) #:use-module (gnu packages backup)
#:use-module (gnu packages base) #:use-module (gnu packages base)
#:use-module (gnu packages c)
#:use-module (gnu packages check) #:use-module (gnu packages check)
#:use-module (gnu packages crypto) #:use-module (gnu packages crypto)
#:use-module (gnu packages documentation) #:use-module (gnu packages documentation)
@ -43,6 +44,7 @@
#:use-module (gnu packages networking) #:use-module (gnu packages networking)
#:use-module (gnu packages perl) #:use-module (gnu packages perl)
#:use-module (gnu packages pkg-config) #:use-module (gnu packages pkg-config)
#:use-module (gnu packages pretty-print)
#:use-module (gnu packages pulseaudio) #:use-module (gnu packages pulseaudio)
#:use-module (gnu packages python) #:use-module (gnu packages python)
#:use-module (gnu packages qt) #:use-module (gnu packages qt)
@ -78,9 +80,9 @@
;;; When updating Jami, make sure that the patches used for ffmpeg-jami are up ;;; When updating Jami, make sure that the patches used for ffmpeg-jami are up
;;; to date with those listed in ;;; to date with those listed in
;;; <https://review.jami.net/plugins/gitiles/jami-daemon/+/refs/heads/master/contrib/src/ffmpeg/rules.mak>. ;;; <https://git.jami.net/savoirfairelinux/jami-daemon/-/blob/master/contrib/src/ffmpeg/rules.mak>.
(define %jami-nightly-version "20251003.0") (define %jami-nightly-version "20251212.0")
(define %jami-daemon-commit "afe2446133eb3c9279e42b0d1dcfdd9a3c76a35f") (define %jami-daemon-commit "663dc3f7b625abcd05e516d819c70fd883a3c9f2")
(define-public libjami (define-public libjami
(package (package
@ -94,7 +96,9 @@
(file-name (git-file-name name version)) (file-name (git-file-name name version))
(sha256 (sha256
(base32 (base32
"05vjykg3nzf91bwzrhh95c6mndiz5n6gz204y2nrfrszx161irh9")))) "1379vq5afqgrjgwhl2qwapzrs9irjsxr2gzm35jrsg31rms5xgzb"))
(patches (search-patches "libjami-pkgconf.patch"
"libjami-simdutf.patch"))))
(outputs '("out" "bin" "debug")) ;"bin' contains jamid (outputs '("out" "bin" "debug")) ;"bin' contains jamid
(build-system gnu-build-system) (build-system gnu-build-system)
(arguments (arguments
@ -102,14 +106,15 @@
;; XXX: The test suites reportedly takes 2 h 30 to run by upstream's CI. ;; XXX: The test suites reportedly takes 2 h 30 to run by upstream's CI.
;; Many tests also fail, within and without the containerized ;; Many tests also fail, within and without the containerized
;; environment. Some issues have recently been fixed, so try again in ;; 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 #:tests? #f
;; The agent links the daemon binary with libguile, which enables the ;; The agent links the daemon binary with libguile, which enables the
;; execution of test plans described in Scheme. It may be useful in ;; execution of test plans described in Scheme. It may be useful in
;; user scripts too, until more general purpose Scheme bindings are made ;; user scripts too, until more general purpose Scheme bindings are made
;; available (see: test/agent/README.md). ;; available (see: test/agent/README.md).
;; FIXME: compiling the agent currently fails (see: ;; 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") #:configure-flags #~(list "--disable-agent" "--enable-debug")
#:make-flags #~(list"V=1") ;build verbosely #:make-flags #~(list"V=1") ;build verbosely
#:phases #:phases
@ -138,6 +143,14 @@
(mkdir-p share) (mkdir-p share)
(rename-file (search-input-directory outputs "share/dbus-1") (rename-file (search-input-directory outputs "share/dbus-1")
(string-append 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 (inputs
(list alsa-lib (list alsa-lib
asio asio
@ -159,16 +172,9 @@
sdbus-c++ sdbus-c++
speex speex
speexdsp speexdsp
simdutf
webrtc-audio-processing-0.3 webrtc-audio-processing-0.3
yaml-cpp)) yaml-cpp))
(native-inputs
(list autoconf
automake
cppunit
libtool
perl ;to generate manpages with pod2man
pkg-config
which))
(synopsis "Jami core library and daemon") (synopsis "Jami core library and daemon")
(description "This package provides a library and daemon implementing the (description "This package provides a library and daemon implementing the
Jami core functionality. Jami is a secure and distributed voice, video and 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)) (file-name (git-file-name name version))
(sha256 (sha256
(base32 (base32
"1ivgs7ckc5wcjlg1p2v7nsw4skcr2hfgv7yk9kx1hd4pbiknr6hk")) "13mpv62pw4f8cb9h8qaplxkn2ydsy9d2fr4v4p54r225ynzbq04h"))
(patches (search-patches (patches (search-patches
"jami-unbundle-dependencies.patch" "jami-allow-system-zxing-cpp.patch"
"jami-libjami-headers-search.patch" "jami-libjami-cmake.patch"
"jami-qwindowkit.patch" "jami-qwindowkit.patch"
"jami-skip-tests-requiring-internet.patch" "jami-avutil-link.patch"))))
"jami-find-package-avutil.patch"))))
(build-system qt-build-system) (build-system qt-build-system)
(outputs '("out" "debug")) (outputs '("out" "debug"))
(arguments (arguments
@ -267,7 +272,7 @@ QSortFilterProxyModel conveniently exposed for QML.")
;; This works around the lack of configuration for the X11 ;; This works around the lack of configuration for the X11
;; push-to-talk feature, which is auto-detected via the ;; push-to-talk feature, which is auto-detected via the
;; XDG_SESSION_TYPE environment variable (see: ;; 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"))) (setenv "XDG_SESSION_TYPE" "x11")))
(replace 'check (replace 'check
(lambda* (#:key tests? parallel-tests? #:allow-other-keys) (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 ;; The QML test suite is currently disabled as it segfaults
;; (see: ;; (see:
;; https://git.jami.net/savoirfairelinux/jami-client-qt/-/issues/1631). ;; <https://git.jami.net/savoirfairelinux/jami-client-qt/-/issues/1631>).
;; (display "Running functional tests...\n") (apply invoke ;;(display "Running functional tests...\n")
;; "ctest" "-R" "Qml_Tests" ctest-args) ;;(apply invoke "ctest" "-R" "Qml_Tests" ctest-args)
))))))) )))))))
(native-inputs (native-inputs
(list git-minimal (list git-minimal
@ -311,7 +316,6 @@ QSortFilterProxyModel conveniently exposed for QML.")
libxkbcommon libxkbcommon
md4c md4c
network-manager network-manager
qrencode
qt5compat qt5compat
qtdeclarative qtdeclarative
qtmultimedia qtmultimedia

View file

@ -1,37 +1,32 @@
Upstream-status: https://git.jami.net/savoirfairelinux/jami-client-qt/-/issues/1506 Upstream-status: <https://review.jami.net/c/jami-client-qt/+/31461>
Upstream-status: https://git.jami.net/savoirfairelinux/jami-client-qt/-/issues/2073
diff --git a/CMakeLists.txt b/CMakeLists.txt diff --git a/CMakeLists.txt b/CMakeLists.txt
index e802357f..6d2dccfb 100644 index c046b597..3251762e 100644
--- a/CMakeLists.txt --- a/CMakeLists.txt
+++ b/CMakeLists.txt +++ b/CMakeLists.txt
@@ -696,12 +696,19 @@ add_subdirectory(3rdparty/SortFilterProx @@ -714,13 +714,18 @@ else()
endif()
# ZXing-cpp configuration # ZXing-cpp configuration
-set(BUILD_EXAMPLES OFF CACHE BOOL "") -set(ZXING_EXAMPLES OFF CACHE BOOL "")
-set(BUILD_BLACKBOX_TESTS OFF CACHE BOOL "") -set(ZXING_BLACKBOX_TESTS OFF CACHE BOOL "")
-add_subdirectory(3rdparty/zxing-cpp EXCLUDE_FROM_ALL) -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) +pkg_check_modules(zxing IMPORTED_TARGET zxing)
+if(zxing_FOUND) +if(zxing_FOUND)
+ message(STATUS "Using system-provided ZXing-cpp") + message(STATUS "Using system-provided ZXing-cpp")
+ list(APPEND CLIENT_INCLUDE_DIRS ${zxing_INCLUDE_DIRS}) + list(APPEND CLIENT_INCLUDE_DIRS ${zxing_INCLUDE_DIRS})
+ list(APPEND CLIENT_LIBS PkgConfig::zxing) + list(APPEND CLIENT_LIBS PkgConfig::zxing)
+else() +else()
+ set(BUILD_EXAMPLES OFF CACHE BOOL "") + set(ZXING_EXAMPLES OFF CACHE BOOL "")
+ set(BUILD_BLACKBOX_TESTS OFF CACHE BOOL "") + set(ZXING_BLACKBOX_TESTS OFF CACHE BOOL "")
+ add_subdirectory(3rdparty/zxing-cpp EXCLUDE_FROM_ALL) + 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_INCLUDE_DIRS ${CMAKE_CURRENT_SOURCE_DIR}/3rdparty/zxing-cpp/core/src)
+ list(APPEND CLIENT_LIBS ZXing) + list(APPEND CLIENT_LIBS ZXing)
+endif() +endif()
# common executable sources # common executable sources
qt_add_executable( qt_add_executable(
base-commit: a4300308dc8d03d59f620bb5fed753df5cf31ed9
--
2.41.0

View file

@ -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)

View file

@ -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

View file

@ -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)

View file

@ -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()

View file

@ -1,9 +1,7 @@
Upstream-status: https://lists.gnu.org/archive/html/jami/2024-03/msg00008.html Upstream-status: <https://review.jami.net/c/jami-client-qt/+/31456>
This makes it possible to use the system-provided qwindowkit library.
diff --git a/CMakeLists.txt b/CMakeLists.txt diff --git a/CMakeLists.txt b/CMakeLists.txt
index 29bfde9a..3b4c7a92 100644 index c046b597..366758f5 100644
--- a/CMakeLists.txt --- a/CMakeLists.txt
+++ b/CMakeLists.txt +++ b/CMakeLists.txt
@@ -101,13 +101,13 @@ endif() @@ -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. # If ENABLE_CRASHREPORTS is enabled, we will use crashpad_cmake for now.
diff --git a/tests/CMakeLists.txt b/tests/CMakeLists.txt diff --git a/tests/CMakeLists.txt b/tests/CMakeLists.txt
index c5228ccf..816f97a7 100644 index a1aeb22f..94f558e0 100644
--- a/tests/CMakeLists.txt --- a/tests/CMakeLists.txt
+++ b/tests/CMakeLists.txt +++ b/tests/CMakeLists.txt
@@ -61,7 +61,7 @@ target_include_directories(test_common_obj PRIVATE @@ -61,7 +61,7 @@ target_include_directories(test_common_obj PRIVATE

View file

@ -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

View file

@ -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

View file

@ -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

View file

@ -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))

View file

@ -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
]