From 6470affffe52fb278c447ce13f1d4a13116d44eb Mon Sep 17 00:00:00 2001 From: K900 Date: Fri, 6 Oct 2023 08:41:36 +0300 Subject: qt5.full: remove qtwebkit It's been broken long enough and having qt5.full is convenient for testing --- pkgs/development/libraries/qt-5/5.15/default.nix | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'pkgs/development/libraries/qt-5/5.15/default.nix') diff --git a/pkgs/development/libraries/qt-5/5.15/default.nix b/pkgs/development/libraries/qt-5/5.15/default.nix index e6e6b24360a..74d9b86f829 100644 --- a/pkgs/development/libraries/qt-5/5.15/default.nix +++ b/pkgs/development/libraries/qt-5/5.15/default.nix @@ -313,7 +313,7 @@ let qt3d qtcharts qtconnectivity qtdeclarative qtdoc qtgraphicaleffects qtimageformats qtlocation qtmultimedia qtquickcontrols qtquickcontrols2 qtscript qtsensors qtserialport qtsvg qttools qttranslations - qtvirtualkeyboard qtwebchannel qtwebengine qtwebkit qtwebsockets + qtvirtualkeyboard qtwebchannel qtwebengine qtwebsockets qtwebview qtx11extras qtxmlpatterns qtlottie qtdatavis3d ] ++ lib.optional (!stdenv.isDarwin) qtwayland ++ lib.optional (stdenv.isDarwin) qtmacextras); -- cgit 1.4.1 From 57c2850386b4d59f018bd6272d7d1532f4eedbba Mon Sep 17 00:00:00 2001 From: K900 Date: Thu, 19 Oct 2023 14:26:37 +0300 Subject: qt5: update to latest upstream patchset Fixes build with libxkbcommon 1.6.0, includes crash fix upstream. --- pkgs/development/libraries/qt-5/5.15/default.nix | 1 - .../qtbase.patch.d/9999-backport-dbus-crash.patch | 79 ---------------------- .../libraries/qt-5/5.15/srcs-generated.json | 8 +-- 3 files changed, 4 insertions(+), 84 deletions(-) delete mode 100644 pkgs/development/libraries/qt-5/5.15/qtbase.patch.d/9999-backport-dbus-crash.patch (limited to 'pkgs/development/libraries/qt-5/5.15/default.nix') diff --git a/pkgs/development/libraries/qt-5/5.15/default.nix b/pkgs/development/libraries/qt-5/5.15/default.nix index 74d9b86f829..b09c7af54a5 100644 --- a/pkgs/development/libraries/qt-5/5.15/default.nix +++ b/pkgs/development/libraries/qt-5/5.15/default.nix @@ -46,7 +46,6 @@ let ./qtbase.patch.d/0009-qtbase-qtpluginpath.patch ./qtbase.patch.d/0010-qtbase-assert.patch ./qtbase.patch.d/0011-fix-header_module.patch - ./qtbase.patch.d/9999-backport-dbus-crash.patch ]; qtdeclarative = [ ./qtdeclarative.patch diff --git a/pkgs/development/libraries/qt-5/5.15/qtbase.patch.d/9999-backport-dbus-crash.patch b/pkgs/development/libraries/qt-5/5.15/qtbase.patch.d/9999-backport-dbus-crash.patch deleted file mode 100644 index e1aa0119aa2..00000000000 --- a/pkgs/development/libraries/qt-5/5.15/qtbase.patch.d/9999-backport-dbus-crash.patch +++ /dev/null @@ -1,79 +0,0 @@ -commit eb0c6846a5d05d686f0686f0f1ddddcad762ad26 (HEAD -> kde/5.15) -Author: K900 -Date: Mon Aug 14 22:44:02 2023 +0300 - - QLibraryPrivate: Actually merge load hints - - Or old and new load hints in mergeLoadHints() instead of just storing - new ones. Andjust QLibraryPrivate::setLoadHints() to handle objects - with no file name differently and just set load hints directly. - - Mention that load hints are merged once the file name is set - in the documentation for QLibrary::setLoadHints(). - - Add a regression test into tst_qfactoryloader. - - Update and extend tst_QPluginLoader::loadHints() to take into account - load hints merging. - - Fixes: QTBUG-114480 - Change-Id: I3b9afaec7acde1f5ff992d913f8d7217392c7e00 - Reviewed-by: Qt CI Bot - Reviewed-by: Thiago Macieira - -diff --git a/src/corelib/plugin/qlibrary.cpp b/src/corelib/plugin/qlibrary.cpp -index 5d2f024267..45b5a3fe27 100644 ---- a/src/corelib/plugin/qlibrary.cpp -+++ b/src/corelib/plugin/qlibrary.cpp -@@ -526,7 +526,7 @@ void QLibraryPrivate::mergeLoadHints(QLibrary::LoadHints lh) - if (pHnd.loadRelaxed()) - return; - -- loadHintsInt.storeRelaxed(lh); -+ loadHintsInt.fetchAndOrRelaxed(lh); - } - - QFunctionPointer QLibraryPrivate::resolve(const char *symbol) -@@ -538,6 +538,13 @@ QFunctionPointer QLibraryPrivate::resolve(const char *symbol) - - void QLibraryPrivate::setLoadHints(QLibrary::LoadHints lh) - { -+ // Set the load hints directly for a dummy if this object is not associated -+ // with a file. Such object is not shared between multiple instances. -+ if (fileName.isEmpty()) { -+ loadHintsInt.storeRelaxed(lh); -+ return; -+ } -+ - // this locks a global mutex - QMutexLocker lock(&qt_library_mutex); - mergeLoadHints(lh); -@@ -1166,6 +1173,10 @@ QString QLibrary::errorString() const - lazy symbol resolution, and will not export external symbols for resolution - in other dynamically-loaded libraries. - -+ \note Hints can only be cleared when this object is not associated with a -+ file. Hints can only be added once the file name is set (\a hints will -+ be or'ed with the old hints). -+ - \note Setting this property after the library has been loaded has no effect - and loadHints() will not reflect those changes. - -diff --git a/src/corelib/plugin/qpluginloader.cpp b/src/corelib/plugin/qpluginloader.cpp -index 0a63b93762..ceee5d6385 100644 ---- a/src/corelib/plugin/qpluginloader.cpp -+++ b/src/corelib/plugin/qpluginloader.cpp -@@ -414,10 +414,11 @@ QString QPluginLoader::errorString() const - void QPluginLoader::setLoadHints(QLibrary::LoadHints loadHints) - { - if (!d) { -- d = QLibraryPrivate::findOrCreate(QString()); // ugly, but we need a d-ptr -+ d = QLibraryPrivate::findOrCreate({}, {}, loadHints); // ugly, but we need a d-ptr - d->errorString.clear(); -+ } else { -+ d->setLoadHints(loadHints); - } -- d->setLoadHints(loadHints); - } - - QLibrary::LoadHints QPluginLoader::loadHints() const diff --git a/pkgs/development/libraries/qt-5/5.15/srcs-generated.json b/pkgs/development/libraries/qt-5/5.15/srcs-generated.json index 3bd72a8ee5f..81712934971 100644 --- a/pkgs/development/libraries/qt-5/5.15/srcs-generated.json +++ b/pkgs/development/libraries/qt-5/5.15/srcs-generated.json @@ -16,8 +16,8 @@ }, "qtbase": { "url": "https://invent.kde.org/qt/qt/qtbase.git", - "rev": "c672f8bffff5af90a40bad7e621eae4616b12a31", - "sha256": "1sp3igzxmh110zs27inq1mqm17ayxljhc3gpjk1cyyzbc92hhcz2" + "rev": "ea7a183732c17005f08ca14fd70cdd305c90396d", + "sha256": "0lblir4zcnxc2ix9frcsygkhfs5qx7xibpflapmi6d978jjfxjmx" }, "qtcharts": { "url": "https://invent.kde.org/qt/qt/qtcharts.git", @@ -61,8 +61,8 @@ }, "qtlocation": { "url": "https://invent.kde.org/qt/qt/qtlocation.git", - "rev": "b4c42e255ee0f04eec4cf5cde35398f3c303ddb9", - "sha256": "18d1y0pcx0a98f7129g5sv2m0rmxw031jb68kg60c9c0mk3whpq0" + "rev": "48a17e88fc1df5b6ae82a9787466226c830bcbf2", + "sha256": "0gn4zsf01xr0g8divixk2zpq97dnqs1cdc3q577ijczd2rcs6z4f" }, "qtlottie": { "url": "https://invent.kde.org/qt/qt/qtlottie.git", -- cgit 1.4.1 From f0a33c775e238a30b75d2152ba641837efb642e2 Mon Sep 17 00:00:00 2001 From: Weijia Wang <9713184+wegank@users.noreply.github.com> Date: Tue, 31 Oct 2023 21:17:08 +0100 Subject: qt5.qtmultimedia: fix build with clang 16 --- pkgs/development/libraries/qt-5/5.15/default.nix | 8 ++++++++ 1 file changed, 8 insertions(+) (limited to 'pkgs/development/libraries/qt-5/5.15/default.nix') diff --git a/pkgs/development/libraries/qt-5/5.15/default.nix b/pkgs/development/libraries/qt-5/5.15/default.nix index b09c7af54a5..bf2663fdaae 100644 --- a/pkgs/development/libraries/qt-5/5.15/default.nix +++ b/pkgs/development/libraries/qt-5/5.15/default.nix @@ -52,6 +52,14 @@ let # prevent headaches from stale qmlcache data ./qtdeclarative-default-disable-qmlcache.patch ]; + qtmultimedia = lib.optionals stdenv.isDarwin [ + # build patch for qtmultimedia with xcode 15 + (fetchpatch { + url = "https://raw.githubusercontent.com/Homebrew/formula-patches/3f509180/qt5/qt5-qtmultimedia-xcode15.patch"; + stripLen = 1; + hash = "sha256-HrEqfmm8WbapWgLM0L4AKW8168pwT2zYI8HOJruEPSs="; + }) + ]; qtpim = [ ## Upstream patches after the Qt6 transition that apply without problems & fix bugs -- cgit 1.4.1 From 4a46353a3ca2a63bd973ee6b8bf6c4a73fac702c Mon Sep 17 00:00:00 2001 From: Weijia Wang <9713184+wegank@users.noreply.github.com> Date: Thu, 2 Nov 2023 18:42:54 +0100 Subject: qt5.qtlocation: fix build with clang 16 --- pkgs/development/libraries/qt-5/5.15/default.nix | 9 +++++++++ 1 file changed, 9 insertions(+) (limited to 'pkgs/development/libraries/qt-5/5.15/default.nix') diff --git a/pkgs/development/libraries/qt-5/5.15/default.nix b/pkgs/development/libraries/qt-5/5.15/default.nix index bf2663fdaae..0bef018bdf5 100644 --- a/pkgs/development/libraries/qt-5/5.15/default.nix +++ b/pkgs/development/libraries/qt-5/5.15/default.nix @@ -52,6 +52,15 @@ let # prevent headaches from stale qmlcache data ./qtdeclarative-default-disable-qmlcache.patch ]; + qtlocation = lib.optionals stdenv.cc.isClang [ + # Fix build with Clang 16 + (fetchpatch { + url = "https://github.com/boostorg/numeric_conversion/commit/50a1eae942effb0a9b90724323ef8f2a67e7984a.patch"; + stripLen = 1; + extraPrefix = "src/3rdparty/mapbox-gl-native/deps/boost/1.65.1/"; + hash = "sha256-UEvIXzn387f9BAeBdhheStD/4M7en+rmqX8C6gstl6k="; + }) + ]; qtmultimedia = lib.optionals stdenv.isDarwin [ # build patch for qtmultimedia with xcode 15 (fetchpatch { -- cgit 1.4.1 From e526bb7756039607e508982ccafe479dbdc19422 Mon Sep 17 00:00:00 2001 From: Randy Eckenrode Date: Sat, 4 Nov 2023 21:45:07 -0400 Subject: qt5.qtwebengine: pin clang version to clang 15 The version of Chromium used by Qt WebEngine 5.15.x does not build with clang 16 due to the following errors: * -Wenum-constexpr-conversion: This is a downgradable error in clang 16, but it is planned to be made into a hard error in a future version of clang. Patches are not available for the version of v8 used by Chromium in Qt WebEngine, and fixing the code is non-trivial. * -Wincompatible-function-pointer-types: This is also a downgradable error generated starting with clang 16. Patches are available upstream that can be backported. Because the first error is non-trivial to fix and suppressing it risks future breakage, clang is pinned to clang 15, which also makes fixing the incompatible function pointer conversion errors unnecessary. The derivation is also updated to use the `overrideLibcxx` adapter. Using it links qt5.qtwebengine against the same versions of libc++ and libc++abi as qt5.qtbase even though they are built with different versions of clang, avoiding the compatibility problems that can cause. Also, reenable x86_64-darwin because it builds successfully too. --- pkgs/development/libraries/qt-5/5.15/default.nix | 13 +++++++++++++ pkgs/development/libraries/qt-5/modules/qtwebengine.nix | 1 - pkgs/top-level/all-packages.nix | 1 + 3 files changed, 14 insertions(+), 1 deletion(-) (limited to 'pkgs/development/libraries/qt-5/5.15/default.nix') diff --git a/pkgs/development/libraries/qt-5/5.15/default.nix b/pkgs/development/libraries/qt-5/5.15/default.nix index fde5716b99e..a2b38046c5a 100644 --- a/pkgs/development/libraries/qt-5/5.15/default.nix +++ b/pkgs/development/libraries/qt-5/5.15/default.nix @@ -11,6 +11,7 @@ Check for any minor version changes. , lib, stdenv, fetchurl, fetchgit, fetchpatch, fetchFromGitHub, makeSetupHook, makeWrapper , bison, cups ? null, harfbuzz, libGL, perl, python3 , gstreamer, gst-plugins-base, gtk3, dconf +, llvmPackages_15, overrideSDK, overrideLibcxx , darwin # options @@ -288,6 +289,18 @@ let qtwayland = callPackage ../modules/qtwayland.nix {}; qtwebchannel = callPackage ../modules/qtwebchannel.nix {}; qtwebengine = callPackage ../modules/qtwebengine.nix { + # The version of Chromium used by Qt WebEngine 5.15.x does not build with clang 16 due + # to the following errors: + # * -Wenum-constexpr-conversion: This is a downgradable error in clang 16, but it is planned + # to be made into a hard error in a future version of clang. Patches are not available for + # the version of v8 used by Chromium in Qt WebEngine, and fixing the code is non-trivial. + # * -Wincompatible-function-pointer-types: This is also a downgradable error generated + # starting with clang 16. Patches are available upstream that can be backported. + # Because the first error is non-trivial to fix and suppressing it risks future breakage, + # clang is pinned to clang 15. That also makes fixing the second set of errors unnecessary. + stdenv = + let stdenv' = if stdenv.cc.isClang then overrideLibcxx llvmPackages_15.stdenv else stdenv; + in if stdenv'.isDarwin then overrideSDK stdenv' "11.0" else stdenv'; inherit (srcs.qtwebengine) version; python = python3; postPatch = '' diff --git a/pkgs/development/libraries/qt-5/modules/qtwebengine.nix b/pkgs/development/libraries/qt-5/modules/qtwebengine.nix index 58f90763a24..3503067aca7 100644 --- a/pkgs/development/libraries/qt-5/modules/qtwebengine.nix +++ b/pkgs/development/libraries/qt-5/modules/qtwebengine.nix @@ -306,7 +306,6 @@ qtModule ({ isAarch64 (patternLogicalAnd isMips isLittleEndian) ]); - broken = stdenv.isDarwin && stdenv.isx86_64; # This build takes a long time; particularly on slow architectures timeout = 24 * 3600; diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index f75a7e219bc..4a2f2921e68 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -24694,6 +24694,7 @@ with pkgs; inherit (__splicedPackages) makeScopeWithSplicing' generateSplicesForMkScope lib fetchurl fetchpatch fetchgit fetchFromGitHub makeSetupHook makeWrapper bison cups dconf harfbuzz libGL perl gtk3 python3 + llvmPackages_15 overrideSDK overrideLibcxx darwin; inherit (__splicedPackages.gst_all_1) gstreamer gst-plugins-base; inherit config; -- cgit 1.4.1