From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from lists.gentoo.org (pigeon.gentoo.org [208.92.234.80]) by finch.gentoo.org (Postfix) with ESMTP id 71A8A1392EF for ; Mon, 7 Jul 2014 20:47:04 +0000 (UTC) Received: from pigeon.gentoo.org (localhost [127.0.0.1]) by pigeon.gentoo.org (Postfix) with SMTP id 1982DE07F9; Mon, 7 Jul 2014 20:47:02 +0000 (UTC) Received: from smtp.gentoo.org (smtp.gentoo.org [140.211.166.183]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by pigeon.gentoo.org (Postfix) with ESMTPS id 8DE60E07F9 for ; Mon, 7 Jul 2014 20:47:01 +0000 (UTC) Received: from spoonbill.gentoo.org (spoonbill.gentoo.org [81.93.255.5]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by smtp.gentoo.org (Postfix) with ESMTPS id 4864533FDA2 for ; Mon, 7 Jul 2014 20:47:00 +0000 (UTC) Received: from localhost.localdomain (localhost [127.0.0.1]) by spoonbill.gentoo.org (Postfix) with ESMTP id 4B51018011 for ; Mon, 7 Jul 2014 20:46:58 +0000 (UTC) From: "Davide Pesavento" To: gentoo-commits@lists.gentoo.org Content-Transfer-Encoding: 8bit Content-type: text/plain; charset=UTF-8 Reply-To: gentoo-dev@lists.gentoo.org, "Davide Pesavento" Message-ID: <1404765998.1cc27193d3c0f467f208f0b876b3894ab3c7d9bc.pesa@gentoo> Subject: [gentoo-commits] proj/qt:master commit in: dev-qt/qtcore/, dev-qt/qtcore/files/ X-VCS-Repository: proj/qt X-VCS-Files: dev-qt/qtcore/files/moc-boost-lexical-cast.patch dev-qt/qtcore/files/qtcore-4.8.5-honor-ExcludeSocketNotifiers-in-glib-event-loop.patch dev-qt/qtcore/files/qtcore-4.8.5-moc-boost-lexical-cast.patch dev-qt/qtcore/files/qtcore-4.8.5-qeventdispatcher-recursive.patch dev-qt/qtcore/qtcore-4.8.6.ebuild dev-qt/qtcore/qtcore-4.8.9999.ebuild X-VCS-Directories: dev-qt/qtcore/ dev-qt/qtcore/files/ X-VCS-Committer: pesa X-VCS-Committer-Name: Davide Pesavento X-VCS-Revision: 1cc27193d3c0f467f208f0b876b3894ab3c7d9bc X-VCS-Branch: master Date: Mon, 7 Jul 2014 20:46:58 +0000 (UTC) Precedence: bulk List-Post: List-Help: List-Unsubscribe: List-Subscribe: List-Id: Gentoo Linux mail X-BeenThere: gentoo-commits@lists.gentoo.org X-Archives-Salt: 14fb9c1d-d730-4002-bbea-bc1c0e7b1901 X-Archives-Hash: c4f7a8b8acefd97450656621e02f11c4 commit: 1cc27193d3c0f467f208f0b876b3894ab3c7d9bc Author: Davide Pesavento gentoo org> AuthorDate: Mon Jul 7 20:46:38 2014 +0000 Commit: Davide Pesavento gentoo org> CommitDate: Mon Jul 7 20:46:38 2014 +0000 URL: http://git.overlays.gentoo.org/gitweb/?p=proj/qt.git;a=commit;h=1cc27193 [dev-qt/qtcore:4] Sync with portage. Package-Manager: portage-2.2.10 --- ...ExcludeSocketNotifiers-in-glib-event-loop.patch | 81 +++++++++++++++++++ ...h => qtcore-4.8.5-moc-boost-lexical-cast.patch} | 0 .../qtcore-4.8.5-qeventdispatcher-recursive.patch | 94 ++++++++++++++++++++++ dev-qt/qtcore/qtcore-4.8.6.ebuild | 4 +- dev-qt/qtcore/qtcore-4.8.9999.ebuild | 4 +- 5 files changed, 181 insertions(+), 2 deletions(-) diff --git a/dev-qt/qtcore/files/qtcore-4.8.5-honor-ExcludeSocketNotifiers-in-glib-event-loop.patch b/dev-qt/qtcore/files/qtcore-4.8.5-honor-ExcludeSocketNotifiers-in-glib-event-loop.patch new file mode 100644 index 0000000..0fcc1fa --- /dev/null +++ b/dev-qt/qtcore/files/qtcore-4.8.5-honor-ExcludeSocketNotifiers-in-glib-event-loop.patch @@ -0,0 +1,81 @@ +From 267feb2de49eed0823ca0c29f1cd5238537c7116 Mon Sep 17 00:00:00 2001 +From: Jan-Marek Glogowski +Date: Thu, 6 Mar 2014 18:44:43 +0100 +Subject: Honor ExcludeSocketNotifiers in glib event loop + +Implements QEventLoop::ExcludeSocketNotifiers in the same way +QEventLoop::X11ExcludeTimers is already implemented for the glib +event loop. + +This prevents crashes when QClipboard checks for clipboard events +and + qApp->clipboard()->setProperty( "useEventLoopWhenWaiting", true ); +is set. + +Task-number: QTBUG-34614 +Task-number: QTBUG-37380 + +Change-Id: Id4e2a74c6bdf8c3b439a4e3813d24d11368b607d +--- + src/corelib/kernel/qeventdispatcher_glib.cpp | 10 ++++++++++ + 1 file changed, 10 insertions(+) + +diff --git a/src/corelib/kernel/qeventdispatcher_glib.cpp b/src/corelib/kernel/qeventdispatcher_glib.cpp +index 0b0e308..ba522fa 100644 +--- a/src/corelib/kernel/qeventdispatcher_glib.cpp ++++ b/src/corelib/kernel/qeventdispatcher_glib.cpp +@@ -65,6 +65,7 @@ struct GPollFDWithQSocketNotifier + struct GSocketNotifierSource + { + GSource source; ++ QEventLoop::ProcessEventsFlags processEventsFlags; + QList pollfds; + }; + +@@ -80,6 +81,9 @@ static gboolean socketNotifierSourceCheck(GSource *source) + GSocketNotifierSource *src = reinterpret_cast(source); + + bool pending = false; ++ if (src->processEventsFlags & QEventLoop::ExcludeSocketNotifiers) ++ return pending; ++ + for (int i = 0; !pending && i < src->pollfds.count(); ++i) { + GPollFDWithQSocketNotifier *p = src->pollfds.at(i); + +@@ -103,6 +107,9 @@ static gboolean socketNotifierSourceDispatch(GSource *source, GSourceFunc, gpoin + QEvent event(QEvent::SockAct); + + GSocketNotifierSource *src = reinterpret_cast(source); ++ if (src->processEventsFlags & QEventLoop::ExcludeSocketNotifiers) ++ return true; ++ + for (int i = 0; i < src->pollfds.count(); ++i) { + GPollFDWithQSocketNotifier *p = src->pollfds.at(i); + +@@ -331,6 +338,7 @@ QEventDispatcherGlibPrivate::QEventDispatcherGlibPrivate(GMainContext *context) + reinterpret_cast(g_source_new(&socketNotifierSourceFuncs, + sizeof(GSocketNotifierSource))); + (void) new (&socketNotifierSource->pollfds) QList(); ++ socketNotifierSource->processEventsFlags = QEventLoop::AllEvents; + g_source_set_can_recurse(&socketNotifierSource->source, true); + g_source_attach(&socketNotifierSource->source, mainContext); + +@@ -416,6 +424,7 @@ bool QEventDispatcherGlib::processEvents(QEventLoop::ProcessEventsFlags flags) + // tell postEventSourcePrepare() and timerSource about any new flags + QEventLoop::ProcessEventsFlags savedFlags = d->timerSource->processEventsFlags; + d->timerSource->processEventsFlags = flags; ++ d->socketNotifierSource->processEventsFlags = flags; + + if (!(flags & QEventLoop::EventLoopExec)) { + // force timers to be sent at normal priority +@@ -427,6 +436,7 @@ bool QEventDispatcherGlib::processEvents(QEventLoop::ProcessEventsFlags flags) + result = g_main_context_iteration(d->mainContext, canWait); + + d->timerSource->processEventsFlags = savedFlags; ++ d->socketNotifierSource->processEventsFlags = savedFlags; + + if (canWait) + emit awake(); +-- +2.0.0 + diff --git a/dev-qt/qtcore/files/moc-boost-lexical-cast.patch b/dev-qt/qtcore/files/qtcore-4.8.5-moc-boost-lexical-cast.patch similarity index 100% rename from dev-qt/qtcore/files/moc-boost-lexical-cast.patch rename to dev-qt/qtcore/files/qtcore-4.8.5-moc-boost-lexical-cast.patch diff --git a/dev-qt/qtcore/files/qtcore-4.8.5-qeventdispatcher-recursive.patch b/dev-qt/qtcore/files/qtcore-4.8.5-qeventdispatcher-recursive.patch new file mode 100644 index 0000000..6d3bf2f --- /dev/null +++ b/dev-qt/qtcore/files/qtcore-4.8.5-qeventdispatcher-recursive.patch @@ -0,0 +1,94 @@ +--- src/corelib/kernel/qeventdispatcher_glib.cpp.sav 2014-03-28 15:26:37.000000000 +0100 ++++ src/corelib/kernel/qeventdispatcher_glib.cpp 2014-04-24 09:44:09.358659204 +0200 +@@ -255,22 +255,30 @@ struct GPostEventSource + GSource source; + QAtomicInt serialNumber; + int lastSerialNumber; ++ QEventLoop::ProcessEventsFlags processEventsFlags; + QEventDispatcherGlibPrivate *d; + }; + + static gboolean postEventSourcePrepare(GSource *s, gint *timeout) + { ++ GPostEventSource *source = reinterpret_cast(s); + QThreadData *data = QThreadData::current(); + if (!data) + return false; + ++ QEventLoop::ProcessEventsFlags excludeAllFlags ++ = QEventLoop::ExcludeUserInputEvents ++ | QEventLoop::ExcludeSocketNotifiers ++ | QEventLoop::X11ExcludeTimers; ++ if ((source->processEventsFlags & excludeAllFlags) == excludeAllFlags) ++ return false; ++ + gint dummy; + if (!timeout) + timeout = &dummy; + const bool canWait = data->canWaitLocked(); + *timeout = canWait ? -1 : 0; + +- GPostEventSource *source = reinterpret_cast(s); + return (!canWait + || (source->serialNumber != source->lastSerialNumber)); + } +@@ -284,8 +292,14 @@ static gboolean postEventSourceDispatch( + { + GPostEventSource *source = reinterpret_cast(s); + source->lastSerialNumber = source->serialNumber; +- QCoreApplication::sendPostedEvents(); +- source->d->runTimersOnceWithNormalPriority(); ++ QEventLoop::ProcessEventsFlags excludeAllFlags ++ = QEventLoop::ExcludeUserInputEvents ++ | QEventLoop::ExcludeSocketNotifiers ++ | QEventLoop::X11ExcludeTimers; ++ if ((source->processEventsFlags & excludeAllFlags) != excludeAllFlags) { ++ QCoreApplication::sendPostedEvents(); ++ source->d->runTimersOnceWithNormalPriority(); ++ } + return true; // i dunno, george... + } + +@@ -329,6 +343,7 @@ QEventDispatcherGlibPrivate::QEventDispa + postEventSource = reinterpret_cast(g_source_new(&postEventSourceFuncs, + sizeof(GPostEventSource))); + postEventSource->serialNumber = 1; ++ postEventSource->processEventsFlags = QEventLoop::AllEvents; + postEventSource->d = this; + g_source_set_can_recurse(&postEventSource->source, true); + g_source_attach(&postEventSource->source, mainContext); +@@ -423,6 +438,7 @@ bool QEventDispatcherGlib::processEvents + + // tell postEventSourcePrepare() and timerSource about any new flags + QEventLoop::ProcessEventsFlags savedFlags = d->timerSource->processEventsFlags; ++ d->postEventSource->processEventsFlags = flags; + d->timerSource->processEventsFlags = flags; + d->socketNotifierSource->processEventsFlags = flags; + +@@ -435,6 +451,7 @@ bool QEventDispatcherGlib::processEvents + while (!result && canWait) + result = g_main_context_iteration(d->mainContext, canWait); + ++ d->postEventSource->processEventsFlags = savedFlags; + d->timerSource->processEventsFlags = savedFlags; + d->socketNotifierSource->processEventsFlags = savedFlags; + +--- src/corelib/kernel/qeventdispatcher_unix.cpp.sav 2013-06-07 07:16:52.000000000 +0200 ++++ src/corelib/kernel/qeventdispatcher_unix.cpp 2014-04-24 09:43:06.927589535 +0200 +@@ -905,7 +905,15 @@ bool QEventDispatcherUNIX::processEvents + + // we are awake, broadcast it + emit awake(); +- QCoreApplicationPrivate::sendPostedEvents(0, 0, d->threadData); ++ ++ QEventLoop::ProcessEventsFlags excludeAllFlags ++ = QEventLoop::ExcludeUserInputEvents ++ | QEventLoop::ExcludeSocketNotifiers ++ | QEventLoop::X11ExcludeTimers; ++ if ((flags & excludeAllFlags) == excludeAllFlags) ++ return false; ++ if(( flags & excludeAllFlags ) != excludeAllFlags ) ++ QCoreApplicationPrivate::sendPostedEvents(0, 0, d->threadData); + + int nevents = 0; + const bool canWait = (d->threadData->canWaitLocked() diff --git a/dev-qt/qtcore/qtcore-4.8.6.ebuild b/dev-qt/qtcore/qtcore-4.8.6.ebuild index c446934..b7e20b6 100644 --- a/dev-qt/qtcore/qtcore-4.8.6.ebuild +++ b/dev-qt/qtcore/qtcore-4.8.6.ebuild @@ -29,7 +29,9 @@ PDEPEND=" " PATCHES=( - "${FILESDIR}/moc-boost-lexical-cast.patch" + "${FILESDIR}/${PN}-4.8.5-moc-boost-lexical-cast.patch" + "${FILESDIR}/${PN}-4.8.5-honor-ExcludeSocketNotifiers-in-glib-event-loop.patch" # bug 514968 + "${FILESDIR}/${PN}-4.8.5-qeventdispatcher-recursive.patch" # bug 514968 ) QT4_TARGET_DIRECTORIES=" diff --git a/dev-qt/qtcore/qtcore-4.8.9999.ebuild b/dev-qt/qtcore/qtcore-4.8.9999.ebuild index c446934..b7e20b6 100644 --- a/dev-qt/qtcore/qtcore-4.8.9999.ebuild +++ b/dev-qt/qtcore/qtcore-4.8.9999.ebuild @@ -29,7 +29,9 @@ PDEPEND=" " PATCHES=( - "${FILESDIR}/moc-boost-lexical-cast.patch" + "${FILESDIR}/${PN}-4.8.5-moc-boost-lexical-cast.patch" + "${FILESDIR}/${PN}-4.8.5-honor-ExcludeSocketNotifiers-in-glib-event-loop.patch" # bug 514968 + "${FILESDIR}/${PN}-4.8.5-qeventdispatcher-recursive.patch" # bug 514968 ) QT4_TARGET_DIRECTORIES="