Git-Url: 
http://git.frugalware.org/gitweb/gitweb.cgi?p=frugalware-current.git;a=commitdiff;h=35205e8478eff097315aabbb37f77c26285f2c4c

commit 35205e8478eff097315aabbb37f77c26285f2c4c
Author: Marius Cirsta <[email protected]>
Date:   Sat Jun 14 17:39:27 2014 +0300

qt4-4.8.6-1-x86_64

* version bump

diff --git a/source/xlib-extra/qt4/FrugalBuild 
b/source/xlib-extra/qt4/FrugalBuild
index b68859c..807b468 100644
--- a/source/xlib-extra/qt4/FrugalBuild
+++ b/source/xlib-extra/qt4/FrugalBuild
@@ -8,7 +8,7 @@ USE_DETECTDEPENDS=${USE_DETECTDEPENDS:-"n"}

pkgname=qt4
_F_archive_name=qt-everywhere-opensource-src
-pkgver=4.8.5
+pkgver=4.8.6
pkgrel=1
pkgdesc="The QT4 GUI toolkit."
url="http://qt.nokia.com/products/";
@@ -23,9 +23,12 @@ options=('scriptlet' 'nodocs')
_F_archive_grepv="-tp"
up2date="lynx --dump http://qt-project.org/downloads | grep -m1 'Qt libraries 
4\.[0-9\.]*' | sed 's/.*libraries\ \([0-9\.]*\).*/\1/'"
source=(http://download.qt-project.org/official_releases/qt/4.8/${pkgver}/$_F_archive_name-$pkgver.tar.gz
 \
-       frugalware.patch)
-sha1sums=('745f9ebf091696c0d5403ce691dc28c039d77b9e' \
-          '39b67a38c74acc9bba9940cbb39af73fef030edb')
+       frugalware.patch glib-honor-ExcludeSocketNotifiers-flag.patch 
l-qclipboard_delay.patch l-qclipboard_fix_recursive.patch)
+sha1sums=('ddf9c20ca8309a116e0466c42984238009525da6' \
+          '39b67a38c74acc9bba9940cbb39af73fef030edb' \
+          '6ae0966c0d738ac52e6f5c4bebb1a852d3ace312' \
+          '234f44abc7866840bb456a81f895f0750f50d31f' \
+          'd67a6a06333941b76c7225d3b9986c5baca35073')

export LD_LIBRARY_PATH=$Fsrcdir/$_F_archive_name-$pkgver/lib:${LD_LIBRARY_PATH}
export YACC='yacc -d'
diff --git a/source/xlib-extra/qt4/glib-honor-ExcludeSocketNotifiers-flag.patch 
b/source/xlib-extra/qt4/glib-honor-ExcludeSocketNotifiers-flag.patch
new file mode 100644
index 0000000..6949bbf
--- /dev/null
+++ b/source/xlib-extra/qt4/glib-honor-ExcludeSocketNotifiers-flag.patch
@@ -0,0 +1,63 @@
+Author: Jan-Marek Glogowski <[email protected]>
+Date:   Thu Mar 06 18:44:43 2014 +0100
+
+    Honor QEventLoop::ExcludeSocketNotifiers in glib event loop.
+
+    Implements QEventLoop::ExcludeSocketNotifiers in the same way
+    QEventLoop::X11ExcludeTimers is already implemented for the glib
+    event loop.
+
+--- qt4-x11-4.8.1.orig/src/corelib/kernel/qeventdispatcher_glib.cpp
++++ qt4-x11-4.8.1/src/corelib/kernel/qeventdispatcher_glib.cpp
+@@ -65,6 +65,7 @@ struct GPollFDWithQSocketNotifier
+ struct GSocketNotifierSource
+ {
+     GSource source;
++    QEventLoop::ProcessEventsFlags processEventsFlags;
+     QList<GPollFDWithQSocketNotifier *> pollfds;
+ };
+
+@@ -80,6 +81,9 @@ static gboolean socketNotifierSourceChec
+     GSocketNotifierSource *src = reinterpret_cast<GSocketNotifierSource 
*>(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 socketNotifierSourceDisp
+     QEvent event(QEvent::SockAct);
+
+     GSocketNotifierSource *src = reinterpret_cast<GSocketNotifierSource 
*>(source);
++    if (src->processEventsFlags & QEventLoop::ExcludeSocketNotifiers)
++        return true;
++
+     for (int i = 0; i < src->pollfds.count(); ++i) {
+         GPollFDWithQSocketNotifier *p = src->pollfds.at(i);
+
+@@ -330,6 +337,7 @@ QEventDispatcherGlibPrivate::QEventDispa
+         reinterpret_cast<GSocketNotifierSource 
*>(g_source_new(&socketNotifierSourceFuncs,
+                                                                
sizeof(GSocketNotifierSource)));
+     (void) new (&socketNotifierSource->pollfds) 
QList<GPollFDWithQSocketNotifier *>();
++    socketNotifierSource->processEventsFlags = QEventLoop::AllEvents;
+     g_source_set_can_recurse(&socketNotifierSource->source, true);
+     g_source_attach(&socketNotifierSource->source, mainContext);
+
+@@ -415,6 +423,7 @@ bool QEventDispatcherGlib::processEvents
+     // 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
+@@ -426,6 +435,7 @@ bool QEventDispatcherGlib::processEvents
+         result = g_main_context_iteration(d->mainContext, canWait);
+
+     d->timerSource->processEventsFlags = savedFlags;
++    d->socketNotifierSource->processEventsFlags = savedFlags;
+
+     if (canWait)
+         emit awake();
diff --git a/source/xlib-extra/qt4/l-qclipboard_delay.patch 
b/source/xlib-extra/qt4/l-qclipboard_delay.patch
new file mode 100644
index 0000000..22643e8
--- /dev/null
+++ b/source/xlib-extra/qt4/l-qclipboard_delay.patch
@@ -0,0 +1,12 @@
+--- src/gui/kernel/qclipboard_x11.cpp.sav      2014-04-25 09:52:03.855693228 
+0200
++++ src/gui/kernel/qclipboard_x11.cpp  2014-04-25 09:51:58.038693777 +0200
+@@ -548,7 +548,8 @@ bool QX11Data::clipboardWaitForEvent(Win
+                 return false;
+
+             XSync(X11->display, false);
+-            usleep(50000);
++            if (!XPending(X11->display))
++                usleep(5000);
+
+             now.start();
+
diff --git a/source/xlib-extra/qt4/l-qclipboard_fix_recursive.patch 
b/source/xlib-extra/qt4/l-qclipboard_fix_recursive.patch
new file mode 100644
index 0000000..6d3bf2f
--- /dev/null
+++ b/source/xlib-extra/qt4/l-qclipboard_fix_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<GPostEventSource *>(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<GPostEventSource *>(s);
+     return (!canWait
+             || (source->serialNumber != source->lastSerialNumber));
+ }
+@@ -284,8 +292,14 @@ static gboolean postEventSourceDispatch(
+ {
+     GPostEventSource *source = reinterpret_cast<GPostEventSource *>(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<GPostEventSource 
*>(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()
_______________________________________________
Frugalware-git mailing list
[email protected]
http://frugalware.org/mailman/listinfo/frugalware-git

Reply via email to