diff options
-rw-r--r-- | .SRCINFO | 4 | ||||
-rw-r--r-- | 0001-Avoid-double-deletion-of-mBuffer.patch | 31 | ||||
-rw-r--r-- | 0001-Fix-brcm-egl-build-by-correcting-commit-usage.patch | 30 | ||||
-rw-r--r-- | 0001-Fix-build-with-qreal-as-float.patch | 32 | ||||
-rw-r--r-- | 0001-Fix-crash-in-QQuickPixmapReader-friends.patch | 112 | ||||
-rw-r--r-- | PKGBUILD | 5 | ||||
-rw-r--r-- | qpi-proprietary.sh | 2 |
7 files changed, 36 insertions, 180 deletions
@@ -1,9 +1,9 @@ # Generated by mksrcinfo v8 -# Mon Jun 5 09:07:48 UTC 2017 +# Tue Jun 13 01:30:44 UTC 2017 pkgbase = qt-sdk-raspberry-pi pkgdesc = Qt SDK for the Raspberry Pi 1/2/3 pkgver = 5.9.0 - pkgrel = 8 + pkgrel = 9 url = http://chaos-reins.com/qpi/ install = qpi.install arch = x86_64 diff --git a/0001-Avoid-double-deletion-of-mBuffer.patch b/0001-Avoid-double-deletion-of-mBuffer.patch new file mode 100644 index 000000000000..c116b210dbb6 --- /dev/null +++ b/0001-Avoid-double-deletion-of-mBuffer.patch @@ -0,0 +1,31 @@ +From 1c4d31b99afaa6121b4265783f70b6cc9951b786 Mon Sep 17 00:00:00 2001 +From: Donald Carr <d@chaos-reins.com> +Date: Tue, 13 Jun 2017 11:19:30 -0700 +Subject: [PATCH] Avoid double deletion of mBuffer + +Both WaylandBrcmBuffer and WaylandBuffer were calling + +wl_buffer_destroy(mBuffer) + +without the subclass nulling the pointer on deletion + +Change-Id: I66a553a3d11a1ef90bbfe6ad0fb49f40fe1a0bdb +--- + src/hardwareintegration/client/brcm-egl/qwaylandbrcmeglwindow.cpp | 1 + + 1 file changed, 1 insertion(+) + +diff --git a/src/hardwareintegration/client/brcm-egl/qwaylandbrcmeglwindow.cpp b/src/hardwareintegration/client/brcm-egl/qwaylandbrcmeglwindow.cpp +index 9842f61c..f2709983 100644 +--- a/src/hardwareintegration/client/brcm-egl/qwaylandbrcmeglwindow.cpp ++++ b/src/hardwareintegration/client/brcm-egl/qwaylandbrcmeglwindow.cpp +@@ -91,6 +91,7 @@ public: + { + wl_array_release(&m_array); + wl_buffer_destroy(mBuffer); ++ mBuffer = nullptr; + } + + QSize size() const { return m_size; } +-- +2.13.1 + diff --git a/0001-Fix-brcm-egl-build-by-correcting-commit-usage.patch b/0001-Fix-brcm-egl-build-by-correcting-commit-usage.patch deleted file mode 100644 index 9cdfe7c8434d..000000000000 --- a/0001-Fix-brcm-egl-build-by-correcting-commit-usage.patch +++ /dev/null @@ -1,30 +0,0 @@ -From 458ce42f8177cc51f882fc408d8252d30ece660c Mon Sep 17 00:00:00 2001 -From: Donald Carr <sirspudd@gmail.com> -Date: Thu, 17 Nov 2016 15:04:43 -0800 -Subject: [PATCH] Fix brcm-egl build by correcting commit() usage - -Adjusted existing call to commit() in keeping with parallel changes in 5b807802 - -Change-Id: I31c17336efa9a79a5f6c1719702215db7239a97d ---- - src/hardwareintegration/client/brcm-egl/qwaylandbrcmeglwindow.cpp | 4 +--- - 1 file changed, 1 insertion(+), 3 deletions(-) - -diff --git a/src/hardwareintegration/client/brcm-egl/qwaylandbrcmeglwindow.cpp b/src/hardwareintegration/client/brcm-egl/qwaylandbrcmeglwindow.cpp -index 4d56d66..9842f61 100644 ---- a/src/hardwareintegration/client/brcm-egl/qwaylandbrcmeglwindow.cpp -+++ b/src/hardwareintegration/client/brcm-egl/qwaylandbrcmeglwindow.cpp -@@ -252,9 +252,7 @@ void QWaylandBrcmEglWindow::swapBuffers() - return; - - m_buffers[m_current]->bind(); -- attach(m_buffers[m_current], 0, 0); -- damage(QRect(QPoint(), geometry().size())); -- commit(); -+ commit(m_buffers[m_current], QRegion(0, 0, geometry().size().width(), geometry().size().height())); - - m_current = (m_current + 1) % m_count; - m_buffers[m_current]->waitForRelease(); --- -2.10.2 - diff --git a/0001-Fix-build-with-qreal-as-float.patch b/0001-Fix-build-with-qreal-as-float.patch deleted file mode 100644 index d3f460afec50..000000000000 --- a/0001-Fix-build-with-qreal-as-float.patch +++ /dev/null @@ -1,32 +0,0 @@ -From 7dbbe0deb80beb7c1d6539a1f1856803fcbf8957 Mon Sep 17 00:00:00 2001 -From: Donald Carr <d@chaos-reins.com> -Date: Mon, 22 May 2017 15:49:11 -0700 -Subject: [PATCH] Fix build with qreal as float - -Change-Id: I324c3805c953371c659903d7c4115caf7266b4ea ---- - src/plugins/scenegraph/openvg/qsgopenvghelpers.cpp | 8 ++++---- - 1 file changed, 4 insertions(+), 4 deletions(-) - -diff --git a/src/plugins/scenegraph/openvg/qsgopenvghelpers.cpp b/src/plugins/scenegraph/openvg/qsgopenvghelpers.cpp -index 6bc99d32a..ab5cfb48b 100644 ---- a/src/plugins/scenegraph/openvg/qsgopenvghelpers.cpp -+++ b/src/plugins/scenegraph/openvg/qsgopenvghelpers.cpp -@@ -220,10 +220,10 @@ void qDrawTiled(VGImage image, const QSize imageSize, const QRectF &targetRect, - void qDrawBorderImage(VGImage image, const QSizeF &textureSize, const QRectF &targetRect, const QRectF &innerTargetRect, const QRectF &subSourceRect) - { - // Create normalized margins -- QMarginsF margins(qMax(innerTargetRect.left() - targetRect.left(), 0.0), -- qMax(innerTargetRect.top() - targetRect.top(), 0.0), -- qMax(targetRect.right() - innerTargetRect.right(), 0.0), -- qMax(targetRect.bottom() - innerTargetRect.bottom(), 0.0)); -+ QMarginsF margins(qMax(innerTargetRect.left() - targetRect.left(), qreal(0.0)), -+ qMax(innerTargetRect.top() - targetRect.top(), qreal(0.0)), -+ qMax(targetRect.right() - innerTargetRect.right(), qreal(0.0)), -+ qMax(targetRect.bottom() - innerTargetRect.bottom(), qreal(0.0))); - - QRectF sourceRect(0, 0, textureSize.width(), textureSize.height()); - --- -2.13.0 - diff --git a/0001-Fix-crash-in-QQuickPixmapReader-friends.patch b/0001-Fix-crash-in-QQuickPixmapReader-friends.patch deleted file mode 100644 index 90f1786ca7fe..000000000000 --- a/0001-Fix-crash-in-QQuickPixmapReader-friends.patch +++ /dev/null @@ -1,112 +0,0 @@ -From dd39b4a61543da1a6ad66d0288702b0ea053388b Mon Sep 17 00:00:00 2001 -From: Albert Astals Cid <albert.astals@canonical.com> -Date: Wed, 5 Apr 2017 11:57:45 +0200 -Subject: [PATCH] Fix crash in QQuickPixmapReader & friends - -In 9c50216c7bbbdb2bb51d4485286bf09e12fb5b62 I made the mistake -of not copying providerOptions inside QQuickPixmapReply as -is done for requestSize and url since i thought that i could -just use the data pointer to access it, but that's not possible since -data can get deleted in other thread so we need to copy -the value - -Change-Id: Ie1d466b210108e1af1f0c8d3c618d4516448b73d ---- - src/quick/util/qquickpixmapcache.cpp | 18 +++++++++--------- - 1 file changed, 9 insertions(+), 9 deletions(-) - -diff --git a/src/quick/util/qquickpixmapcache.cpp b/src/quick/util/qquickpixmapcache.cpp -index be27cba98..86a17ffb9 100644 ---- a/src/quick/util/qquickpixmapcache.cpp -+++ b/src/quick/util/qquickpixmapcache.cpp -@@ -141,6 +141,7 @@ public: - QUrl url; - - bool loading; -+ QQuickImageProviderOptions providerOptions; - int redirectCount; - - class Event : public QEvent { -@@ -204,7 +205,7 @@ protected: - private: - friend class QQuickPixmapReaderThreadObject; - void processJobs(); -- void processJob(QQuickPixmapReply *, const QUrl &, const QString &, const QQuickImageProviderOptions &, QQuickImageProvider::ImageType, QQuickImageProvider *); -+ void processJob(QQuickPixmapReply *, const QUrl &, const QString &, QQuickImageProvider::ImageType, QQuickImageProvider *); - #if QT_CONFIG(qml_network) - void networkRequestDone(QNetworkReply *); - #endif -@@ -664,7 +665,7 @@ void QQuickPixmapReader::processJobs() - PIXMAP_PROFILE(pixmapStateChanged<QQuickProfiler::PixmapLoadingStarted>(url)); - - locker.unlock(); -- processJob(job, url, localFile, job->data->providerOptions, imageType, provider); -+ processJob(job, url, localFile, imageType, provider); - locker.relock(); - } - } -@@ -676,7 +677,6 @@ void QQuickPixmapReader::processJobs() - } - - void QQuickPixmapReader::processJob(QQuickPixmapReply *runningJob, const QUrl &url, const QString &localFile, -- const QQuickImageProviderOptions &providerOptions, - QQuickImageProvider::ImageType imageType, QQuickImageProvider *provider) - { - // fetch -@@ -707,7 +707,7 @@ void QQuickPixmapReader::processJob(QQuickPixmapReply *runningJob, const QUrl &u - { - QImage image; - if (providerV2) { -- image = providerV2->requestImage(imageId(url), &readSize, runningJob->requestSize, providerOptions); -+ image = providerV2->requestImage(imageId(url), &readSize, runningJob->requestSize, runningJob->providerOptions); - } else { - image = provider->requestImage(imageId(url), &readSize, runningJob->requestSize); - } -@@ -728,7 +728,7 @@ void QQuickPixmapReader::processJob(QQuickPixmapReply *runningJob, const QUrl &u - { - QPixmap pixmap; - if (providerV2) { -- pixmap = providerV2->requestPixmap(imageId(url), &readSize, runningJob->requestSize, providerOptions); -+ pixmap = providerV2->requestPixmap(imageId(url), &readSize, runningJob->requestSize, runningJob->providerOptions); - } else { - pixmap = provider->requestPixmap(imageId(url), &readSize, runningJob->requestSize); - } -@@ -749,7 +749,7 @@ void QQuickPixmapReader::processJob(QQuickPixmapReply *runningJob, const QUrl &u - { - QQuickTextureFactory *t; - if (providerV2) { -- t = providerV2->requestTexture(imageId(url), &readSize, runningJob->requestSize, providerOptions); -+ t = providerV2->requestTexture(imageId(url), &readSize, runningJob->requestSize, runningJob->providerOptions); - } else { - t = provider->requestTexture(imageId(url), &readSize, runningJob->requestSize); - } -@@ -772,7 +772,7 @@ void QQuickPixmapReader::processJob(QQuickPixmapReply *runningJob, const QUrl &u - { - QQuickImageResponse *response; - if (providerV2) { -- response = providerV2->requestImageResponse(imageId(url), runningJob->requestSize, providerOptions); -+ response = providerV2->requestImageResponse(imageId(url), runningJob->requestSize, runningJob->providerOptions); - } else { - QQuickAsyncImageProvider *asyncProvider = static_cast<QQuickAsyncImageProvider*>(provider); - response = asyncProvider->requestImageResponse(imageId(url), runningJob->requestSize); -@@ -794,7 +794,7 @@ void QQuickPixmapReader::processJob(QQuickPixmapReply *runningJob, const QUrl &u - QFile f(localFile); - QSize readSize; - if (f.open(QIODevice::ReadOnly)) { -- if (!readImage(url, &f, &image, &errorStr, &readSize, runningJob->requestSize, providerOptions)) -+ if (!readImage(url, &f, &image, &errorStr, &readSize, runningJob->requestSize, runningJob->providerOptions)) - errorCode = QQuickPixmapReply::Loading; - } else { - errorStr = QQuickPixmap::tr("Cannot open: %1").arg(url.toString()); -@@ -1075,7 +1075,7 @@ void QQuickPixmap::purgeCache() - } - - QQuickPixmapReply::QQuickPixmapReply(QQuickPixmapData *d) --: data(d), engineForReader(0), requestSize(d->requestSize), url(d->url), loading(false), redirectCount(0) -+: data(d), engineForReader(0), requestSize(d->requestSize), url(d->url), loading(false), providerOptions(d->providerOptions), redirectCount(0) - { - if (finishedIndex == -1) { - finishedIndex = QMetaMethod::fromSignal(&QQuickPixmapReply::finished).methodIndex(); --- -2.12.1 - @@ -49,7 +49,6 @@ fi if [[ -f target-host ]]; then unset LOCAL_PI_VER _target_host=true - _minimal=false fi if [[ -f full-build ]]; then @@ -77,7 +76,7 @@ _pkgvermajmin="5.9" _pkgverpatch=".0" # {alpha/beta/beta2/rc} _dev_suffix="" -pkgrel=8 +pkgrel=9 pkgver="${_pkgvermajmin}${_pkgverpatch}" $_build_from_head && pkgver=6.6.6 _pkgver=${pkgver} @@ -115,7 +114,6 @@ fi if $_building && $_minimal; then _skip_qtscript=true; _skip_qtwebengine=true; - pkgname="${pkgname}-minimal" fi if $_target_host; then @@ -293,6 +291,7 @@ if $_patching; then cd ${_waylanddir} #patch -p1 < ${startdir}/0001-Fix-brcm-egl-build-by-correcting-commit-usage.patch + patch -p1 < ${startdir}/0001-Avoid-double-deletion-of-mBuffer.patch #cd ${_webenginedir} # reverse patch which breaks dynamic loading of EGL/GLESvs with rpi proprietary drivers diff --git a/qpi-proprietary.sh b/qpi-proprietary.sh index 8ae3ce97b624..b847a7ae32fa 100644 --- a/qpi-proprietary.sh +++ b/qpi-proprietary.sh @@ -1,2 +1,2 @@ export QT_WAYLAND_CLIENT_BUFFER_INTEGRATION=brcm -#export QT_QPA_PLATFORM=wayland +export QT_QPA_PLATFORM=wayland |