From 1717c8a233b7fda3a10aabc061168c71317f883e Mon Sep 17 00:00:00 2001 From: Maxim Cournoyer Date: Fri, 11 Aug 2023 15:26:14 -0400 Subject: [PATCH] gnu: qtdeclarative: Disable QML cache to avoid stale cache issues. Fixes and similar reports. * gnu/packages/patches/qtdeclarative-5-disable-qmlcache.patch: New patch. * gnu/packages/patches/qtdeclarative-disable-qmlcache.patch: Likewise. * gnu/local.mk (dist_patch_DATA): Register them. * gnu/packages/qt.scm (qtdeclarative-5, qtdeclarative): Apply them. Reported-by: Distopico Vegan --- gnu/local.mk | 2 ++ .../qtdeclarative-5-disable-qmlcache.patch | 16 ++++++++++++++++ .../patches/qtdeclarative-disable-qmlcache.patch | 16 ++++++++++++++++ gnu/packages/qt.scm | 6 ++++-- 4 files changed, 38 insertions(+), 2 deletions(-) create mode 100644 gnu/packages/patches/qtdeclarative-5-disable-qmlcache.patch create mode 100644 gnu/packages/patches/qtdeclarative-disable-qmlcache.patch diff --git a/gnu/local.mk b/gnu/local.mk index 011ababfb75..6e2f70cdaa8 100644 --- a/gnu/local.mk +++ b/gnu/local.mk @@ -1733,6 +1733,8 @@ dist_patch_DATA = \ %D%/packages/patches/python-typeguard-python3.10.patch \ %D%/packages/patches/python-w3lib-fix-test-failure.patch \ %D%/packages/patches/python-wxwidgets-type-errors.patch \ + %D%/packages/patches/qtdeclarative-5-disable-qmlcache.patch \ + %D%/packages/patches/qtdeclarative-disable-qmlcache.patch \ %D%/packages/patches/quodlibet-fix-invalid-glob.patch \ %D%/packages/patches/quodlibet-fix-mtime-tests.patch \ %D%/packages/patches/qxlsx-fix-include-directory.patch \ diff --git a/gnu/packages/patches/qtdeclarative-5-disable-qmlcache.patch b/gnu/packages/patches/qtdeclarative-5-disable-qmlcache.patch new file mode 100644 index 00000000000..2f1cf0dd4ed --- /dev/null +++ b/gnu/packages/patches/qtdeclarative-5-disable-qmlcache.patch @@ -0,0 +1,16 @@ +Retrieved from +https://github.com/NixOS/nixpkgs/raw/master/pkgs/development/libraries/qt-5/5.15/qtdeclarative-default-disable-qmlcache.patch + +diff --git a/src/qml/qml/qqmltypeloader.cpp b/src/qml/qml/qqmltypeloader.cpp +index 1d66e75..827567a 100644 +--- a/src/qml/qml/qqmltypeloader.cpp ++++ b/src/qml/qml/qqmltypeloader.cpp +@@ -727,7 +727,7 @@ bool QQmlTypeLoader::Blob::isDebugging() const + + bool QQmlTypeLoader::Blob::diskCacheEnabled() const + { +- return (!disableDiskCache() && !isDebugging()) || forceDiskCache(); ++ return forceDiskCache(); + } + + bool QQmlTypeLoader::Blob::qmldirDataAvailable(const QQmlRefPointer &data, QList *errors) diff --git a/gnu/packages/patches/qtdeclarative-disable-qmlcache.patch b/gnu/packages/patches/qtdeclarative-disable-qmlcache.patch new file mode 100644 index 00000000000..5f06ec53b48 --- /dev/null +++ b/gnu/packages/patches/qtdeclarative-disable-qmlcache.patch @@ -0,0 +1,16 @@ +Retrieved from +https://raw.githubusercontent.com/NixOS/nixpkgs/master/pkgs/development/libraries/qt-6/patches/qtdeclarative-default-disable-qmlcache.patch + +diff --git a/src/qml/jsruntime/qv4engine.cpp b/src/qml/jsruntime/qv4engine.cpp +index 852cde9e..165f1b57 100644 +--- a/src/qml/jsruntime/qv4engine.cpp ++++ b/src/qml/jsruntime/qv4engine.cpp +@@ -2093,7 +2093,7 @@ void ExecutionEngine::registerModule(const QString &_name, const QJSValue &modul + + bool ExecutionEngine::diskCacheEnabled() const + { +- return (!disableDiskCache() && !debugger()) || forceDiskCache(); ++ return forceDiskCache(); + } + + void ExecutionEngine::callInContext(QV4::Function *function, QObject *self, diff --git a/gnu/packages/qt.scm b/gnu/packages/qt.scm index 9708cd64869..e98957ccbab 100644 --- a/gnu/packages/qt.scm +++ b/gnu/packages/qt.scm @@ -1231,7 +1231,8 @@ xmlpatternsvalidator."))) (uri (qt-url name version)) (sha256 (base32 - "1kb8nj17vmnky0ayiwypim7kf6rmlmfcjf6gnrw8rydmp61w0vh2")))) + "1kb8nj17vmnky0ayiwypim7kf6rmlmfcjf6gnrw8rydmp61w0vh2")) + (patches (search-patches "qtdeclarative-5-disable-qmlcache.patch")))) (arguments (substitute-keyword-arguments (package-arguments qtsvg-5) ((#:tests? _ #f) #f) ;TODO: Enable the tests @@ -1277,7 +1278,8 @@ with JavaScript and C++."))) (uri (qt-url name version)) (sha256 (base32 - "1hbw63828pp8vm9b46i2pkcbcpr4mq9nblhmpwrw2pflq0fi24xq")))) + "1hbw63828pp8vm9b46i2pkcbcpr4mq9nblhmpwrw2pflq0fi24xq")) + (patches (search-patches "qtdeclarative-disable-qmlcache.patch")))) (build-system cmake-build-system) (arguments (list