Merge branch 'master' into staging
authorMarius Bakke <marius@gnu.org>
Thu, 11 Aug 2022 20:15:22 +0000 (22:15 +0200)
committerMarius Bakke <marius@gnu.org>
Thu, 11 Aug 2022 20:15:22 +0000 (22:15 +0200)
15 files changed:
1  2 
gnu/local.mk
gnu/packages/crates-io.scm
gnu/packages/databases.scm
gnu/packages/freedesktop.scm
gnu/packages/gnuzilla.scm
gnu/packages/image.scm
gnu/packages/libunwind.scm
gnu/packages/linux.scm
gnu/packages/maths.scm
gnu/packages/python-web.scm
gnu/packages/python-xyz.scm
gnu/packages/qt.scm
gnu/packages/ruby.scm
gnu/packages/tex.scm
gnu/packages/video.scm

diff --cc gnu/local.mk
@@@ -1078,8 -1090,10 +1090,9 @@@ dist_patch_DATA =                                              
    %D%/packages/patches/fp16-system-libraries.patch            \
    %D%/packages/patches/fpc-reproducibility.patch              \
    %D%/packages/patches/freedink-engine-fix-sdl-hints.patch    \
 -  %D%/packages/patches/freeglut-gcc-compat.patch              \
    %D%/packages/patches/freeimage-unbundle.patch               \
-   %D%/packages/patches/fuse-overlapping-headers.patch                         \
+   %D%/packages/patches/fuse-glibc-2.34.patch                  \
+   %D%/packages/patches/fuse-overlapping-headers.patch         \
    %D%/packages/patches/fxdiv-system-libraries.patch           \
    %D%/packages/patches/gajim-honour-GAJIM_PLUGIN_PATH.patch   \
    %D%/packages/patches/ganeti-disable-version-symlinks.patch  \
    %D%/packages/patches/mono-mdoc-timestamping.patch           \
    %D%/packages/patches/mosaicatcher-unbundle-htslib.patch     \
    %D%/packages/patches/mrrescue-support-love-11.patch         \
 +  %D%/packages/patches/mrustc-riscv64-support.patch           \
    %D%/packages/patches/mtools-mformat-uninitialized.patch     \
-   %D%/packages/patches/mumps-build-parallelism.patch          \
-   %D%/packages/patches/mumps-shared-libseq.patch              \
-   %D%/packages/patches/mumps-shared-mumps.patch                       \
-   %D%/packages/patches/mumps-shared-pord.patch                        \
    %D%/packages/patches/mupen64plus-ui-console-notice.patch    \
    %D%/packages/patches/mupen64plus-video-z64-glew-correct-path.patch    \
    %D%/packages/patches/musl-cross-locale.patch                        \
    %D%/packages/patches/rocm-comgr-3.1.0-dependencies.patch \
    %D%/packages/patches/rocm-opencl-runtime-4.3-noclinfo.patch \
    %D%/packages/patches/rocm-opencl-runtime-4.3-noopencl.patch \
 +  %D%/packages/patches/ruby-hydra-minimal-no-byebug.patch             \
+   %D%/packages/patches/ruby-anystyle-data-immutable-install.patch     \
+   %D%/packages/patches/ruby-anystyle-fix-dictionary-populate.patch    \
+   %D%/packages/patches/ruby-latex-decode-fix-test.patch               \
    %D%/packages/patches/ruby-mustache-1.1.1-fix-race-condition-tests.patch \
    %D%/packages/patches/ruby-sanitize-system-libxml.patch      \
 -  %D%/packages/patches/rustc-1.39.0-src.patch                 \
 +  %D%/packages/patches/rustc-1.54.0-src.patch                 \
    %D%/packages/patches/rust-adblock-ignore-live-tests.patch           \
    %D%/packages/patches/i3status-rust-enable-unstable-features.patch   \
    %D%/packages/patches/rust-ndarray-remove-blas-src-dep.patch \
Simple merge
Simple merge
@@@ -1934,8 -1970,13 +1974,13 @@@ applications define in those files."
                             "File-MimeInfo-" version ".tar.gz"))
         (sha256
          (base32
 -         "1sh8r6vczyz08zm8vfsjmkg6a165wch54akjdrd1vbifcmwjg5pi"))))
 +         "1i5iw6ri0w9clwpqf40xmsh4isc8xvx2lyf2r5g34886i6rsdgpn"))))
      (build-system perl-build-system)
+     (inputs
+      ;; TODO(staging): Make unconditional.
+      (if (%current-target-system)
+          (list bash-minimal) ; for wrap-program
+          '()))
      ;; If the tests are fixed, add perl-test-pod, perl-test-pod-coverage, and
      ;; perl-test-tiny as native-inputs.
      (propagated-inputs
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
@@@ -711,16 -816,46 +819,46 @@@ developers using C++ or QML, a CSS & Ja
              (variable "XDG_CONFIG_DIRS")
              (files '("etc/xdg")))))))
  
- (define-public qtsvg
-   (package (inherit qtbase-5)
+ (define-public qt5compat
+   (package
+     (name "qt5compat")
+     (version "6.3.1")
+     (source (origin
+               (method url-fetch)
+               (uri (qt5-urls name version))
+               (sha256
+                (base32
+                 "1zbcaswpl79ixcxzj85qzjq73962s4c7316pibwfrskqswmwcgm4"))))
+     (build-system cmake-build-system)
+     (arguments
+      (list
+       #:configure-flags #~(list "-DQT_BUILD_TESTS=ON")
+       #:phases #~(modify-phases %standard-phases
+                    (add-after 'install 'delete-installed-tests
+                      (lambda _
+                        (delete-file-recursively
+                         (string-append #$output "/tests")))))))
+     (native-inputs (list perl))
+     (inputs (list icu4c libxkbcommon qtbase qtdeclarative qtshadertools))
+     (home-page (package-home-page qtbase))
+     (synopsis "Legacy Qt 5 APIs ported to Qt 6")
+     (description "The @code{qt5compat} package includes application
+ programming interfaces (APIs) from Qt 5 that were ported to Qt 6, to ease
+ migration.  It provides for example the @code{GraphicalEffects} module that
+ came with the @{qtgraphicaleffects} Qt 5 package.")
+     (license (list license:gpl2+ license:lgpl3+)))) ;dual licensed
+ (define-public qtsvg-5
+   (package
+     (inherit qtbase-5)
      (name "qtsvg")
 -    (version "5.15.2")
 +    (version "5.15.5")
      (source (origin
-              (method url-fetch)
-              (uri (qt5-urls name version))
-              (sha256
-               (base32
-                "0cdhmhxngv4y7kl5vbcii4l4anbz0hj7dvhlddy1agyl19j9xky4"))))
+               (method url-fetch)
+               (uri (qt5-urls name version))
+               (sha256
+                (base32
 -                "0pjqrdmd1991x9h4rl8sf81pkd89hfd5h1a2gp3fjw96pk0w5hwb"))))
++                "0cdhmhxngv4y7kl5vbcii4l4anbz0hj7dvhlddy1agyl19j9xky4"))))
      (propagated-inputs `())
      (native-inputs (list perl))
      (inputs
@@@ -779,10 -916,41 +917,41 @@@ HostData=lib/qt
      (description "The QtSvg module provides classes for displaying the
   contents of SVG files.")))
  
+ (define-public qtsvg
+   (package
+     (name "qtsvg")
+     (version "6.3.1")
+     (source (origin
+               (method url-fetch)
+               (uri (qt5-urls name version))
+               (sha256
+                (base32
+                 "1xvxz2jfpr1al85rhwss7ji5vkxa812d0b888hry5f7pwqcg86bv"))))
+     (build-system cmake-build-system)
+     (arguments
+      (list
+       #:configure-flags #~(list "-DQT_BUILD_TESTS=ON")
+       #:phases
+       #~(modify-phases %standard-phases
+           (add-before 'check 'set-display
+             (lambda _
+               ;; Make Qt render "offscreen", required for tests.
+               (setenv "QT_QPA_PLATFORM" "offscreen")))
+           (add-after 'install 'delete-installed-tests
+             (lambda _
+               (delete-file-recursively (string-append #$output "/tests")))))))
+     (native-inputs (list perl))
+     (inputs (list libxkbcommon mesa qtbase zlib))
+     (synopsis "Qt module for displaying SVGs")
+     (description "The QtSvg module provides classes for displaying the
+  contents of SVG files.")
+     (home-page (package-home-page qtbase))
+     (license (package-license qtbase))))
  (define-public qtimageformats
-   (package (inherit qtsvg)
+   (package (inherit qtsvg-5)
      (name "qtimageformats")
 -    (version "5.15.2")
 +    (version "5.15.5")
      (source (origin
               (method url-fetch)
               (uri (qt5-urls name version))
  support for MNG, TGA, TIFF and WBMP image formats.")))
  
  (define-public qtx11extras
-   (package (inherit qtsvg)
+   (package (inherit qtsvg-5)
      (name "qtx11extras")
 -    (version "5.15.2")
 +    (version "5.15.5")
      (source (origin
               (method url-fetch)
               (uri (qt5-urls name version))
               (sha256
                (base32
 -               "0gkfzj195v9flwljnqpdz3a532618yn4h2577nlsai56x4p7053h"))))
 +               "0wxsrnnkkn68myy211rfz98brs7j3qmx3hmy097vh5avgsmw11bn"))))
      (arguments
-      (substitute-keyword-arguments (package-arguments qtsvg)
+      (substitute-keyword-arguments (package-arguments qtsvg-5)
         ((#:tests? _ #f) #f))) ; TODO: Enable the tests
      (native-inputs (list perl))
      (inputs
  from within Qt 5.")))
  
  (define-public qtxmlpatterns
-   (package (inherit qtsvg)
+   (package (inherit qtsvg-5)
      (name "qtxmlpatterns")
 -    (version "5.15.2")
 +    (version "5.15.5")
      (source (origin
               (method url-fetch)
               (uri (qt5-urls name version))
               (sha256
                (base32
 -               "1ypj5jpa31rlx8yfw3y9jia212lfnxvnqkvygs6ihjf3lxi23skn"))))
 +               "065vj1gk5i4cg0f9spksyb9ps4px0vssx262y77aakvw408vfmq5"))))
      (arguments
-      (substitute-keyword-arguments (package-arguments qtsvg)
+      (substitute-keyword-arguments (package-arguments qtsvg-5)
 -       ((#:tests? _ #f) #f) ; TODO: Enable the tests
         ((#:phases phases)
          `(modify-phases ,phases
             (add-after 'unpack 'disable-network-tests
               (lambda _ (substitute* "tests/auto/auto.pro"
                           (("qxmlquery") "# qxmlquery")
 -                         (("xmlpatterns ") "# xmlpatterns"))
 -               #t))))))
 +                         (("xmlpatterns ") "# xmlpatterns"))))
 +           (add-after 'unpack 'skip-qquickxmllistmodel-test
 +             (lambda _ (substitute* "tests/auto/auto.pro"
 +                         ((".*qquickxmllistmodel.*") ""))))))))
-     (native-inputs (list perl qtdeclarative))
+     (native-inputs (list perl qtdeclarative-5))
      (inputs (list qtbase-5))
      (synopsis "Qt XML patterns module")
      (description "The QtXmlPatterns module is a XQuery and XPath engine for
  XML and custom data models.  It contains programs such as xmlpatterns and
  xmlpatternsvalidator.")))
  
- (define-public qtdeclarative
-   (package (inherit qtsvg)
+ (define-public qtdeclarative-5
+   (package (inherit qtsvg-5)
      (name "qtdeclarative")
 -    (version "5.15.2")
 +    (version "5.15.5")
      (source (origin
               (method url-fetch)
               (uri (qt5-urls name version))
               (sha256
                (base32
 -               "0lancdn7y0lrlmyn5cbdm0izd5yprvd5n77nhkb7a3wl2sbx0066"))))
 +               "0ji5131g7h2mrgxw1wxc5mcvmsn3fbw64j28gzpa25gv3vcnkhaw"))))
      (arguments
-      (substitute-keyword-arguments (package-arguments qtsvg)
+      (substitute-keyword-arguments (package-arguments qtsvg-5)
         ((#:tests? _ #f) #f)             ;TODO: Enable the tests
         ((#:phases phases)
          `(modify-phases ,phases
               (lambda* (#:key outputs #:allow-other-keys)
                 (let ((out (assoc-ref outputs "out")))
                   ;; The Qt5Core install prefix is set to qtbase, but qmlcachegen
-                  ;; is provided by qtdeclarative.
+                  ;; is provided by qtdeclarative-5.
                   (substitute*
                       "lib/cmake/Qt5QuickCompiler/Qt5QuickCompilerConfig.cmake"
 -                   (("\\$\\{_qt5Core_install_prefix\\}") out)))
 -               #t))))))
 +                   (("\\$\\{_qt5Core_install_prefix\\}") out)))))))))
      (native-inputs
       (list perl
             pkg-config
@@@ -893,39 -1072,167 +1062,167 @@@ language and engine infrastructure, an
  developers to extend the QML language with custom types and integrate QML code
  with JavaScript and C++.")))
  
+ (define-public qtdeclarative
+   (package
+     (name "qtdeclarative")
+     (version "6.3.1")
+     ;; TODO: Package 'masm' and unbundle from sources.
+     (source (origin
+               (method url-fetch)
+               (uri (qt5-urls name version))
+               (sha256
+                (base32
+                 "1s268fha3650dn1lqxf8jfa07wxpw09f6p7rjyiwq3w24d0nkrq3"))))
+     (build-system cmake-build-system)
+     (arguments
+      (list
+       #:configure-flags #~(list "-GNinja" ;about twice as fast!
+                                 "-DQT_BUILD_TESTS=ON")
+       #:phases
+       #~(modify-phases %standard-phases
+           (add-after 'unpack 'honor-cmake-install-rpath
+             ;; The build system goes out of its way to compute a runpath it
+             ;; thinks makes more sense, and fails.  Revert to the default
+             ;; behavior, which is to honor CMAKE_INSTALL_RPATH.
+             (lambda _
+               (substitute* "src/qml/Qt6QmlMacros.cmake"
+                 (("set_target_properties.*PROPERTIES.*INSTALL_RPATH.*" all)
+                  (string-append "# " all)))))
+           (add-after 'unpack 'patch-qlibraryinfo-paths
+             (lambda _
+               ;; The QLibraryInfo paths are hard-coded to point to the qtbase
+               ;; installation, but all the tools used in the test suite come
+               ;; from this package.
+               (substitute* (find-files "tests" "\\.cpp$")
+                 (("QLibraryInfo::path\\(QLibraryInfo::BinariesPath)")
+                  (string-append "QStringLiteral(\"" #$output "/bin\")"))
+                 (("QLibraryInfo::path\\(QLibraryInfo::LibraryExecutablesPath)")
+                  (string-append "QStringLiteral(\"" #$output
+                                 "/lib/qt6/libexec\")"))
+                 (("QLibraryInfo::path\\(QLibraryInfo::QmlImportsPath)")
+                  (string-append "QStringLiteral(\"" #$output
+                                 "/lib/qt6/qml\")")))))
+           (replace 'build
+             (lambda* (#:key parallel-build? #:allow-other-keys)
+               (apply invoke "cmake" "--build" "."
+                      (if parallel-build?
+                          `("--parallel" ,(number->string (parallel-job-count)))
+                          '()))))
+           (delete 'check)               ;move after the install phase
+           (replace 'install
+             (lambda _
+               (invoke "cmake" "--install" ".")))
+           (add-after 'install 'check
+             (lambda* (#:key tests? parallel-tests? #:allow-other-keys)
+               (when tests?
+                 ;; The tests expect to find the modules provided by this
+                 ;; package; extend the environment variables needed to do so.
+                                         ;(setenv "CMAKE_PREFIX_PATH" #$output)
+                 (setenv "QML2_IMPORT_PATH"
+                         (string-append #$output "/lib/qt6/qml"))
+                 (setenv "QT_PLUGIN_PATH"
+                         (string-append #$output "/lib/qt6/plugins:"
+                                        (getenv "QT_PLUGIN_PATH")))
+                 (setenv "QT_QPA_PLATFORM" "offscreen")
+                 ;; Skip tests known to fail on GNU/Linux, in a CI context or
+                 ;; due to bitness (see: https://code.qt.io/cgit/qt/qtbase.git
+                 ;; /tree/src/testlib/qtestblacklist.cpp).
+                 (setenv "QTEST_ENVIRONMENT" "linux ci 32bit")
+                 (setenv "HOME" "/tmp")  ;a few tests require a writable HOME
+                 (invoke
+                  "ctest" "--output-on-failure"
+                  "-j" (if parallel-tests?
+                           (number->string (parallel-job-count))
+                           "1")
+                  "-E"                   ;exclude some tests by regex
+                  (string-append
+                   "("
+                   (string-join
+                    (list
+                     ;; This test is marked as flaky upstream (see:
+                     ;; https://bugreports.qt.io/browse/QTBUG-101488).
+                     "tst_qquickfiledialogimpl"
+                     ;; These tests all fail because 'test_overlappingHandles'
+                     ;; (see: https://bugreports.qt.io/browse/QTBUG-95750).
+                     "tst_basic"
+                     "tst_fusion"
+                     "tst_imagine"
+                     "tst_material"
+                     "tst_universal"
+                     ;; Fails due to using the wrong lib/qt6/qml prefix:
+                     ;; "Warning: Failed to find the following builtins:
+                     ;; builtins.qmltypes, jsroot.qmltypes (so will use
+                     ;; qrc). Import paths used:
+                     ;; /gnu/store/...-qtbase-6.3.1/lib/qt6/qml"
+                     "tst_qmltc_qprocess"
+                     ;; These test fail when running qmlimportscanner; perhaps
+                     ;; an extra CMAKE_PREFIX_PATH location is missing to
+                     ;; correctly locate the imports.
+                     "empty_qmldir"
+                     "qtquickcompiler"
+                     "cmake_tooling_imports"
+                     ;; This test seems to hangs for a long time, possibly
+                     ;; waiting for a killed process, which becomes a zombie in
+                     ;; the build container (perhaps solved after
+                     ;; fixing/applying #30948).
+                     "tst_qqmlpreview") "|")
+                   ")")))))
+           (add-after 'install 'delete-installed-tests
+             (lambda _
+               (delete-file-recursively (string-append #$output "/tests")))))))
+     (native-inputs
+      (list ninja
+            perl
+            pkg-config
+            python
+            qtshadertools
+            vulkan-headers))
+     (inputs
+      (list libxkbcommon
+            mesa
+            qtbase))
+     (home-page (package-home-page qtbase))
+     (synopsis "Qt QML module (Quick 2)")
+     (description "The Qt QML module provides a framework for developing
+ applications and libraries with the QML language.  It defines and implements
+ the language and engine infrastructure, and provides an API to enable
+ application developers to extend the QML language with custom types and
+ integrate QML code with JavaScript and C++.")
+     (license (package-license qtbase))))
  (define-public qtconnectivity
-   (package (inherit qtsvg)
+   (package (inherit qtsvg-5)
      (name "qtconnectivity")
 -    (version "5.15.2")
 +    (version "5.15.5")
      (source (origin
               (method url-fetch)
               (uri (qt5-urls name version))
               (sha256
                (base32
 -               "185zci61ip1wpjrygcw2m6v55lvninc0b8y2p3jh6qgpf5w35003"))))
 +               "0b2dnxw1rjbp1srhgns148cwl99f50mx29588dal3avv0f73s597"))))
      (native-inputs
-      (list perl pkg-config qtdeclarative))
+      (list perl pkg-config qtdeclarative-5))
      (inputs
       (list bluez qtbase-5))
      (synopsis "Qt Connectivity module")
      (description "The Qt Connectivity modules provides modules for interacting
  with Bluetooth and NFC.")))
  
- (define-public qtwebsockets
-   (package (inherit qtsvg)
+ (define-public qtwebsockets-5
+   (package (inherit qtsvg-5)
      (name "qtwebsockets")
 -    (version "5.15.2")
 +    (version "5.15.5")
      (source (origin
               (method url-fetch)
               (uri (qt5-urls name version))
               (sha256
                (base32
 -               "0gr399fn5n8j3m9d3vv01vcbr1cb7pw043j04cnnxzrlvn2jvd50"))))
 +               "0f120rfqnmlffjhrm5jbpipk1qsbzp1a2v3q8gz94hz6n9dqpav6"))))
      (arguments
-      (substitute-keyword-arguments (package-arguments qtsvg)
+      (substitute-keyword-arguments (package-arguments qtsvg-5)
         ((#:tests? _ #f) #f))) ; TODO: Enable the tests
      (native-inputs
-      (list perl qtdeclarative))
+      (list perl qtdeclarative-5))
      (inputs (list qtbase-5))
      (synopsis "Qt Web Sockets module")
      (description "WebSocket is a web-based protocol designed to enable two-way
@@@ -934,38 -1241,79 +1231,78 @@@ WebSockets module provides C++ and QML 
  to act as a server that can process WebSocket requests, or a client that can
  consume data received from the server, or both.")))
  
+ (define-public qtwebsockets
+   (package
+     (name "qtwebsockets")
+     (version "6.3.1")
+     (source (origin
+               (method url-fetch)
+               (uri (qt5-urls name version))
+               (sha256
+                (base32
+                 "06hj0pkdzjicmbiinjp1dk1ziz8cb3fgcwy7a0dxxjvzr680v64z"))))
+     (build-system cmake-build-system)
+     (arguments
+      (list
+       #:configure-flags #~(list "-DQT_BUILD_TESTS=ON")
+       #:phases #~(modify-phases %standard-phases
+                    (delete 'check)      ;move after install
+                    (add-after 'install 'prepare-for-tests
+                      (lambda _
+                        (setenv "QT_QPA_PLATFORM" "offscreen")
+                        (setenv "QML2_IMPORT_PATH"
+                                (string-append #$output "/lib/qt6/qml:"
+                                               (getenv "QML2_IMPORT_PATH")))))
+                    (add-after 'prepare-for-tests 'check
+                      (assoc-ref %standard-phases 'check))
+                    (add-after 'check 'delete-installed-tests
+                      (lambda _
+                        (delete-file-recursively
+                         (string-append #$output "/tests")))))))
+     (native-inputs (list perl))
+     (inputs (list qtbase qtdeclarative))
+     (synopsis "Qt Web Sockets module")
+     (description "WebSocket is a web-based protocol designed to enable two-way
+ communication between a client application and a remote host.  The Qt
+ WebSockets module provides C++ and QML interfaces that enable Qt applications
+ to act as a server that can process WebSocket requests, or a client that can
+ consume data received from the server, or both.")
+     (home-page (package-home-page qtbase))
+     (license (package-license qtbase))))
  (define-public qtsensors
-   (package (inherit qtsvg)
+   (package (inherit qtsvg-5)
      (name "qtsensors")
 -    (version "5.15.2")
 +    (version "5.15.5")
      (source (origin
               (method url-fetch)
               (uri (qt5-urls name version))
               (sha256
                (base32
 -               "0fa81r7bn1mf9ynwsx524a55dx1q0jb4vda6j48ssb4lx7wi201z"))))
 +               "0zlhm4js02niibb23rw87wf4ik0gy4ai08fwprnwy7zf4rm1ss3d"))))
      (arguments
-      (substitute-keyword-arguments (package-arguments qtsvg)
+      (substitute-keyword-arguments (package-arguments qtsvg-5)
         ((#:parallel-tests? _ #f) #f) ; can lead to race condition
         ((#:phases phases)
          `(modify-phases ,phases
             (add-after 'unpack 'fix-tests
               (lambda _
                 (substitute* "tests/auto/qsensorgestures_gestures/tst_sensorgestures_gestures.cpp"
 -                 (("2000") "5000")      ;lengthen test timeout
 -                 (("QTest::newRow(\"twist\") << \"twist\"") "")) ;failing test
 -               #t))))))
 +                 (("2000") "5000")                                      ;lengthen test timeout
 +                 (("QTest::newRow(\"twist\") << \"twist\"") ""))))))))  ;failing test
      (native-inputs
-      (list perl qtdeclarative))
+      (list perl qtdeclarative-5))
      (inputs (list qtbase-5))
      (synopsis "Qt Sensors module")
      (description "The Qt Sensors API provides access to sensor hardware via QML
  and C++ interfaces.  The Qt Sensors API also provides a motion gesture
  recognition API for devices.")))
  
- (define-public qtmultimedia
-   (package (inherit qtsvg)
+ (define-public qtmultimedia-5
+   (package
+     (inherit qtsvg-5)
      (name "qtmultimedia")
 -    (version "5.15.2")
 +    (version "5.15.5")
      (source (origin
               (method url-fetch)
               (uri (qt5-urls name version))
                     "examples/multimedia/spectrum/3rdparty")
                   ;; We also prevent the spectrum example from being built.
                   (substitute* "examples/multimedia/multimedia.pro"
 -                   (("spectrum") "#"))
 -                 #t))))
 +                   (("spectrum") "#"))))))
      (arguments
-      (substitute-keyword-arguments (package-arguments qtsvg)
+      (substitute-keyword-arguments (package-arguments qtsvg-5)
         ((#:phases phases)
          `(modify-phases ,phases
             (replace 'configure
  record media, and manage a collection of media content.  It also contains a
  set of plugins for interacting with pulseaudio and GStreamer.")))
  
+ (define-public qtshadertools
+   (package
+     (name "qtshadertools")
+     (version "6.3.1")
+     (source (origin
+               (method url-fetch)
+               (uri (qt5-urls name version))
+               ;; Note: the source bundles *patched* glslang and SPIRV-Cross
+               ;; sources.
+               (sha256
+                (base32
+                 "0nj35s2z5n438q7nqf6bnj3slwz2am3169ck1ixwqa0mjrv73dsr"))))
+     (build-system cmake-build-system)
+     (arguments
+      (list
+       #:configure-flags #~(list "-DQT_BUILD_TESTS=ON")
+       #:phases #~(modify-phases %standard-phases
+                    (add-before 'check 'prepare-for-tests
+                      (lambda _
+                        (setenv "QT_QPA_PLATFORM" "offscreen"))))))
+     (native-inputs (list perl))
+     (inputs (list glslang libxkbcommon qtbase))
+     (home-page (package-home-page qtbase))
+     (synopsis "Shader pipeline API and and tools for Qt")
+     (description "The @code{qtshadertools} module provides APIs and tools
+ supporting shader pipeline functionality as offered in Qt Quick to operate on
+ Vulkan, OpenGL and other main graphic APIs.")
+     (license (package-home-page qtbase))))
+ (define-public qtmultimedia
+   (package
+     (name "qtmultimedia")
+     (version "6.3.1")
+     (source (origin
+               (method url-fetch)
+               (uri (qt5-urls name version))
+               (sha256
+                (base32
+                 "0dkk3lmzi2fs13cnj8q1lpcs6gghj219826gkwnzyd6nmlm280vy"))
+               (modules '((guix build utils)))
+               (snippet
+                '(begin
+                   (delete-file-recursively
+                    "examples/multimedia/spectrum/3rdparty")
+                   ;; We also prevent the spectrum example from being built.
+                   (substitute* "examples/multimedia/multimedia.pro"
+                     (("spectrum") "#"))))))
+     (build-system cmake-build-system)
+     (arguments
+      (list
+       #:configure-flags #~(list "-DQT_BUILD_TESTS=ON"
+                                 "-DQT_FEATURE_pulseaudio=ON")
+       #:phases
+       #~(modify-phases %standard-phases
+           (add-after 'unpack 'disable-integration-tests
+             (lambda _
+               ;; XXX: The tst_qaudiodecoderbackend, tst_qaudiodevice,
+               ;; tst_qaudiosource, tst_qmediaplayerbackend and
+               ;; tst_qcamerabackend tests fail, presumably because they
+               ;; require a functional pulseaudio daemon (which requires a dbus
+               ;; session bus, which requires an X11 server, and then is still
+               ;; unhappy).
+               (substitute* "tests/auto/CMakeLists.txt"
+                 (("add_subdirectory\\(integration)") ""))))
+           (add-before 'check 'prepare-for-tests
+             (lambda _
+               (setenv "QT_QPA_PLATFORM" "offscreen")))
+           (add-after 'install 'delete-installed-tests
+             (lambda _
+               (delete-file-recursively (string-append #$output "/tests")))))))
+     (native-inputs
+      (list perl
+            pkg-config
+            qtshadertools
+            vulkan-headers))
+     (inputs
+      (list alsa-lib
+            glib
+            gstreamer
+            gst-plugins-base             ;gstreamer-gl
+            gst-plugins-good             ;camera support, additional plugins
+            gst-libav                    ;ffmpeg plugin
+            libxkbcommon
+            mesa
+            qtbase
+            qtdeclarative
+            pulseaudio))
+     (home-page (package-home-page qtbase))
+     (synopsis "Qt Multimedia module")
+     (description "The Qt Multimedia module provides set of APIs to play and
+ record media, and manage a collection of media content.  It also contains a
+ set of plugins for interacting with pulseaudio and GStreamer.")
+     (license (package-license qtbase))))
  (define-public qtwayland
-   (package (inherit qtsvg)
+   (package (inherit qtsvg-5)
      (name "qtwayland")
 -    (version "5.15.2")
 +    (version "5.15.5")
      (source (origin
               (method url-fetch)
               (uri (qt5-urls name version))
+              (patches (search-patches "qtwayland-gcc-11.patch"))
               (sha256
                (base32
 -               "1ddfx4nak16xx0zh1kl836zxvpbixmmjyplsmfmg65pqkwi34dqr"))))
 +               "0yy8qf9kn15iqsxi2r7jbcsc0vsdyfz7bbxmfn4i9qmz1yvg0jgr"))))
      (arguments
-      (substitute-keyword-arguments (package-arguments qtsvg)
+      (substitute-keyword-arguments (package-arguments qtsvg-5)
         ((#:phases phases)
          `(modify-phases ,phases
             (add-after 'unpack 'disable-failing-tests
             (add-before 'check 'set-test-environment
               (lambda _
                 ;; Do not fail just because /etc/machine-id is missing.
 -               (setenv "DBUS_FATAL_WARNINGS" "0")
 -               #t))))))
 +               (setenv "DBUS_FATAL_WARNINGS" "0")))))))
      (native-inputs
-      (list glib perl pkg-config qtdeclarative))
+      (list glib perl pkg-config qtdeclarative-5))
      (inputs
-      `(("fontconfig" ,fontconfig)
-        ("freetype" ,freetype)
-        ("libx11" ,libx11)
-        ("libxcomposite" ,libxcomposite)
-        ("libxext" ,libxext)
-        ("libxkbcommon" ,libxkbcommon)
-        ("libxrender" ,libxrender)
-        ("mesa" ,mesa)
-        ("mtdev" ,mtdev)
-        ("qtbase" ,qtbase-5)
-        ("vulkan-headers" ,vulkan-headers)
-        ("wayland" ,wayland)))
+      (list fontconfig
+            freetype
+            libx11
+            libxcomposite
+            libxext
+            libxkbcommon
+            libxrender
+            mesa
+            mtdev
+            qtbase-5
+            vulkan-headers
+            wayland))
      (synopsis "Qt Wayland module")
      (description "The Qt Wayland module provides the QtWayland client and
  compositor libraries.")))
  
  (define-public qtserialport
-   (package (inherit qtsvg)
+   (package (inherit qtsvg-5)
      (name "qtserialport")
 -    (version "5.15.2")
 +    (version "5.15.5")
      (source (origin
               (method url-fetch)
               (uri (qt5-urls name version))
  interacting with serial ports from within Qt.")))
  
  (define-public qtserialbus
-   (package (inherit qtsvg)
+   (package (inherit qtsvg-5)
      (name "qtserialbus")
 -    (version "5.15.2")
 +    (version "5.15.5")
      (source (origin
               (method url-fetch)
               (uri (qt5-urls name version))
               (sha256
                (base32
 -               "125x6756fjpldqy6wbw6cg7ngjh2016aiq92bchh719z1mf7xsxf"))))
 +               "180gm1jvqfn0h3251zafdd1wd3af00phwaa5qljsbrj6s6ywj79j"))))
      (arguments
-      (substitute-keyword-arguments (package-arguments qtsvg)
+      (substitute-keyword-arguments (package-arguments qtsvg-5)
         ((#:phases phases '%standard-phases)
          `(modify-phases ,phases
             (add-after 'unpack 'patch-libsocketcan-reference
  access the various industrial serial buses and protocols, such as CAN, ModBus,
  and others.")))
  
- (define-public qtwebchannel
-   (package (inherit qtsvg)
+ (define-public qtwebchannel-5
+   (package (inherit qtsvg-5)
      (name "qtwebchannel")
 -    (version "5.15.2")
 +    (version "5.15.5")
      (source (origin
               (method url-fetch)
               (uri (qt5-urls name version))
               (sha256
                (base32
 -               "1h9y634phvvk557mhmf9z4lmxr41rl8x9mqy2lzp31mk8ffffzqj"))))
 +               "1w8mcpdqlphgg3a6yfq18liwlj2nkwrafv0n80h242x5l2mk3ljf"))))
      (native-inputs
-      (list perl qtdeclarative qtwebsockets))
+      (list perl qtdeclarative-5 qtwebsockets-5))
      (inputs (list qtbase-5))
      (synopsis "Web communication library for Qt")
      (description "The Qt WebChannel module enables peer-to-peer communication
@@@ -1130,26 -1578,64 +1562,63 @@@ between the host (QML/C++ application) 
  application).  The transport mechanism is supported out of the box by the two
  popular web engines, Qt WebKit 2 and Qt WebEngine.")))
  
+ (define-public qtwebchannel
+   (package
+     (name "qtwebchannel")
+     (version "6.3.1")
+     (source (origin
+               (method url-fetch)
+               (uri (qt5-urls name version))
+               (sha256
+                (base32
+                 "0s16zx3qn3byldvhmsnwijm8rmizk8vpqj7fnwhjg6c67z10m8ma"))))
+     (build-system cmake-build-system)
+     (arguments
+      (list
+       #:configure-flags #~(list "-DQT_BUILD_TESTS=ON")
+       #:phases #~(modify-phases %standard-phases
+                    (delete 'check)      ;move after install
+                    (add-after 'install 'prepare-for-tests
+                      (lambda _
+                        (setenv "QT_QPA_PLATFORM" "offscreen")
+                        (setenv "QML2_IMPORT_PATH"
+                                (string-append #$output "/lib/qt6/qml:"
+                                               (getenv "QML2_IMPORT_PATH")))))
+                    (add-after 'prepare-for-tests 'check
+                      (assoc-ref %standard-phases 'check))
+                    (add-after 'check 'delete-installed-tests
+                      (lambda _
+                        (delete-file-recursively
+                         (string-append #$output "/tests")))))))
+     (native-inputs (list perl))
+     (inputs (list qtbase qtdeclarative qtwebsockets))
+     (home-page (package-home-page qtbase))
+     (synopsis "Web communication library for Qt")
+     (description "The Qt WebChannel module enables peer-to-peer communication
+ between the host (QML/C++ application) and the client (HTML/JavaScript
+ application).")
+     (license (package-license qtbase))))
  (define-public qtwebglplugin
-   (package (inherit qtsvg)
+   (package (inherit qtsvg-5)
      (name "qtwebglplugin")
 -    (version "5.15.2")
 +    (version "5.15.5")
      (source (origin
               (method url-fetch)
               (uri (qt5-urls name version))
               (sha256
                (base32
 -               "0ihlnhv8ldkqz82v3j7j22lrhk17b6ghra8sx85y2agd2ysq5rw1"))))
 +               "1m0p4ssykw07lbip2qyv6w34f8ng13bxb63j0w446f5w0492nn9f"))))
      (arguments
-      (substitute-keyword-arguments (package-arguments qtsvg)
+      (substitute-keyword-arguments (package-arguments qtsvg-5)
         ((#:phases phases)
          `(modify-phases ,phases
             (add-after 'unpack 'disable-network-tests
               (lambda _ (substitute* "tests/plugins/platforms/platforms.pro"
 -                         (("webgl") "# webgl"))
 -               #t))))))
 +                         (("webgl") "# webgl"))))))))
      (native-inputs '())
      (inputs
-      (list mesa qtbase-5 qtdeclarative qtwebsockets zlib))
+      (list mesa qtbase-5 qtdeclarative-5 qtwebsockets-5 zlib))
      (synopsis "QPA plugin for running an application via a browser using
  streamed WebGL commands")
      (description "Qt back end that uses WebGL for rendering. It allows Qt
@@@ -1159,9 -1645,9 +1628,9 @@@ compatible web browser without the use 
  OpenGL ES 2.0 and can be used in HTML5 canvas elements")))
  
  (define-public qtwebview
-   (package (inherit qtsvg)
+   (package (inherit qtsvg-5)
      (name "qtwebview")
 -    (version "5.15.2")
 +    (version "5.15.5")
      (source (origin
               (method url-fetch)
               (uri (qt5-urls name version))
@@@ -1178,46 -1664,76 +1647,78 @@@ application without necessarily includi
  native APIs where it makes sense.")))
  
  (define-public qtlocation
-   (package (inherit qtsvg)
+   (package (inherit qtsvg-5)
      (name "qtlocation")
 -    (version "5.15.2")
 +    (version "5.15.5")
      (source (origin
               (method url-fetch)
 -             (uri (string-append "https://download.qt.io/official_releases/qt/"
 -                                 (version-major+minor version) "/" version
 -                                 "/submodules/" name "-everywhere-src-"
 -                                 version ".tar.xz"))
 +             (uri (qt5-urls name version))
               (sha256
                (base32
 -               "184jychnlfhplpwc5cdcsapwljgwvzk5qpf3val4kpq8w44wnkwq"))))
 +               "0mlhhhcxx3gpr9kh04c6fljxcj50c2j21r0wb9f7d7nk4flip7b2"))))
      (arguments
-      (substitute-keyword-arguments (package-arguments qtsvg)
+      (substitute-keyword-arguments (package-arguments qtsvg-5)
 -       ((#:tests? _ #f) #f))) ; TODO: Enable the tests
 +       ((#:tests? _ #f) #f)   ; TODO: Enable the tests
 +       ((#:phases phases)
 +        `(modify-phases ,phases
 +           (add-before 'check 'pre-check
 +             (lambda _
 +               (setenv "HOME" "/tmp")))))))
      (native-inputs
-      (list perl qtdeclarative qtquickcontrols qtserialport))
+      (list perl qtdeclarative-5 qtquickcontrols-5 qtserialport))
      (inputs
       (list icu4c openssl qtbase-5 zlib))
      (synopsis "Qt Location and Positioning modules")
      (description "The Qt Location module provides an interface for location,
  positioning and geolocation plugins.")))
  
- (define-public qttools
-   (package (inherit qtsvg)
+ (define-public qtlottie
+   (package
+     (name "qtlottie")
+     (version "6.3.1")
+     (source (origin
+               (method url-fetch)
+               (uri (qt5-urls name version))
+               (sha256
+                (base32
+                 "1x8wmc6gwmxk92zjcsrbhrbqbfvnk7302ggghld5wk8jk5lsf2vl"))))
+     (build-system cmake-build-system)
+     (arguments
+      (list
+       #:configure-flags #~(list "-DQT_BUILD_TESTS=ON")
+       #:phases
+       #~(modify-phases %standard-phases
+           (delete 'check)               ;move after install
+           (add-after 'install 'prepare-for-tests
+             (lambda _
+               (setenv "QT_QPA_PLATFORM" "offscreen")
+               (setenv "QML2_IMPORT_PATH"
+                       (string-append #$output "/lib/qt6/qml:"
+                                      (getenv "QML2_IMPORT_PATH"))))))))
+     (native-inputs (list perl))
+     (inputs (list libxkbcommon qtbase qtdeclarative))
+     (home-page (package-home-page qtbase))
+     (synopsis "QML API for rendering Bodymovin graphics and animations")
+     (description "Qt Lottie Animation provides a QML API for rendering
+ graphics and animations that are exported in JSON format by the Bodymovin
+ plugin for Adobe After Effects.")
+     (license (package-license qtbase))))
+ (define-public qttools-5
+   (package (inherit qtsvg-5)
      (name "qttools")
 -    (version "5.15.2")
 +    (version "5.15.5")
      (source (origin
               (method url-fetch)
               (uri (qt5-urls name version))
               (sha256
                (base32
 -               "1k618f7v6jaj0ygy8d7jvgb8zjr47sn55kiskbdkkizp3z7d12f1"))))
 +               "0v7wkzq9i8w3qrw0z8al7lb6clr57lfisyb1fm9cnhi73fvph1vd"))))
      (arguments
-      (substitute-keyword-arguments (package-arguments qtsvg)
+      (substitute-keyword-arguments (package-arguments qtsvg-5)
         ((#:tests? _ #f) #f))) ; TODO: Enable the tests
      (native-inputs
-      (list perl qtdeclarative vulkan-headers))
+      (list perl qtdeclarative-5 vulkan-headers))
      (inputs
       (list mesa qtbase-5))
      (synopsis "Qt Tools and Designer modules")
  the documentation, translate applications, generate help files and other stuff
  that helps in Qt development.")))
  
+ (define-public qttools
+   (package
+     (name "qttools")
+     (version "6.3.1")
+     (source (origin
+               (method url-fetch)
+               (uri (qt5-urls name version))
+               (sha256
+                (base32
+                 "1h96w4bzkbd80vr7lh6hnypdlmbzc1y52c2zrqzvkgm3587pa4n4"))))
+     (build-system cmake-build-system)
+     (arguments
+      (list
+       ;; The build system attempts to fetch online resources and fails when
+       ;; building the test suite.
+       #:configure-flags #~(list "-DQT_BUILD_TESTS=OFF")))
+     (native-inputs (list perl qtdeclarative vulkan-headers))
+     (inputs (list libxkbcommon mesa qtbase))
+     (home-page (package-home-page qtbase))
+     (synopsis "Qt Tools and Designer modules")
+     (description "The Qt Tools module provides a set of applications to browse
+ the documentation, translate applications, generate help files and other stuff
+ that helps in Qt development.")
+     ;; GPL 3 only with Qt GPL exception 1.0 (see:
+     ;; LICENSES/Qt-GPL-exception-1.0.txt).
+     (license (list license:gpl3))))
  (define-public qtscript
-   (package (inherit qtsvg)
+   (package (inherit qtsvg-5)
      (name "qtscript")
 -    (version "5.15.2")
 +    (version "5.15.5")
      (source (origin
               (method url-fetch)
               (uri (qt5-urls name version))
               (sha256
                (base32
 -               "0gk74hk488k9ldacxbxcranr3arf8ifqg8kz9nm1rgdgd59p36d2"))
 +               "17yk0p8ci47xlfpllc17arlycng47wrnnskimskzz85bspabc8pm"))
               (patches (search-patches "qtscript-disable-tests.patch"))))
      (native-inputs
-      (list perl qttools))
+      (list perl qttools-5))
      (inputs
       (list qtbase-5))
      (synopsis "Qt Script module")
  The following guides and references cover aspects of programming with
  ECMAScript and Qt.")))
  
- (define-public qtquickcontrols
-   (package (inherit qtsvg)
+ (define-public qtquickcontrols-5
+   (package (inherit qtsvg-5)
      (name "qtquickcontrols")
 -    (version "5.15.2")
 +    (version "5.15.5")
      (source (origin
               (method url-fetch)
               (uri (qt5-urls name version))
               (sha256
                (base32
 -               "1dczakl868mg0lnwpf082jjc5976ycn879li1vqlgw5ihirzp4y3"))))
 +               "0mjw25wcgd2bvjz9rr4qjydb423c63615rcx1vws4jmydqdihssr"))))
      (arguments
-      (substitute-keyword-arguments (package-arguments qtsvg)
+      (substitute-keyword-arguments (package-arguments qtsvg-5)
         ((#:tests? _ #f) #f))) ; TODO: Enable the tests
      (inputs
-      (list qtbase-5 qtdeclarative))
+      (list qtbase-5 qtdeclarative-5))
      (synopsis "Qt Quick Controls and other Quick modules")
      (description "The QtScript module provides classes for making Qt
  applications scriptable.  This module provides a set of extra components that
  can be used to build complete interfaces in Qt Quick.")))
  
- (define-public qtquickcontrols2
-   (package (inherit qtsvg)
+ (define-public qtquickcontrols2-5
+   (package (inherit qtsvg-5)
      (name "qtquickcontrols2")
 -    (version "5.15.2")
 +    (version "5.15.5")
      (source (origin
               (method url-fetch)
               (uri (qt5-urls name version))
               (sha256
                (base32
 -               "06c9vrwvbjmzapmfa25y34lgjkzg57xxbm92nr6wkv5qykjnq6v7"))))
 +               "1cxg4ml07k1zcyi5m4lx06sz8f5l67isb5vhk7nakxm0wnn7p8y4"))))
      (arguments
-      (substitute-keyword-arguments (package-arguments qtsvg)
+      (substitute-keyword-arguments (package-arguments qtsvg-5)
         ((#:tests? _ #f) #f))) ; TODO: Enable the tests
      (inputs
-      (list qtbase-5 qtdeclarative))
+      (list qtbase-5 qtdeclarative-5))
      (synopsis "Qt Quick Controls 2 and other Quick 2 modules")
      (description "The Qt Quick Controls 2 module contains the Qt Labs Platform
  module that provides platform integration: native dialogs, menus and menu bars,
  and tray icons.  It falls back to Qt Widgets when a native implementation is
  not available.")))
  
+ (define-public qtquickcontrols2
+   ;; qtquickcontrols2 still exist, but was merged into qtdeclarative.
+   ;; Unfortunately that hasn't been well communicated at all (see:
+   ;; https://bugreports.qt.io/browse/QTBUG-79454).
+   (deprecated-package "qtquickcontrols2" qtdeclarative))
  (define-public qtgraphicaleffects
-   (package (inherit qtsvg)
+   (package (inherit qtsvg-5)
      (name "qtgraphicaleffects")
 -    (version "5.15.2")
 +    (version "5.15.5")
      (source (origin
               (method url-fetch)
               (uri (qt5-urls name version))
               (sha256
                (base32
 -               "1r6zfc0qga2ax155js7c8y5rx6vgayf582s921j09mb797v6g3gc"))))
 +               "0xznn5zqp6xrqfgl54l8cig9asqf9m2hz0p3ga514rh8spmdazr3"))))
      (arguments
-      (substitute-keyword-arguments (package-arguments qtsvg)
+      (substitute-keyword-arguments (package-arguments qtsvg-5)
         ((#:tests? _ #f) #f))) ; TODO: Enable the tests
      (inputs
-      (list qtbase-5 qtdeclarative))
+      (list qtbase-5 qtdeclarative-5))
      (synopsis "Qt Graphical Effects module")
      (description "The Qt Graphical Effects module provides a set of QML types
  for adding visually impressive and configurable effects to user interfaces.
@@@ -1310,9 -1859,9 +1844,9 @@@ types.  The effects cover functional ar
  coloring, and many more.")))
  
  (define-public qtgamepad
-   (package (inherit qtsvg)
+   (package (inherit qtsvg-5)
      (name "qtgamepad")
 -    (version "5.15.2")
 +    (version "5.15.5")
      (source (origin
               (method url-fetch)
               (uri (qt5-urls name version))
@@@ -1336,9 -1885,9 +1870,9 @@@ primary target audience are embedded de
  and mobile applications targeting TV-like form factors.")))
  
  (define-public qtscxml
-   (package (inherit qtsvg)
+   (package (inherit qtsvg-5)
      (name "qtscxml")
 -    (version "5.15.2")
 +    (version "5.15.5")
      (source (origin
               (method url-fetch)
               (uri (qt5-urls name version))
                   (delete-file-recursively "tests/3rdparty")
                   ;; the scion test refers to the bundled 3rd party test code.
                   (substitute* "tests/auto/auto.pro"
 -                   (("scion") "#"))
 -                 #t))))
 +                   (("scion") "#"))))))
 +    (arguments
 +     (substitute-keyword-arguments (package-arguments qtsvg)
 +       ((#:tests? _ #f) #f))) ; TODO: Enable the tests
      (inputs
-      (list qtbase-5 qtdeclarative))
+      (list qtbase-5 qtdeclarative-5))
      (synopsis "Qt SCXML module")
      (description "The Qt SCXML module provides functionality to create state
  machines from SCXML files.  This includes both dynamically creating state
@@@ -1364,43 -1911,67 +1898,73 @@@ machines (loading the SCXML file and in
  generating a C++ file that has a class implementing the state machine.  It
  also contains functionality to support data models and executable content.")))
  
+ (define-public qtpositioning
+   (package
+     (name "qtpositioning")
+     (version "6.3.1")
+     (source (origin
+               (method url-fetch)
+               (uri (qt5-urls name version))
+               (sha256
+                (base32
+                 "0v78wamvdw02kf9rq7m5v24q2g6jmgq4ch0fnfa014p1r978wy06"))))
+     (build-system cmake-build-system)
+     (arguments
+      (list
+       #:configure-flags #~(list "-DQT_BUILD_TESTS=ON")
+       #:phases #~(modify-phases %standard-phases
+                    (add-after 'install 'delete-installed-tests
+                      (lambda _
+                        (delete-file-recursively
+                         (string-append #$output "/tests")))))))
+     (inputs (list perl qtbase))
+     (home-page (package-home-page qtbase))
+     (synopsis "QML and C++ positioning information API")
+     (description "The Qt Positioning API provides positioning information via
+ QML and C++ interfaces.  The Qt Positioning API lets you to determine a
+ position by using a variety of possible sources, including satellite, wifi, or
+ text files.  That information can then be used to, for example, determine a
+ position on a map.  In addition, you can use to the API to retrieve satellite
+ information and perform area based monitoring.")
+     (license (package-license qtbase))))
  (define-public qtpurchasing
-   (package (inherit qtsvg)
+   (package (inherit qtsvg-5)
      (name "qtpurchasing")
 -    (version "5.15.2")
 +    (version "5.15.5")
      (source (origin
               (method url-fetch)
               (uri (qt5-urls name version))
               (sha256
                (base32
 -               "09rjx53519dfk4qj2gbn3vlxyriasyb747wpg1p11y7jkwqhs4l7"))))
 +               "04z6mwzn73gg56hgs7gividinfgndx4kmcnp7w6h3wamrdlkfdx7"))))
      (inputs
-      (list qtbase-5 qtdeclarative))
+      (list qtbase-5 qtdeclarative-5))
      (synopsis "Qt Purchasing module")
      (description "The Qt Purchasing module provides and in-app API for
  purchasing goods and services.")))
  
  (define-public qtcharts
-   (package (inherit qtsvg)
+   (package (inherit qtsvg-5)
      (name "qtcharts")
 -    (version "5.15.2")
 +    (version "5.15.5")
      (source (origin
               (method url-fetch)
               (uri (qt5-urls name version))
               (sha256
                (base32
 -               "049x7z8zcp9jixmdv2fjscy2ggpd6za9hkdbb2bqp2mxjm0hwxg0"))))
 +               "0y051i1837bfybkf8cm7cx8k5wjmbi47pxawaaz6wm0hd2z5b4qi"))))
      (arguments
-      (substitute-keyword-arguments (package-arguments qtsvg)
+      (substitute-keyword-arguments (package-arguments qtsvg-5)
 -       ((#:tests? _ #f) #f))) ; TODO: Enable the tests
 +       ((#:phases phases)
 +        `(modify-phases ,phases
 +           (add-after 'unpack 'remove-failing-test
 +             (lambda _
 +               (substitute* "tests/auto/auto.pro"
 +                 (("qml") "# qml")
 +                 (("qml-qtquicktest") "# qml-qtquicktest"))))))))
      (inputs
-      (list qtbase-5 qtdeclarative))
+      (list qtbase-5 qtdeclarative-5))
      (synopsis "Qt Charts module")
      (description "The Qt Charts module provides a set of easy to use chart
  components.  It uses the Qt Graphics View Framework, therefore charts can be
@@@ -1410,20 -1981,20 +1974,20 @@@ selecting one of the charts themes."
      (license license:gpl3)))
  
  (define-public qtdatavis3d
-   (package (inherit qtsvg)
+   (package (inherit qtsvg-5)
      (name "qtdatavis3d")
 -    (version "5.15.2")
 +    (version "5.15.5")
      (source (origin
               (method url-fetch)
               (uri (qt5-urls name version))
               (sha256
                (base32
 -               "1zdn3vm0nfy9ny7c783aabp3mhlnqhi9fw2rljn7ibbksmsnasi2"))))
 +               "0sczwqlc36jdywf7bqxz0hm6mr7fn8p1fsnc33jliiqzn9yrg77x"))))
      (arguments
-      (substitute-keyword-arguments (package-arguments qtsvg)
+      (substitute-keyword-arguments (package-arguments qtsvg-5)
         ((#:tests? _ #f) #f))) ; TODO: Enable the tests
      (inputs
-      (list qtbase-5 qtdeclarative))
+      (list qtbase-5 qtdeclarative-5))
      (synopsis "Qt Data Visualization module")
      (description "The Qt Data Visualization module provides a way to visualize
  data in 3D as bar, scatter, and surface graphs. It is especially useful for
@@@ -1432,10 -2003,10 +1996,10 @@@ data received from multiple sensors. Th
  customized by using themes or by adding custom items and labels to them.")
      (license license:gpl3)))
  
- (define-public qtnetworkauth
-   (package (inherit qtsvg)
+ (define-public qtnetworkauth-5
+   (package (inherit qtsvg-5)
      (name "qtnetworkauth")
 -    (version "5.15.2")
 +    (version "5.15.5")
      (source (origin
               (method url-fetch)
               (uri (qt5-urls name version))
      (description "The Qt Network Authorization module provides an
  implementation of OAuth and OAuth2 authenticathon methods for Qt.")))
  
+ (define-public qtnetworkauth
+   (package
+     (name "qtnetworkauth")
+     (version "6.3.1")
+     (source (origin
+               (method url-fetch)
+               (uri (qt5-urls name version))
+               (sha256
+                (base32
+                 "0apvsb2ip1m3kw8vi9spvf6f6q72ys8vr40rpyysi7shsjwm83yn"))))
+     (build-system cmake-build-system)
+     (arguments (list #:configure-flags #~(list "-DQT_BUILD_TESTS=ON")))
+     (native-inputs (list perl))
+     (inputs (list qtbase))
+     (home-page (package-home-page qtbase))
+     (synopsis "Qt Network Authorization module")
+     (description "The Qt Network Authorization module provides an
+ implementation of OAuth and OAuth2 authenticathon methods for Qt.")
+     (license (package-license qtbase))))
  (define-public qtremoteobjects
-   (package (inherit qtsvg)
+   (package (inherit qtsvg-5)
      (name "qtremoteobjects")
 -    (version "5.15.2")
 +    (version "5.15.5")
      (source (origin
               (method url-fetch)
               (uri (qt5-urls name version))
               (sha256
                (base32
 -               "1hngbp0vkr35rpsrac7b9vx6f360v8v2g0fffzm590l8j2ybd0b7"))))
 +               "1m0xcqlbxsfn0cd4ajin1h3i4l51dajmkw91v0r4a61xi14i0kks"))))
      (arguments
-      (substitute-keyword-arguments (package-arguments qtsvg)
+      (substitute-keyword-arguments (package-arguments qtsvg-5)
         ((#:phases phases)
          `(modify-phases ,phases
             (add-after 'unpack 'remove-failing-test
                 ;; disable failing tests: they need network
                 (substitute* "tests/auto/auto.pro"
                   (("integration_multiprocess proxy_multiprocess integration_external restart")
 -                   "integration_multiprocess"))
 -               #t))))))
 +                   "integration_multiprocess"))))))))
      (inputs
-      (list qtbase-5 qtdeclarative))
+      (list qtbase-5 qtdeclarative-5))
      (synopsis "Qt Remote Objects module")
      (description "The Qt Remote Objects module is an @dfn{inter-process
  communication} (IPC) module developed for Qt.  The idea is to extend existing
@@@ -1481,17 -2083,18 +2065,17 @@@ Qt's functionalities to enable an easy 
  processes or computers.")))
  
  (define-public qtspeech
-   (package (inherit qtsvg)
+   (package (inherit qtsvg-5)
      (name "qtspeech")
 -    (version "5.15.2")
 +    (version "5.15.5")
      (source (origin
               (method url-fetch)
               (uri (qt5-urls name version))
               (sha256
                (base32
 -               "1xc3x3ghnhgchsg1kgj156yg69wn4rwjx8r28i1jd05hxjggn468"))))
 -
 +               "0xskp9dzjy5nqszygk8gwvjyiylgynx5sq3nk2vi3zwgfdh5jpm4"))))
      (arguments
-      (substitute-keyword-arguments (package-arguments qtsvg)
+      (substitute-keyword-arguments (package-arguments qtsvg-5)
         ((#:tests? _ #f) #f))) ; TODO: Enable the tests
      (inputs
       (list qtbase-5))
@@@ -1534,11 -2137,11 +2118,11 @@@ using the Enchant spell-checking librar
      ;; COPYING file specify GPL3, but source code files all refer to GPL2+.
      (license license:gpl2+)))
  
- (define-public qtwebengine
+ (define-public qtwebengine-5
    (package
-     (inherit qtsvg)
+     (inherit qtsvg-5)
      (name "qtwebengine")
 -    (version (package-version qtbase-5))
 +    (version "5.15.5")
      (source
       (origin
         (method url-fetch)
Simple merge
Simple merge
Simple merge