gnu: qtdeclarative: Disable QML cache to avoid stale cache issues.

Fixes <https://issues.guix.gnu.org/64605> 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 <distopico@riseup.net>
This commit is contained in:
Maxim Cournoyer 2023-08-11 15:26:14 -04:00
parent 41e62900d7
commit 1717c8a233
No known key found for this signature in database
GPG key ID: 1260E46482E63562
4 changed files with 38 additions and 2 deletions

View file

@ -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 \

View file

@ -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<QQmlQmldirData> &data, QList<QQmlError> *errors)

View file

@ -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,

View file

@ -1231,7 +1231,8 @@ (define-public qtdeclarative-5
(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 @@ (define-public qtdeclarative
(uri (qt-url name version))
(sha256
(base32
"1hbw63828pp8vm9b46i2pkcbcpr4mq9nblhmpwrw2pflq0fi24xq"))))
"1hbw63828pp8vm9b46i2pkcbcpr4mq9nblhmpwrw2pflq0fi24xq"))
(patches (search-patches "qtdeclarative-disable-qmlcache.patch"))))
(build-system cmake-build-system)
(arguments
(list