author | Antonio Rojas
<arojas@archlinux.org> 2017-11-22 16:02:45 UTC |
committer | Antonio Rojas
<arojas@archlinux.org> 2017-11-22 16:02:45 UTC |
parent | 33ab2e879f713a9e9b220368bfc568e2ecbaecf3 |
PKGBUILD | +4 | -8 |
qtbug-64017.patch | +0 | -69 |
diff --git a/PKGBUILD b/PKGBUILD index 1fa7c5d..44a2c0b 100644 --- a/PKGBUILD +++ b/PKGBUILD @@ -3,9 +3,9 @@ # Contributor: Andrea Scarpino <andrea@archlinux.org> pkgname=qt5-declarative -_qtver=5.9.2 +_qtver=5.9.3 pkgver=${_qtver/-/} -pkgrel=2 +pkgrel=1 arch=('x86_64') url='http://qt-project.org/' license=('GPL3' 'LGPL3' 'FDL' 'custom') @@ -16,18 +16,14 @@ groups=('qt' 'qt5') conflicts=('qtchooser' 'qt5-declarative-render2d') replaces=('qt5-declarative-render2d') _pkgfqn="${pkgname/5-/}-opensource-src-${_qtver}" -source=("http://download.qt.io/official_releases/qt/${pkgver%.*}/${_qtver}/submodules/${_pkgfqn}.tar.xz" qtbug-64017.patch) -sha256sums=('0d40fd4de9c73b9173d8308c0dc37952bf5c747d87ff221962dd2f848d820b08' - 'fb2bfbef21f60943dc1c540c4d63bfc41465577b6438d6c552b993127f27d68f') +source=("http://download.qt.io/official_releases/qt/${pkgver%.*}/${_qtver}/submodules/${_pkgfqn}.tar.xz") +sha256sums=('505f66d2062c1d84ce743a0b4969531e1cf94e30970dc64efffe10f74f989407') prepare() { mkdir -p build # Use python2 for Python 2.x find -name '*.pro' -o -name '*.pri' | xargs sed -i -e 's|python -c|python2 -c|g' -e 's|python \$|python2 \$|g' - - cd ${_pkgfqn} - patch -p1 -i ../qtbug-64017.patch # Fix loading of QML applications https://bugreports.qt.io/browse/QTBUG-64017 } build() { diff --git a/qtbug-64017.patch b/qtbug-64017.patch deleted file mode 100644 index e1a1866..0000000 --- a/qtbug-64017.patch +++ /dev/null @@ -1,69 +0,0 @@ -From b96e3fa733379e58dd4225f535eb13df8bb83734 Mon Sep 17 00:00:00 2001 -From: Erik Verbruggen <erik.verbruggen@qt.io> -Date: Wed, 1 Nov 2017 12:48:12 +0100 -Subject: [PATCH] Prevent the QML engine from registering circular dependencies - -Change-Id: Ic4fd2bde745e7dfaf0909e8cc575441bb04cefa3 -Task-number: QTBUG-64017 ---- - src/qml/qml/qqmltypeloader.cpp | 10 +++++++++- - src/qml/qml/qqmltypeloader_p.h | 1 + - 2 files changed, 10 insertions(+), 1 deletion(-) - -diff --git a/src/qml/qml/qqmltypeloader.cpp b/src/qml/qml/qqmltypeloader.cpp -index 193acb04be7..d9d7c193127 100644 ---- a/src/qml/qml/qqmltypeloader.cpp -+++ b/src/qml/qml/qqmltypeloader.cpp -@@ -316,7 +316,8 @@ Returns true if the status is WaitingForDependencies. - */ - bool QQmlDataBlob::isWaiting() const - { -- return status() == WaitingForDependencies; -+ return status() == WaitingForDependencies || -+ status() == ResolvingDependencies; - } - - /*! -@@ -608,6 +609,7 @@ The default implementation does nothing. - */ - void QQmlDataBlob::allDependenciesDone() - { -+ m_data.setStatus(QQmlDataBlob::ResolvingDependencies); - } - - /*! -@@ -2499,6 +2501,8 @@ void QQmlTypeData::continueLoadFromIR() - - void QQmlTypeData::allDependenciesDone() - { -+ QQmlTypeLoader::Blob::allDependenciesDone(); -+ - if (!m_typesResolved) { - // Check that all imports were resolved - QList<QQmlError> errors; -@@ -2618,6 +2622,10 @@ void QQmlTypeData::resolveTypes() - - if (ref.type.isCompositeSingleton()) { - ref.typeData = typeLoader()->getType(ref.type.sourceUrl()); -+ if (ref.typeData->status() == QQmlDataBlob::ResolvingDependencies) { -+ // TODO: give an error message? If so, we should record and show the path of the cycle. -+ continue; -+ } - addDependency(ref.typeData); - ref.prefix = csRef.prefix; - -diff --git a/src/qml/qml/qqmltypeloader_p.h b/src/qml/qml/qqmltypeloader_p.h -index ef63e02b4f0..22ac61968fc 100644 ---- a/src/qml/qml/qqmltypeloader_p.h -+++ b/src/qml/qml/qqmltypeloader_p.h -@@ -98,6 +98,7 @@ public: - Null, // Prior to QQmlTypeLoader::load() - Loading, // Prior to data being received and dataReceived() being called - WaitingForDependencies, // While there are outstanding addDependency()s -+ ResolvingDependencies, // While resolving outstanding dependencies, to detect cycles - Complete, // Finished - Error // Error - }; --- -2.14.2 -