andreas pushed a commit to branch qt-team
in repository guix.

commit 5290173535c8772cc1f47e4dac11535d9ed950e1
Author: 宋文武 <iyzs...@member.fsf.org>
AuthorDate: Tue Feb 4 14:46:01 2025 +0800

    gnu: qtbase: Update to 6.8.2.
    
    * gnu/packages/patches/qtbase-find-tools-in-PATH.patch: Remove patch.
    * gnu/local.mk (dist_patch_DATA): Remove it.
    * gnu/packages/patches/qtbase-qmake-use-libname.patch: Adjust for 6.8.2.
    * gnu/packages/qt.scm (qtbase): Update to 6.8.2.
    [source]: Remove unused 'qtbase-find-tools-in-PATH.patch', instead we can 
set
    QT_OPTIONAL_TOOLS_PATH for cmake.
    [native-inputs]: Add ninja.
    [inputs]: Delete libxkbcommon-1.5.
    [propagated-inputs]: Add libxkbcommon and vulkan-headers.
    [arguments] <configure-flags>: Add "-GNinja".
    <phases>: Replace build and instal phases for Ninja.
    Update do-not-capture-python phase.  Skip failing tests.
    Fix QT_ADDITIONAL_PACKAGES_PREFIX_PATH, which needs to be semicolon 
separated.
    
    Change-Id: Ifa3464cfc025638affc73eca8c86f5123ba6064e
---
 gnu/local.mk                                       |  1 -
 .../patches/qtbase-find-tools-in-PATH.patch        | 49 ----------------------
 .../patches/qtbase-qmake-use-libname.patch         | 25 ++++-------
 gnu/packages/qt.scm                                | 47 +++++++++++++++++----
 4 files changed, 47 insertions(+), 75 deletions(-)

diff --git a/gnu/local.mk b/gnu/local.mk
index 8ff2af1474..494c3ad648 100644
--- a/gnu/local.mk
+++ b/gnu/local.mk
@@ -2151,7 +2151,6 @@ dist_patch_DATA =                                         
\
   %D%/packages/patches/qemu-fix-agent-paths.patch              \
   %D%/packages/patches/qrcodegen-cpp-cmake.patch               \
   %D%/packages/patches/qtbase-absolute-runpath.patch           \
-  %D%/packages/patches/qtbase-find-tools-in-PATH.patch         \
   %D%/packages/patches/qtbase-qmake-fix-includedir.patch       \
   %D%/packages/patches/qtbase-qmlimportscanner-qml-import-path.patch   \
   %D%/packages/patches/qtbase-moc-ignore-gcc-macro.patch       \
diff --git a/gnu/packages/patches/qtbase-find-tools-in-PATH.patch 
b/gnu/packages/patches/qtbase-find-tools-in-PATH.patch
deleted file mode 100644
index d5e38b09be..0000000000
--- a/gnu/packages/patches/qtbase-find-tools-in-PATH.patch
+++ /dev/null
@@ -1,49 +0,0 @@
-Patch retrieved from NixOS
-
-https://github.com/NixOS/nixpkgs/blob/93ecdaa1f34354c9476062dc4fe323b442c087d5/pkgs/development/libraries/qt-6/patches/0006-qtbase-find-tools-in-PATH.patch
-
-From a8b9fae710a2bd5e743f5e16364eaa8c38dbd784 Mon Sep 17 00:00:00 2001
-From: rewine <luhon...@deepin.org>
-Date: Wed, 29 Mar 2023 11:51:33 +0800
-Subject: [PATCH 06/11] qtbase-find-tools-in-PATH
-
-1. find qt's tools in `QTTOOLSPATH` env
-   qt assumes that all components use the same install prefix
-   we can't get the real prefix for qttools when build qtbase
-   we will add /libexec to `QTTOOLSPATH` in qtToolsHook
-   find_path will also search in 'PATH' by default
-   see `CMAKE_FIND_USE_SYSTEM_ENVIRONMENT_PATH`
-
-2. disable tool_dependencies_enabled
-   We can guarantee the build order of qt components in nixpkgs
-   tools in qttools always build before qtdoc
-   qdoc_bin is not a build target now, since we find it in `QTTOOLSPATH`
----
- cmake/QtDocsHelpers.cmake | 11 ++++++++---
- 1 file changed, 8 insertions(+), 3 deletions(-)
-
-diff --git a/cmake/QtDocsHelpers.cmake b/cmake/QtDocsHelpers.cmake
-index 48ed5a324bf..91d8d41fb1f 100644
---- a/cmake/QtDocsHelpers.cmake
-+++ b/cmake/QtDocsHelpers.cmake
-@@ -47,9 +47,14 @@ function(qt_internal_add_docs)
-         set(doc_tools_libexec 
"${QT_BUILD_INTERNALS_RELOCATABLE_INSTALL_PREFIX}/${INSTALL_LIBEXECDIR}")
-     endif()
- 
--    set(qdoc_bin "${doc_tools_bin}/qdoc${CMAKE_EXECUTABLE_SUFFIX}")
--    set(qtattributionsscanner_bin 
"${doc_tools_libexec}/qtattributionsscanner${CMAKE_EXECUTABLE_SUFFIX}")
--    set(qhelpgenerator_bin 
"${doc_tools_libexec}/qhelpgenerator${CMAKE_EXECUTABLE_SUFFIX}")
-+    set(tool_dependencies_enabled FALSE)
-+
-+    find_path(qdoc_path name qdoc PATHS ENV QTTOOLSPATH)
-+    find_path(qtattributionsscanner_path name qtattributionsscanner PATHS ENV 
QTTOOLSPATH)
-+    find_path(qhelpgenerator_path name qhelpgenerator PATHS ENV QTTOOLSPATH)
-+    set(qdoc_bin "${qdoc_path}/qdoc${CMAKE_EXECUTABLE_SUFFIX}")
-+    set(qtattributionsscanner_bin 
"${qtattributionsscanner_path}/qtattributionsscanner${CMAKE_EXECUTABLE_SUFFIX}")
-+    set(qhelpgenerator_bin 
"${qhelpgenerator_path}/qhelpgenerator${CMAKE_EXECUTABLE_SUFFIX}")
- 
-     get_target_property(target_type ${target} TYPE)
-     if (NOT target_type STREQUAL "INTERFACE_LIBRARY")
--- 
-2.42.0
-
diff --git a/gnu/packages/patches/qtbase-qmake-use-libname.patch 
b/gnu/packages/patches/qtbase-qmake-use-libname.patch
index 0bc2094d86..385c688a65 100644
--- a/gnu/packages/patches/qtbase-qmake-use-libname.patch
+++ b/gnu/packages/patches/qtbase-qmake-use-libname.patch
@@ -12,15 +12,11 @@ and then used in linker flags. However as the libraries can 
be provided
 by qt modules other than the one currently being built, the ebedded
 paths can be incorrect.
 ---
- cmake/QtFinishPrlFile.cmake      | 7 ++++---
- cmake/QtGenerateLibHelpers.cmake | 3 ---
- 2 files changed, 4 insertions(+), 6 deletions(-)
-
 diff --git a/cmake/QtFinishPrlFile.cmake b/cmake/QtFinishPrlFile.cmake
 index 32169e418c..4e754af367 100644
 --- a/cmake/QtFinishPrlFile.cmake
 +++ b/cmake/QtFinishPrlFile.cmake
-@@ -61,9 +61,10 @@ foreach(line ${lines})
+@@ -69,9 +69,10 @@ foreach(line ${lines})
                          endif()
                          list(APPEND adjusted_libs "-framework" 
"${CMAKE_MATCH_1}")
                      else()
@@ -38,16 +34,13 @@ diff --git a/cmake/QtGenerateLibHelpers.cmake 
b/cmake/QtGenerateLibHelpers.cmake
 index e3f4bbf881..f8bd26acc7 100644
 --- a/cmake/QtGenerateLibHelpers.cmake
 +++ b/cmake/QtGenerateLibHelpers.cmake
-@@ -70,9 +70,6 @@ function(qt_transform_absolute_library_paths_to_link_flags 
out_var library_path_
-             string(TOLOWER "${dir}" dir_lower)
-             # If library_path isn't in default link directories, we should 
add it to link flags.
-             list(FIND IMPLICIT_LINK_DIRECTORIES_LOWER "${dir_lower}" index)
--            if(${index} EQUAL -1)
--                list(APPEND out_list "-L\"${dir}\"")
--            endif()
+@@ -82,9 +82,6 @@ function(qt_transform_absolute_library_paths_to_link_flags 
out_var library_path_
+                 # If library_path isn't in default link directories, we 
should add it to link flags.
+                 # But we shouldn't add it duplicately.
+                 list(FIND IMPLICIT_LINK_DIRECTORIES_LOWER "${dir_lower}" 
index)
+-                if(index EQUAL -1 AND NOT "-L\"${dir}\"" IN_LIST out_list)
+-                    list(APPEND out_list "-L\"${dir}\"")
+-                endif()
+             endif()
              list(APPEND out_list "${lib_name_with_link_flag}")
          else()
-             list(APPEND out_list "${library_path}")
--- 
-2.39.2
-
diff --git a/gnu/packages/qt.scm b/gnu/packages/qt.scm
index 149bfee4b6..e8e5a9d7b9 100644
--- a/gnu/packages/qt.scm
+++ b/gnu/packages/qt.scm
@@ -1,6 +1,6 @@
 ;;; GNU Guix --- Functional package management for GNU
 ;;; Copyright © 2013, 2014, 2015, 2023 Andreas Enge <andr...@enge.fr>
-;;; Copyright © 2015 Sou Bunnbu <iyzs...@gmail.com>
+;;; Copyright © 2015, 2025 宋文武 <iyzs...@envs.net>
 ;;; Copyright © 2015, 2018, 2019, 2020, 2021, 2023 Ludovic Courtès 
<l...@gnu.org>
 ;;; Copyright © 2015-2019, 2024 Efraim Flashner <efr...@flashner.co.il>
 ;;; Copyright © 2016, 2017 Nikita <nik...@n0.is>
@@ -759,13 +759,13 @@ developers using C++ or QML, a CSS & JavaScript like 
language.")
   (package
     (inherit qtbase-5)
     (name "qtbase")
-    (version "6.7.2")
+    (version "6.8.2")
     (source (origin
               (inherit (package-source qtbase-5))
               (uri (qt-url name version))
               (sha256
                (base32
-                "16bmfrjfxjajs6sqg1383ihhfwwf69ihkpnpvsajh5pv21g2mwn5"))
+                "01gy1p8zvxq8771x6iqkrc7s3kzdddgf1i7xj656w7j1dp746801"))
               (modules '((guix build utils)))
               (snippet
                ;; corelib uses bundled harfbuzz, md4, md5, sha3
@@ -779,14 +779,14 @@ developers using C++ or QML, a CSS & JavaScript like 
language.")
                                "qtbase-absolute-runpath.patch"
                                "qtbase-qmake-use-libname.patch"
                                "qtbase-qmlimportscanner-qml-import-path.patch"
-                               "qtbase-find-tools-in-PATH.patch"
                                "qtbase-qmake-fix-includedir.patch"))))
     (build-system cmake-build-system)
     (arguments
      (substitute-keyword-arguments (package-arguments qtbase-5)
        ((#:configure-flags _ ''())
         `(let ((out (assoc-ref %outputs "out")))
-           (list "-DQT_BUILD_TESTS=ON"
+           (list "-GNinja"              ;officially supported
+                 "-DQT_BUILD_TESTS=ON"
                  (string-append "-DINSTALL_ARCHDATADIR=" out "/lib/qt6")
                  (string-append "-DINSTALL_DATADIR=" out "/share/qt6")
                  (string-append "-DINSTALL_DOCDIR=" out "/share/doc/qt6")
@@ -819,6 +819,16 @@ developers using C++ or QML, a CSS & JavaScript like 
language.")
                  "-DBUILD_WITH_PCH=OFF")))
        ((#:phases phases)
         #~(modify-phases #$phases
+            (replace 'build
+              (lambda* (#:key parallel-build? #:allow-other-keys)
+                (apply invoke "cmake" "--build" "."
+                       (if parallel-build?
+                           `("--parallel" ,(number->string
+                                            (parallel-job-count)))
+                           '()))))
+            (replace 'install
+              (lambda _
+                (invoke "cmake" "--install" ".")))
             (add-after 'unpack 'honor-CMAKE_PREFIX_PATH
               (lambda _
                 ;; The configuration files for other Qt packages are searched
@@ -838,8 +848,12 @@ developers using C++ or QML, a CSS & JavaScript like 
language.")
                 ;; 'qmlimportscanner' from qtdeclarative work out of the
                 ;; box.
                 (substitute* "cmake/QtConfig.cmake.in"
-                  (("(set\\(QT_ADDITIONAL_PACKAGES_PREFIX_PATH )\"\"" _ head)
-                   (string-append head "\"$ENV{CMAKE_PREFIX_PATH}\"")))))
+                  (("set\\(QT_ADDITIONAL_HOST_PACKAGES_PREFIX_PATH" below)
+                   (string-append "
+if(QT_ADDITIONAL_PACKAGES_PREFIX_PATH STREQUAL \"\")
+  cmake_path(CONVERT $ENV{CMAKE_PREFIX_PATH} TO_CMAKE_PATH_LIST
+    QT_ADDITIONAL_PACKAGES_PREFIX_PATH)
+endif()\n" below)))))
             (delete 'patch-bin-sh)
             (delete 'patch-xdg-open)
             ;; Some tests fail to build on i686-linux
@@ -878,7 +892,8 @@ tst_qt_cmake_create.cpp"
             (delete 'do-not-capture-python) ;move after patch-source-shebangs
             (add-after 'patch-source-shebangs 'do-not-capture-python
               (lambda _
-                (substitute* '("mkspecs/features/uikit/devices.py"
+                (substitute* '("libexec/qt-android-runner.py"
+                               "mkspecs/features/uikit/devices.py"
                                "util/testrunner/qt-testrunner.py"
                                "util/testrunner/sanitizer-testrunner.py")
                   (((which "python3"))
@@ -1051,6 +1066,14 @@ tst_qt_cmake_create.cpp"
                        ;; "/home", "/etc" or "/root" and fail.
                        "tst_qcompleter"
                        "tst_qfiledialog"
+                       ;; The following tests fail with: "Generation of UI
+                       ;; files were triggered in the second build", but could
+                       ;; pass in `guix shell --container`.
+                       "test_qt_add_ui_1"
+                       "test_qt_add_ui_2"
+                       "test_qt_add_ui_6"
+                       "test_qt_add_ui_8"
+                       "test_qt_add_ui_9"
                        ;; This test is susceptible to the 600 ms timeout used:
                        "tst_qpauseanimation")
                       #$@(cond
@@ -1139,11 +1162,17 @@ tst_qt_cmake_create.cpp"
                  (string-append #$output "/tests"))))))))
     (native-inputs
      (modify-inputs (package-native-inputs qtbase-5)
-       (prepend tzdata-for-tests
+       (prepend ninja                   ;CMake Generator, also used for tests
+                tzdata-for-tests
                 wayland-protocols
                 xvfb-run)))
+    (propagated-inputs
+     (modify-inputs (package-propagated-inputs qtbase-5)
+       ;; Required by Qt6GuiDependencies.cmake.
+       (prepend libxkbcommon vulkan-headers)))
     (inputs
      (modify-inputs (package-inputs qtbase-5)
+       (delete "libxkbcommon")          ;qtbase-5 use libxkbcommon-1.5
        (prepend at-spi2-core
                 bash-minimal
                 coreutils-minimal

Reply via email to