Subject: [bug#56771] [PATCH 33/33] gnu: jami: Update to 20220725.1128.fd5e6c6.

From: Maxim Cournoyer <[email-masked]>
Date: Mon, 25 Jul 2022 19:08:03 -0400

* gnu/packages/jami.scm (jami): Update to 20220725.1128.fd5e6c6.
[configure-flags]: New argument.
[phases]{fix-version-string}: Adjust file name.
{use-desktop-opengl}: Delete obsolete phase.
{patch-source}: New phase.
[native-inputs]: Add googletest and vulkan-headers.  Replace qttools-5 with
qttools.
[inputs]: Add libxkbcommon, qt5compat, qtnetworkauth, qtpositioning and
vulkan-loader.  Remove qtwebengine-5, qtwebchannel-5, qtgraphicaleffects,
qtquickcontrols-5 and qtquickcontrols2-5.  Update qtsvg-5, qtmultimedia-5 and
qtdeclarative-5 to their Qt 6 equivalent.
---
 gnu/packages/jami.scm | 91 +++++++++++++++++++++++++++----------------
 1 file changed, 58 insertions(+), 33 deletions(-)

diff --git a/gnu/packages/jami.scm b/gnu/packages/jami.scm
index 71d5313181..b3539e7d5c 100644
--- a/gnu/packages/jami.scm
+++ b/gnu/packages/jami.scm
@@ -482,43 +482,68 @@ (define-public jami
     (build-system qt-build-system)
     (outputs '("out" "debug"))
     (arguments
-     `(#:tests? #f                      ;no test suite
-       #:phases
-       (modify-phases %standard-phases
-         (add-after 'unpack 'change-directory/maybe
-           (lambda _
-             ;; Allow building from the tarball or a git checkout.
-             (false-if-exception (chdir "client-qt"))))
-         (add-after 'change-directory/maybe 'fix-version-string
-           (lambda _
-             (substitute* "src/version.h"
-               (("VERSION_STRING")
-                "BUILD_DATE")           ;to avoid a redefinition error
-               (("// clang-format on.*" anchor)
-                (string-append "const char VERSION_STRING[] = \""
-                               ,version "\";\n"
-                               anchor)))))
-         (add-after 'change-directory/maybe 'use-desktop-opengl
-           ;; TODO: Remove after next release; this is no longer specified in
-           ;; the source following the update to Qt 6.
-           (lambda _
-             (substitute* "src/main.cpp"
-               (("Qt::AA_UseOpenGLES")
-                "Qt::AA_UseDesktopOpenGL")))))))
+     (list
+      #:qtbase qtbase
+      #:tests? #f                       ;see comment below
+      #:configure-flags
+      ;; The test suite fails to build with:
+      ;; "../../../client-qt/src/app/utils.h:29:10: fatal error: QLabel: No
+      ;; such file or directory".
+      #~(list "-DENABLE_TESTS=OFF"
+              "-DWITH_WEBENGINE=OFF" ;reduce transitive closure size by 450 MiB
+              ;; Use libwrap to link directly to libjami instead of
+              ;; communicating via D-Bus to jamid, the Jami daemon.
+              "-DENABLE_LIBWRAP=ON"
+              (string-append "-DLIBJAMI_XML_INTERFACES_DIR="
+                             #$(this-package-input "libjami")
+                             "/share/dbus-1/interfaces")
+              (string-append "-DLIBJAMI_INCLUDE_DIR="
+                             #$(this-package-input "libjami") "/include/jami"))
+      #:phases
+      #~(modify-phases %standard-phases
+          (add-after 'unpack 'change-directory/maybe
+            (lambda _
+              ;; Allow building from the tarball or a git checkout.
+              (false-if-exception (chdir "client-qt"))))
+          (add-after 'change-directory/maybe 'fix-version-string
+            (lambda _
+              (substitute* "src/app/version.h"
+                (("VERSION_STRING")
+                 "BUILD_DATE")          ;to avoid a redefinition error
+                (("// clang-format on.*" anchor)
+                 (string-append "const char VERSION_STRING[] = \""
+                                #$version "\";\n"
+                                anchor)))))
+          (add-after 'change-directory/maybe 'patch-source
+            (lambda _
+              (substitute* "src/libclient/CMakeLists.txt"
+                ;; Fix submitted upstream (see:
+                ;; https://review.jami.net/c/jami-client-qt/+/21830).
+                (("target_link_libraries\\(\\$\\{LIBCLIENT_NAME} qtwrapper.*" all)
+                 (string-append
+                  all "  target_link_libraries(${LIBCLIENT_NAME} avutil)\n"))))))))
     (native-inputs
-     (list pkg-config python qttools-5 doxygen graphviz))
+     (list googletest
+           pkg-config
+           python
+           qttools
+           doxygen
+           graphviz
+           vulkan-headers))
     (inputs
-     (list libnotify
+     (list ffmpeg-jami
+           libjami
+           libnotify
+           libxkbcommon
            network-manager
            qrencode
-           qtsvg-5
-           qtwebengine-5
-           qtwebchannel-5
-           qtmultimedia-5
-           qtdeclarative-5
-           qtgraphicaleffects
-           qtquickcontrols-5
-           qtquickcontrols2-5))
+           qt5compat
+           qtdeclarative
+           qtmultimedia
+           qtnetworkauth
+           qtpositioning
+           qtsvg
+           vulkan-loader))
     (home-page "https://jami.net")
     (synopsis "Qt Jami client")
     (description "This package provides the Jami Qt client.  Jami is a secure
-- 
2.36.1