~ruther/guix-local

2a7ba05febe4b0da4f1142097b9bd64d26a83e01 — Homo 1 year, 1 month ago b77c109
gnu: jami: Update to 20250610.0.

* gnu/packages/patches/jami.scm (libjami): Update to 20250610.0.
[source]: Unregister libgit2 patch.
[inputs]: Delete guile-3.0.
[arguments] <#:configure-flags>: Delete --enable-agent.
(jami): Update to 20250610.0.
[source]: Add patch.
[native-inputs]: Add git.
[inputs]: Add hunspell and zxing-cpp.
* gnu/packages/patches/jami-qwindowkit.patch,
gnu/packages/patches/jami-unbundle-dependencies.patch: Update for jami 20250610.0.
* gnu/local.mk: Unregister patch. Register new patch.
* gnu/packages/patches/libjami-libgit2-compatibility.patch: Remove file.
* gnu/packages/patches/jami-disable-webengine.patch: New file.

Fixes: <https://issues.guix.gnu.org/76231>
Change-Id: I118454aa7c214271725358928b751f4d43cac2db
Signed-off-by: Maxim Cournoyer <maxim@guixotic.coop>
6 files changed, 85 insertions(+), 52 deletions(-)

M gnu/local.mk
M gnu/packages/jami.scm
A gnu/packages/patches/jami-disable-webengine.patch
M gnu/packages/patches/jami-qwindowkit.patch
M gnu/packages/patches/jami-unbundle-dependencies.patch
D gnu/packages/patches/libjami-libgit2-compatibility.patch
M gnu/local.mk => gnu/local.mk +1 -1
@@ 1632,6 1632,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/jamesdsp-fix-bulid-on-pipewire-1.4.0.patch\
  %D%/packages/patches/jami-disable-webengine.patch		\
  %D%/packages/patches/jami-enable-testing.patch		\
  %D%/packages/patches/jami-libjami-headers-search.patch	\
  %D%/packages/patches/jami-qwindowkit.patch			\


@@ 1753,7 1754,6 @@ dist_patch_DATA =						\
  %D%/packages/patches/libgnomeui-utf8.patch			\
  %D%/packages/patches/libgrss-CVE-2016-2001.patch		\
  %D%/packages/patches/libjami-ac-config-files.patch		\
  %D%/packages/patches/libjami-libgit2-compatibility.patch	\
  %D%/packages/patches/libjxr-fix-function-signature.patch	\
  %D%/packages/patches/libjxr-fix-typos.patch			\
  %D%/packages/patches/libofa-ftbfs-1.diff		\

M gnu/packages/jami.scm => gnu/packages/jami.scm +16 -10
@@ 36,6 36,7 @@
  #:use-module (gnu packages graphviz)
  #:use-module (gnu packages gtk)
  #:use-module (gnu packages guile)
  #:use-module (gnu packages hunspell)
  #:use-module (gnu packages libcanberra)
  #:use-module (gnu packages linux)
  #:use-module (gnu packages markup)


@@ 78,8 79,8 @@
;;; 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 "20240524.0")
(define %jami-daemon-commit "fd2f2815448ce4072dcbc3995950788573d63f3b")
(define %jami-nightly-version "20250610.0")
(define %jami-daemon-commit "3280fa373a186c8cd4926849ef94d41bcf97c129")

(define-public libjami
  (package


@@ 93,10 94,9 @@
              (file-name (git-file-name name version))
              (sha256
               (base32
                "1bw0laj93w4pvlxsr5abz59805ypbmg21z5393yzm82j4d35cfyr"))
                "1sxrm0q4p9al6ar3svnni080cnclgf6yi9sy503n60srg47jvs87"))
              (patches (search-patches
                        "libjami-ac-config-files.patch"
                        "libjami-libgit2-compatibility.patch"))))
                        "libjami-ac-config-files.patch"))))
    (outputs '("out" "bin" "debug"))    ;"bin' contains jamid
    (build-system gnu-build-system)
    (arguments


@@ 110,7 110,9 @@
      ;; 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).
      #:configure-flags #~(list "--enable-agent" "--enable-debug")
      ;; FIXME: compiling the agent currently fails (see:
      ;; https://git.jami.net/savoirfairelinux/jami-daemon/-/issues/1139).
      #:configure-flags #~(list "--disable-agent" "--enable-debug")
      #:make-flags #~(list"V=1")        ;build verbosely
      #:phases
      #~(modify-phases %standard-phases


@@ 144,7 146,7 @@
           dhtnet
           eudev
           ffmpeg-jami
           guile-3.0
           ;guile-3.0
           jack-1
           jsoncpp
           libarchive


@@ 231,8 233,9 @@ QSortFilterProxyModel conveniently exposed for QML.")
              (file-name (git-file-name name version))
              (sha256
               (base32
                "1wqi50n80khyngj48brc8wg3m6jq471h9gm62yxpj4f8z5j81ncd"))
                "11hydcclfllvdsd08fdmsqxldgk957rr0xyjqgr9hdh7y0l95a9a"))
              (patches (search-patches
                        "jami-disable-webengine.patch"
                        "jami-enable-testing.patch"
                        "jami-libjami-headers-search.patch"
                        "jami-qwindowkit.patch"


@@ 301,7 304,8 @@ QSortFilterProxyModel conveniently exposed for QML.")
                  ;; "ctest" "-R" "Qml_Tests" ctest-args)
                  )))))))
    (native-inputs
     (list googletest
     (list git
           googletest
           pkg-config
           python
           qthttpserver


@@ 311,6 315,7 @@ QSortFilterProxyModel conveniently exposed for QML.")
    (inputs
     (list ffmpeg-jami
           glib                         ;for integration with GNOME
           hunspell
           libjami
           libnotify
           libxcb


@@ 326,7 331,8 @@ QSortFilterProxyModel conveniently exposed for QML.")
           qtsvg
           qwindowkit
           tidy-html                    ;used by src/app/htmlparser.h
           vulkan-loader))
           vulkan-loader
           zxing-cpp))
    (home-page "https://jami.net")
    (synopsis "Qt Jami client")
    (description "This package provides the Jami Qt client.  Jami is a secure

A gnu/packages/patches/jami-disable-webengine.patch => gnu/packages/patches/jami-disable-webengine.patch +43 -0
@@ 0,0 1,43 @@
Upstream-status: https://git.jami.net/savoirfairelinux/jami-client-qt/-/issues/2072

--- a/src/app/LayoutManager.qml	2025-06-18 02:28:42.298627257 +0300
+++ b/src/app/LayoutManager.qml	2025-06-18 02:34:07.528403540 +0300
@@ -17,7 +17,6 @@
 
 import QtQuick
 import QtQuick.Controls
-import QtWebEngine
 
 import net.jami.Adapters 1.1
 import net.jami.Enums 1.1
@@ -41,9 +40,6 @@ QtObject {
     // Used to store if a CallStackView component is fullscreened.
     property bool isCallFullscreen: false
 
-    // Used to store if a WebEngineView component is fullscreened.
-    property bool isWebFullscreen: false
-
     // QWK: Provide spacing for widgets that may be occluded by the system buttons.
     property QtObject qwkSystemButtonSpacing: QtObject {
         id: qwkSystemButtonSpacing
@@ -253,9 +249,6 @@ QtObject {
             isCallFullscreen = fullScreenItems
                 .filter(o => o.item.objectName === "callViewLoader")
                 .length
-            isWebFullscreen = fullScreenItems
-                .filter(o => o.item instanceof WebEngineView)
-                .length
         }
 
         // Listen for a hangup combined with a fullscreen call state and
--- a/src/app/mainview/components/CallStackView.qml	2025-06-18 02:36:58.863782993 +0300
+++ b/src/app/mainview/components/CallStackView.qml	2025-06-18 02:38:00.994456741 +0300
@@ -43,7 +43,7 @@ Item {
     Shortcut {
         sequence: "F11"
         context: Qt.ApplicationShortcut
-        enabled: CurrentConversation.hasCall && !layoutManager.isWebFullscreen
+        enabled: CurrentConversation.hasCall
         onActivated: toggleFullScreen();
     }
 

M gnu/packages/patches/jami-qwindowkit.patch => gnu/packages/patches/jami-qwindowkit.patch +1 -1
@@ 13,7 13,7 @@ index 6d2dccfb..8dedff50 100644
-  TARGET qwindowkit
+  TARGET QWindowKit
   URL https://github.com/stdware/qwindowkit.git
   BRANCH 79b1f3110754f9c21af2d7dacbd07b1a9dbaf6ef
   BRANCH 758b00cb6c2d924be3a1ea137ec366dc33a5132d
   PATCHES ${QWINDOWKIT_PATCHES}
   OPTIONS ${QWINDOWKIT_OPTIONS}
 )

M gnu/packages/patches/jami-unbundle-dependencies.patch => gnu/packages/patches/jami-unbundle-dependencies.patch +24 -17
@@ 1,25 1,11 @@
Forwarded here: https://lists.gnu.org/archive/html/jami/2024-01/msg00007.html

From a302dc0a0faf2778331745a1d01bc3071e182d4d Mon Sep 17 00:00:00 2001
From: Maxim Cournoyer <maxim.cournoyer@gmail.com>
Date: Mon, 8 Jan 2024 16:07:05 -0500
Subject: [PATCH] build: Allow using system-provided md4c and tidy libraries.

* CMakeLists.txt <md4c, tidy>: Search for libraries in the system
first, falling back to bundled copies in case they aren't found.

Series-to: jami@gnu.org
Fixes: <https://git.jami.net/savoirfairelinux/jami-client-qt/-/issues/1506>
Change-Id: I637959fefce6a21b0ee73a793acb6c3c42dcdce0
---
 CMakeLists.txt | 36 +++++++++++++++++++++++++-----------
 1 file changed, 25 insertions(+), 11 deletions(-)
Upstream-status: https://git.jami.net/savoirfairelinux/jami-client-qt/-/issues/1506
Upstream-status: https://git.jami.net/savoirfairelinux/jami-client-qt/-/issues/2073

diff --git a/CMakeLists.txt b/CMakeLists.txt
index e802357f..6d2dccfb 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -600,20 +600,34 @@ add_subdirectory(3rdparty/SortFilterProxyModel)
@@ -696,29 +696,50 @@ add_subdirectory(3rdparty/SortFilterProx
 set(SFPM_OBJECTS $<TARGET_OBJECTS:SortFilterProxyModel>)
 
 # md4c


@@ 64,6 50,27 @@ index e802357f..6d2dccfb 100644
+  list(APPEND CLIENT_LIBS tidy-static)
+endif()
 
 # ZXing-cpp configuration
-set(BUILD_EXAMPLES OFF CACHE BOOL "")
-set(BUILD_BLACKBOX_TESTS OFF CACHE BOOL "")
-add_subdirectory(3rdparty/zxing-cpp EXCLUDE_FROM_ALL)
+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 "")
+  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(


D gnu/packages/patches/libjami-libgit2-compatibility.patch => gnu/packages/patches/libjami-libgit2-compatibility.patch +0 -23
@@ 1,23 0,0 @@
Libgit2 1.8.0 went for 'git_commit *const' but 1.8.4 reverted back to
'const git_commit *'.

--- a/src/jamidht/conversationrepository.cpp
+++ b/src/jamidht/conversationrepository.cpp
@@ -783,7 +783,7 @@ ConversationRepository::Impl::createMergeCommit(git_index* index, const std::str
     // Commit
     git_buf to_sign = {};
     // Check if the libgit2 library version is 1.8.0 or higher
-#if( LIBGIT2_VER_MAJOR > 1 ) || ( LIBGIT2_VER_MAJOR == 1 && LIBGIT2_VER_MINOR >= 8 )
+#if( LIBGIT2_VER_MAJOR > 1 ) || ( LIBGIT2_VER_MAJOR == 1 && LIBGIT2_VER_MINOR >= 8 && LIBGIT2_VER_REVISION <= 3)
     // For libgit2 version 1.8.0 and above
     git_commit* const parents_ptr[2] {parents[0].get(), parents[1].get()};
 #else
@@ -1870,7 +1870,7 @@ ConversationRepository::Impl::commit(const std::string& msg, bool verifyDevice)
 
     git_buf to_sign = {};
     // Check if the libgit2 library version is 1.8.0 or higher
-#if( LIBGIT2_VER_MAJOR > 1 ) || ( LIBGIT2_VER_MAJOR == 1 && LIBGIT2_VER_MINOR >= 8 )
+#if( LIBGIT2_VER_MAJOR > 1 ) || ( LIBGIT2_VER_MAJOR == 1 && LIBGIT2_VER_MINOR >= 8 && LIBGIT2_VER_REVISION <= 3)
     // For libgit2 version 1.8.0 and above
     git_commit* const head_ref[1] = {head_commit.get()};
 #else