From 64e1797e213d69c62b5f33bc6d5fe5ae107209e6 Mon Sep 17 00:00:00 2001 From: Maxim Cournoyer Date: Tue, 26 Mar 2024 16:44:05 -0400 Subject: gnu: jami: Update to 20240325.0. * gnu/packages/jami.scm (libjami): Update to 20240325.0. [make-flags]: Reinstate ut_media_player test. [phases]: Remove obsolete extend-scheduler-test-timeout phase. (jami): Update to 20240325.0. [source]: Remove jami-qml-tests-discovery patch. Add jami-qwindowkit and jami-tests-qtwebengine-ifdef-to-if patches. [configure-flags]: Add -DFETCHCONTENT_TRY_FIND_PACKAGE_MODE=ALWAYS. Replace -DENABLE_TESTS=ON with -DBUILD_TESTING=ON. [phases] : Update comment for QML test suite. [native-inputs]: Add qthttpserver and qtwebsockets. [inputs]: Add qwindowkit. * gnu/packages/patches/jami-qml-tests-discovery.patch: Delete file. * gnu/packages/patches/jami-unbundle-dependencies.patch: Update patch. * gnu/packages/patches/jami-qwindowkit.patch: New file. * gnu/packages/patches/jami-tests-qtwebengine-ifdef-to-if.patch: Likewise. * gnu/local.mk (dist_patch_DATA): Update accordingly. Change-Id: I5d47bdfd2aabab5baff44db8436051a9890cba6d --- gnu/local.mk | 3 +- gnu/packages/jami.scm | 39 ++++++++++------------ .../patches/jami-qml-tests-discovery.patch | 15 --------- gnu/packages/patches/jami-qwindowkit.patch | 37 ++++++++++++++++++++ .../jami-tests-qtwebengine-ifdef-to-if.patch | 26 +++++++++++++++ .../patches/jami-unbundle-dependencies.patch | 6 ++-- 6 files changed, 86 insertions(+), 40 deletions(-) delete mode 100644 gnu/packages/patches/jami-qml-tests-discovery.patch create mode 100644 gnu/packages/patches/jami-qwindowkit.patch create mode 100644 gnu/packages/patches/jami-tests-qtwebengine-ifdef-to-if.patch (limited to 'gnu') diff --git a/gnu/local.mk b/gnu/local.mk index 3a31d6a412..ec5c1282b9 100644 --- a/gnu/local.mk +++ b/gnu/local.mk @@ -1494,8 +1494,9 @@ dist_patch_DATA = \ %D%/packages/patches/itk-snap-alt-glibc-compat.patch \ %D%/packages/patches/jami-disable-integration-tests.patch \ %D%/packages/patches/jami-libjami-headers-search.patch \ - %D%/packages/patches/jami-qml-tests-discovery.patch \ + %D%/packages/patches/jami-qwindowkit.patch \ %D%/packages/patches/jami-skip-tests-requiring-internet.patch \ + %D%/packages/patches/jami-tests-qtwebengine-ifdef-to-if.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 \ diff --git a/gnu/packages/jami.scm b/gnu/packages/jami.scm index bae9ede8e0..81c9a3d3c2 100644 --- a/gnu/packages/jami.scm +++ b/gnu/packages/jami.scm @@ -78,8 +78,8 @@ ;;; When updating Jami, make sure that the patches used for ffmpeg-jami are up ;;; to date with those listed in ;;; . -(define %jami-nightly-version "20240124.3") -(define %jami-daemon-commit "205904ed4dd736b8a0ea6c913ecb91d637b79867") +(define %jami-nightly-version "20240325.0") +(define %jami-daemon-commit "32f39e65483cb22729eb922d72434013b337f2c9") (define-public libjami (package @@ -93,7 +93,7 @@ (file-name (git-file-name name version)) (sha256 (base32 - "0knq84c5f11bgan0076mhi0kpc7l6wwxj41jpssdy0y1lfzgqd8a")) + "0kha2v46l5hmycklhyxrs2qybm640nbrk98z1xvicjxyq6bfszh4")) (patches (search-patches "libjami-ac-config-files.patch" "jami-disable-integration-tests.patch")))) @@ -106,25 +106,13 @@ ;; user scripts too, until more general purpose Scheme bindings are made ;; available (see: test/agent/README.md). #:configure-flags #~(list "--enable-agent" "--enable-debug") - #:make-flags - #~(list - "V=1" ;build verbosely - ;; The 'ut_media_player' is known to fail (see: - ;; https://git.jami.net/savoirfairelinux/jami-daemon/-/issues/935). - "XFAIL_TESTS=ut_media_player") + #:make-flags #~(list"V=1") ;build verbosely #: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 "daemon")))) - (add-after 'change-directory/maybe 'extend-scheduler-test-timeout - (lambda _ - ;; The ut_scheduler unit test may fail on slower machines (see: - ;; https://git.jami.net/savoirfairelinux/jami-daemon/-/issues/939). - (substitute* "test/unitTest/scheduler.cpp" - (("std::chrono::seconds\\(3)") - "std::chrono::seconds(30)")))) (add-after 'install 'delete-static-libraries ;; Remove 100+ MiB of static libraries. "--disable-static" cannot ;; be used as the test suite requires access to private symbols @@ -239,11 +227,12 @@ QSortFilterProxyModel conveniently exposed for QML.") (file-name (git-file-name name version)) (sha256 (base32 - "06q4cdizpix12yzjrnhdwqwybskhc58cissffdnf1zw5pbv0mqag")) + "08lv8azjd47n56i25d9ax248xmidixpsnwh5kc4qjxib7985bdhs")) (patches (search-patches "jami-libjami-headers-search.patch" - "jami-qml-tests-discovery.patch" + "jami-qwindowkit.patch" "jami-skip-tests-requiring-internet.patch" + "jami-tests-qtwebengine-ifdef-to-if.patch" "jami-unbundle-dependencies.patch")))) (build-system qt-build-system) (outputs '("out" "debug")) @@ -252,13 +241,15 @@ QSortFilterProxyModel conveniently exposed for QML.") #:qtbase qtbase #:configure-flags #~(list "-DWITH_DAEMON_SUBMODULE=OFF" - "-DENABLE_TESTS=ON" + "-DBUILD_TESTING=ON" ;; Disable the webengine since it grows the closure size by ;; about 450 MiB and requires more resources. "-DWITH_WEBENGINE=OFF" ;; Use libwrap to link directly to libjami instead of ;; communicating via D-Bus to jamid, the Jami daemon. - "-DENABLE_LIBWRAP=ON") + "-DENABLE_LIBWRAP=ON" + ;; Ensure FetchContent contribs are looked from the system. + "-DFETCHCONTENT_TRY_FIND_PACKAGE_MODE=ALWAYS") #:phases #~(modify-phases %standard-phases (add-after 'unpack 'fix-version-string @@ -292,8 +283,9 @@ QSortFilterProxyModel conveniently exposed for QML.") (display "Running unit tests...\n") (invoke "tests/unit_tests") - ;; XXX: The QML test suite fails, exiting with status code 1 (see: - ;; https://git.jami.net/savoirfairelinux/jami-client-qt/-/issues/883). + ;; The qml_tests suite is not run, as it currently exits with + ;; an unclear status of 1 (see: + ;; https://git.jami.net/savoirfairelinux/jami-client-qt/-/issues/1605). ;; (display "Running functional tests...\n") ;; (invoke "tests/qml_tests") )))))) @@ -301,7 +293,9 @@ QSortFilterProxyModel conveniently exposed for QML.") (list googletest pkg-config python + qthttpserver qttools + qtwebsockets vulkan-headers)) (inputs (list ffmpeg-jami @@ -319,6 +313,7 @@ QSortFilterProxyModel conveniently exposed for QML.") qtnetworkauth qtpositioning qtsvg + qwindowkit tidy-html ;used by src/app/htmlparser.h vulkan-loader)) (home-page "https://jami.net") diff --git a/gnu/packages/patches/jami-qml-tests-discovery.patch b/gnu/packages/patches/jami-qml-tests-discovery.patch deleted file mode 100644 index 11fd69571c..0000000000 --- a/gnu/packages/patches/jami-qml-tests-discovery.patch +++ /dev/null @@ -1,15 +0,0 @@ -Upstream status: https://review.jami.net/c/jami-client-qt/+/25640 - -diff --git a/tests/CMakeLists.txt b/tests/CMakeLists.txt -index d50908cf..587c9d15 100644 ---- a/tests/CMakeLists.txt -+++ b/tests/CMakeLists.txt -@@ -73,6 +73,8 @@ endif() - - string(TOUPPER ${CMAKE_BUILD_TYPE} BUILD_TYPE) - -+set(QUICK_TEST_SOURCE_DIR "${CMAKE_SOURCE_DIR}tests/qml/src") -+ - set(QML_TESTS_SOURCE_FILES - ${CMAKE_SOURCE_DIR}/tests/qml/main.cpp - ${TEST_QML_RESOURCES} diff --git a/gnu/packages/patches/jami-qwindowkit.patch b/gnu/packages/patches/jami-qwindowkit.patch new file mode 100644 index 0000000000..65248a6940 --- /dev/null +++ b/gnu/packages/patches/jami-qwindowkit.patch @@ -0,0 +1,37 @@ +Upstream-status: https://lists.gnu.org/archive/html/jami/2024-03/msg00008.html + +This makes it possible to use the system-provided qwindowkit library. + +diff --git a/CMakeLists.txt b/CMakeLists.txt +index 6d2dccfb..8dedff50 100644 +--- a/CMakeLists.txt ++++ b/CMakeLists.txt +@@ -100,13 +100,13 @@ endif() + + # qwindowkit (frameless window) + add_fetch_content( +- TARGET qwindowkit ++ TARGET QWindowKit + URL https://github.com/stdware/qwindowkit.git + BRANCH 79b1f3110754f9c21af2d7dacbd07b1a9dbaf6ef + PATCHES ${QWINDOWKIT_PATCHES} + OPTIONS ${QWINDOWKIT_OPTIONS} + ) +-list(APPEND CLIENT_INCLUDE_DIRS ${QWindowKit_BINARY_DIR}/include) ++ + list(APPEND CLIENT_LIBS QWindowKit::Quick) + + set(CMAKE_AUTOMOC ON) +diff --git a/tests/CMakeLists.txt b/tests/CMakeLists.txt +index b2730b71..4960899e 100644 +--- a/tests/CMakeLists.txt ++++ b/tests/CMakeLists.txt +@@ -48,7 +48,7 @@ target_include_directories(test_common_obj PRIVATE + ${CMAKE_CURRENT_SOURCE_DIR} + ${CMAKE_SOURCE_DIR}/src) + target_link_directories(test_common_obj PRIVATE ${CLIENT_LINK_DIRS}) +-target_link_libraries(test_common_obj ${QML_TEST_LIBS}) ++target_link_libraries(test_common_obj ${QML_TEST_LIBS} ${CLIENT_LIBS}) + target_compile_definitions(test_common_obj PRIVATE BUILD_TESTING="ON") + + set(COMMON_TESTS_SOURCES diff --git a/gnu/packages/patches/jami-tests-qtwebengine-ifdef-to-if.patch b/gnu/packages/patches/jami-tests-qtwebengine-ifdef-to-if.patch new file mode 100644 index 0000000000..63bfde6af0 --- /dev/null +++ b/gnu/packages/patches/jami-tests-qtwebengine-ifdef-to-if.patch @@ -0,0 +1,26 @@ +Upstream-status: https://lists.gnu.org/archive/html/jami/2024-03/msg00005.html + +Fix macro value checking. + +diff --git a/tests/qml/main.cpp b/tests/qml/main.cpp +index 2fbecebe..8cb3de69 100644 +--- a/tests/qml/main.cpp ++++ b/tests/qml/main.cpp +@@ -35,7 +35,7 @@ + #include + #include + +-#ifdef WITH_WEBENGINE ++#if WITH_WEBENGINE + #include + #include + #endif +@@ -192,7 +192,7 @@ main(int argc, char** argv) + // Allow the user to enable fatal warnings for certain tests. + Utils::remove_argument(argv, argc, "--failonwarn", [&]() { qputenv("QT_FATAL_WARNINGS", "1"); }); + +-#ifdef WITH_WEBENGINE ++#if WITH_WEBENGINE + QtWebEngineQuick::initialize(); + #endif + QTEST_SET_MAIN_SOURCE_PATH diff --git a/gnu/packages/patches/jami-unbundle-dependencies.patch b/gnu/packages/patches/jami-unbundle-dependencies.patch index dab82b26cb..2732087daf 100644 --- a/gnu/packages/patches/jami-unbundle-dependencies.patch +++ b/gnu/packages/patches/jami-unbundle-dependencies.patch @@ -16,13 +16,14 @@ Change-Id: I637959fefce6a21b0ee73a793acb6c3c42dcdce0 1 file changed, 25 insertions(+), 11 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt -index 38e7a4e2..3f1bd599 100644 +index e802357f..6d2dccfb 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt -@@ -545,19 +545,33 @@ add_subdirectory(3rdparty/SortFilterProxyModel) +@@ -600,20 +600,34 @@ add_subdirectory(3rdparty/SortFilterProxyModel) set(SFPM_OBJECTS $) # md4c +-set(BUILD_MD2HTML_EXECUTABLE OFF CACHE BOOL "Don't build md2html executable" FORCE) -set(BUILD_SHARED_LIBS OFF CACHE BOOL "Don't build shared md4c library" FORCE) -add_subdirectory(3rdparty/md4c EXCLUDE_FROM_ALL) -list(APPEND CLIENT_LINK_DIRS ${MD4C_BINARY_DIR}/src) @@ -34,6 +35,7 @@ index 38e7a4e2..3f1bd599 100644 + list(APPEND CLIENT_LIBS md4c::md4c-html) +else() + message("Using bundled md4c-html library") ++ set(BUILD_MD2HTML_EXECUTABLE OFF CACHE BOOL "Don't build md2html executable" FORCE) + set(BUILD_SHARED_LIBS OFF CACHE BOOL "Don't build shared md4c library" FORCE) + add_subdirectory(3rdparty/md4c EXCLUDE_FROM_ALL) + list(APPEND CLIENT_LINK_DIRS ${MD4C_BINARY_DIR}/src) -- cgit v1.2.3