From aaa55b504831b0710ed0d83b60e3bf3e16517579 Mon Sep 17 00:00:00 2001 From: Phil Date: Thu, 1 Mar 2012 12:35:00 +0000 Subject: [PATCH 1/4] gstreamer-bad: add missing deps --- gstreamer0.10-bad/PKGBUILD | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/gstreamer0.10-bad/PKGBUILD b/gstreamer0.10-bad/PKGBUILD index 617731f00..162a4d662 100644 --- a/gstreamer0.10-bad/PKGBUILD +++ b/gstreamer0.10-bad/PKGBUILD @@ -7,13 +7,14 @@ pkgbase=gstreamer0.10-bad pkgname=('gstreamer0.10-bad' 'gstreamer0.10-bad-plugins') pkgver=0.10.22 -pkgrel=6 +pkgrel=7 arch=('i686' 'x86_64') license=('LGPL' 'GPL') makedepends=('pkgconfig' 'gstreamer0.10-base>=0.10.34' 'xvidcore' 'libdca' 'bzip2' 'libdc1394' 'neon' 'faac' 'musicbrainz' 'faad2' 'libmms' 'libcdaudio' 'libmpcdec' 'mjpegtools' 'libdvdnav' 'libmodplug' 'jasper' 'liblrdf' 'libofa' 'soundtouch' 'libvdpau' - 'schroedinger' 'libass' 'libvpx' 'gsm' 'libgme' 'rtmpdump' 'libsndfile' 'librsvg') + 'schroedinger' 'libass' 'libvpx' 'gsm' 'libgme' 'rtmpdump' 'libsndfile' 'librsvg' + 'celt') url="http://gstreamer.freedesktop.org/" options=(!libtool !emptydirs) source=(${url}/src/gst-plugins-bad/gst-plugins-bad-${pkgver}.tar.bz2 @@ -44,7 +45,7 @@ package_gstreamer0.10-bad() { package_gstreamer0.10-bad-plugins() { pkgdesc="GStreamer Multimedia Framework Bad Plugins (gst-plugins-bad)" - depends=("gstreamer0.10-bad=${pkgver}" 'xvidcore' 'libdca' 'bzip2' 'libdc1394' 'neon' 'faac' 'musicbrainz' 'faad2' 'libmms' 'libcdaudio' 'libmpcdec' 'mjpegtools' 'libdvdnav' 'libmodplug' 'jasper' 'liblrdf' 'libofa' 'libvdpau' 'soundtouch' 'libass' 'schroedinger' 'libvpx' 'gsm' 'rtmpdump' 'libgme' 'libsndfile') + depends=("gstreamer0.10-bad=${pkgver}" 'xvidcore' 'libdca' 'bzip2' 'libdc1394' 'neon' 'faac' 'musicbrainz' 'faad2' 'libmms' 'libcdaudio' 'libmpcdec' 'mjpegtools' 'libdvdnav' 'libmodplug' 'jasper' 'liblrdf' 'libofa' 'libvdpau' 'soundtouch' 'libass' 'schroedinger' 'libvpx' 'gsm' 'rtmpdump' 'libgme' 'libsndfile' 'librsvg' 'celt') groups=('gstreamer0.10-plugins') cd "${srcdir}/gst-plugins-bad-${pkgver}" From 9a239510700e70aa20bf6f5051f75e3ea34cdb9c Mon Sep 17 00:00:00 2001 From: abveritas Date: Thu, 1 Mar 2012 16:05:04 +0000 Subject: [PATCH 2/4] qt rebuild to add some bug fix patches --- qt/PKGBUILD | 10 ++- qt/fix-qgraphicsscene-regression.patch | 54 ++++++++++++++ qt/improved-filter-event.patch | 98 ++++++++++++++++++++++++++ 3 files changed, 160 insertions(+), 2 deletions(-) create mode 100644 qt/fix-qgraphicsscene-regression.patch create mode 100644 qt/improved-filter-event.patch diff --git a/qt/PKGBUILD b/qt/PKGBUILD index a4cbdb0eb..561ff1772 100644 --- a/qt/PKGBUILD +++ b/qt/PKGBUILD @@ -7,7 +7,7 @@ pkgbase=qt pkgname=('qt' 'qt-private-headers') pkgver=4.8.0 -pkgrel=3 +pkgrel=4 arch=('i686' 'x86_64') url='http://qt.nokia.com/' license=('GPL3' 'LGPL') @@ -20,12 +20,16 @@ _pkgfqn="qt-everywhere-opensource-src-${pkgver}" source=("ftp://ftp.qt.nokia.com/qt/source/${_pkgfqn}.tar.gz" 'assistant.desktop' 'designer.desktop' 'linguist.desktop' 'qtconfig.desktop' + 'fix-qgraphicsscene-regression.patch' + 'improved-filter-event.patch' "http://chakra-linux.org/sources/qt/qt-everywhere-opensource-src-4.8.0-QUrl_toLocalFile.patch") md5sums=('e8a5fdbeba2927c948d9f477a6abe904' 'fc211414130ab2764132e7370f8e5caa' '85179f5e0437514f8639957e1d8baf62' 'f11852b97583610f3dbb669ebc3e21bc' '6b771c8a81dd90b45e8a79afa0e5bbfd' + '57f0e3ca3b5acd264a07c3ea3fd3f3a9' + '2ace80d6392f0ddfa2a7640597811a2c' '7bc255a36733d0fbc80c1902ade4beca') # source PKGBUILD && _create-kdeqt-patch @@ -57,7 +61,9 @@ build() { #KDE sound-notification work-around patch -Np1 -i ${srcdir}/qt-everywhere-opensource-src-4.8.0-QUrl_toLocalFile.patch - + # (QTBUG-22663) (KDEBUG#275469) + patch -p1 -i "${srcdir}"/improved-filter-event.patch + patch -p1 -i "${srcdir}"/fix-qgraphicsscene-regression.patch export QT4DIR="${srcdir}"/${_pkgfqn} export LD_LIBRARY_PATH=${QT4DIR}/lib:${LD_LIBRARY_PATH} diff --git a/qt/fix-qgraphicsscene-regression.patch b/qt/fix-qgraphicsscene-regression.patch new file mode 100644 index 000000000..3e653ff40 --- /dev/null +++ b/qt/fix-qgraphicsscene-regression.patch @@ -0,0 +1,54 @@ +From 15c14584199dc43e4a309fc331f3144009008128 Mon Sep 17 00:00:00 2001 +From: Jonathan Liu +Date: Fri, 24 Feb 2012 00:42:34 +1100 +Subject: [PATCH] Revert "Don't rely on mapFromGlobal in + QGraphicsScenePrivate::itemsAtPosition." + +This reverts commit 7c0d15a22266a425c9e9ac0120d6774e120fe01e. +The commit caused a regression whereby tooltips may be shown even if the +mouse is not over the item if it has the Qt::ItemIgnoresTransformations +flag and the QGraphicsView had been scaled. + +Task-number: QTBUG-17517 +Task-number: QTBUG-22663 +Change-Id: Ib7fd788d9712c5e659fe07182f9505a4eb135ab2 +Reviewed-by: Andy Shaw +Reviewed-by: Robin Burchell +--- + src/gui/graphicsview/qgraphicsscene.cpp | 10 +++++++--- + 1 files changed, 7 insertions(+), 3 deletions(-) + +diff --git a/src/gui/graphicsview/qgraphicsscene.cpp b/src/gui/graphicsview/qgraphicsscene.cpp +index 14c0f3c..d1cdd4f 100644 +--- a/src/gui/graphicsview/qgraphicsscene.cpp ++++ b/src/gui/graphicsview/qgraphicsscene.cpp +@@ -1084,7 +1084,7 @@ void QGraphicsScenePrivate::enableMouseTrackingOnViews() + /*! + Returns all items for the screen position in \a event. + */ +-QList QGraphicsScenePrivate::itemsAtPosition(const QPoint &/*screenPos*/, ++QList QGraphicsScenePrivate::itemsAtPosition(const QPoint &screenPos, + const QPointF &scenePos, + QWidget *widget) const + { +@@ -1093,12 +1093,16 @@ QList QGraphicsScenePrivate::itemsAtPosition(const QPoint &/*sc + if (!view) + return q->items(scenePos, Qt::IntersectsItemShape, Qt::DescendingOrder, QTransform()); + +- const QRectF pointRect(scenePos, QSizeF(1, 1)); ++ const QRectF pointRect(QPointF(widget->mapFromGlobal(screenPos)), QSizeF(1, 1)); + if (!view->isTransformed()) + return q->items(pointRect, Qt::IntersectsItemShape, Qt::DescendingOrder); + + const QTransform viewTransform = view->viewportTransform(); +- return q->items(pointRect, Qt::IntersectsItemShape, ++ if (viewTransform.type() <= QTransform::TxScale) { ++ return q->items(viewTransform.inverted().mapRect(pointRect), Qt::IntersectsItemShape, ++ Qt::DescendingOrder, viewTransform); ++ } ++ return q->items(viewTransform.inverted().map(pointRect), Qt::IntersectsItemShape, + Qt::DescendingOrder, viewTransform); + } + +-- +1.7.6 diff --git a/qt/improved-filter-event.patch b/qt/improved-filter-event.patch new file mode 100644 index 000000000..d272a16cb --- /dev/null +++ b/qt/improved-filter-event.patch @@ -0,0 +1,98 @@ +--- qt-opensource-4.8.0.old/src/gui/kernel/qapplication_x11.cpp 2011-12-16 03:22:33.918428374 -0500 ++++ qt-opensource-4.8.0.new/src/gui/kernel/qapplication_x11.cpp 2012-01-07 18:18:40.258246384 -0500 +@@ -4244,7 +4205,12 @@ bool QETWidget::translateMouseEvent(cons + && (nextEvent.xclient.message_type == ATOM(_QT_SCROLL_DONE) || + (nextEvent.xclient.message_type == ATOM(WM_PROTOCOLS) && + (Atom)nextEvent.xclient.data.l[0] == ATOM(_NET_WM_SYNC_REQUEST))))) { +- qApp->x11ProcessEvent(&nextEvent); ++ // As we may run through a significant number of a large class of non-MotionNotify ++ // events here, without returning to the event loop, first pass nextEvent to ++ // QAbstractEventDispatcher::filterEvent() to allow applications which override ++ // QAbstractEventDispatcher::filterEvent() to handle the event first. ++ if (!QAbstractEventDispatcher::instance()->filterEvent(&nextEvent)) ++ qApp->x11ProcessEvent(&nextEvent); + continue; + } else if (nextEvent.type != MotionNotify || + nextEvent.xmotion.window != event->xmotion.window || +--- qt-opensource-4.8.0.old/src/gui/kernel/qclipboard_x11.cpp 2011-12-08 00:06:02.000000000 -0500 ++++ qt-opensource-4.8.0.new/src/gui/kernel/qclipboard_x11.cpp 2012-01-07 18:30:35.298287639 -0500 +@@ -573,7 +573,11 @@ bool QX11Data::clipboardWaitForEvent(Win + + // process other clipboard events, since someone is probably requesting data from us + XEvent e; +- if (XCheckIfEvent(X11->display, &e, checkForClipboardEvents, 0)) ++ // Some applications may override QAbstractEventDispatcher::filterEvent(), so ++ // pass event to QAbstractEventDispatcher::filterEvent() before processing in ++ // x11ProcessEvent(). ++ if (XCheckIfEvent(X11->display, &e, checkForClipboardEvents, 0) && ++ !QAbstractEventDispatcher::instance()->filterEvent(&e)) + qApp->x11ProcessEvent(&e); + + now.start(); +--- qt-opensource-4.8.0.old/src/gui/kernel/qdnd_x11.cpp 2011-12-08 00:06:02.000000000 -0500 ++++ qt-opensource-4.8.0.new/src/gui/kernel/qdnd_x11.cpp 2012-01-07 18:28:13.841279478 -0500 +@@ -42,6 +42,7 @@ + #include "qplatformdefs.h" + + #include "qapplication.h" ++#include "qabstracteventdispatcher.h" + + #ifndef QT_NO_DRAGANDDROP + +@@ -1941,7 +1942,11 @@ Qt::DropAction QDragManager::drag(QDrag + timer.start(); + do { + XEvent event; +- if (XCheckTypedEvent(X11->display, ClientMessage, &event)) ++ // Some applications may override QAbstractEventDispatcher::filterEvent(), so ++ // pass event to QAbstractEventDispatcher::filterEvent() before processing in ++ // x11ProcessEvent(). ++ if (XCheckTypedEvent(X11->display, ClientMessage, &event) && ++ !QAbstractEventDispatcher::instance()->filterEvent(&event)) + qApp->x11ProcessEvent(&event); + + // sleep 50 ms, so we don't use up CPU cycles all the time. +--- qt-opensource-4.8.0.old/src/gui/kernel/qwidget_x11.cpp 2011-12-08 00:06:02.000000000 -0500 ++++ qt-opensource-4.8.0.new/src/gui/kernel/qwidget_x11.cpp 2012-01-07 18:29:26.286283657 -0500 +@@ -44,6 +44,7 @@ + #include "qdesktopwidget.h" + #include "qapplication.h" + #include "qapplication_p.h" ++#include "qabstracteventdispatcher.h" + #include "qnamespace.h" + #include "qpainter.h" + #include "qbitmap.h" +@@ -376,17 +377,22 @@ void qt_x11_wait_for_window_manager(QWid + do { + if (XEventsQueued(X11->display, QueuedAlready)) { + XNextEvent(X11->display, &ev); +- qApp->x11ProcessEvent(&ev); +- +- switch (state) { +- case Initial: +- if (ev.type == MapNotify && ev.xany.window == winid) +- state = Mapped; +- break; +- case Mapped: +- if (ev.type == Expose && ev.xany.window == winid) +- return; +- break; ++ // Some applications may override QAbstractEventDispatcher::filterEvent(), so ++ // pass event to QAbstractEventDispatcher::filterEvent() before processing in ++ // x11ProcessEvent(). ++ if (!QAbstractEventDispatcher::instance()->filterEvent(&ev)) { ++ qApp->x11ProcessEvent(&ev); ++ ++ switch (state) { ++ case Initial: ++ if (ev.type == MapNotify && ev.xany.window == winid) ++ state = Mapped; ++ break; ++ case Mapped: ++ if (ev.type == Expose && ev.xany.window == winid) ++ return; ++ break; ++ } + } + } else { + if (!XEventsQueued(X11->display, QueuedAfterFlush)) From 8d18118d9e24c583497613d113c6fb4139801fa1 Mon Sep 17 00:00:00 2001 From: Phil Date: Thu, 1 Mar 2012 19:48:10 +0000 Subject: [PATCH 3/4] chd: update power-detection hook --- chakra-hardware-detection/PKGBUILD | 2 +- .../opt/chakra/hooks/hwdetect_4_power | 8 ++------ 2 files changed, 3 insertions(+), 7 deletions(-) diff --git a/chakra-hardware-detection/PKGBUILD b/chakra-hardware-detection/PKGBUILD index df05bb647..14de005f6 100755 --- a/chakra-hardware-detection/PKGBUILD +++ b/chakra-hardware-detection/PKGBUILD @@ -8,7 +8,7 @@ source ../_buildscripts/${current_repo}-${_arch}-cfg.conf pkgname=chakra-hardware-detection -pkgver=20120203 +pkgver=20120301 pkgrel=1 pkgdesc="Hardware detection scripts for Chakra" arch=('any') diff --git a/chakra-hardware-detection/opt/chakra/hooks/hwdetect_4_power b/chakra-hardware-detection/opt/chakra/hooks/hwdetect_4_power index 5759f5980..f62ed8465 100755 --- a/chakra-hardware-detection/opt/chakra/hooks/hwdetect_4_power +++ b/chakra-hardware-detection/opt/chakra/hooks/hwdetect_4_power @@ -8,7 +8,7 @@ hwdetect_power() printhl "Enabling powersave functions" - for i in /lib/modules/"$KERNEL"/kernel/arch/x86/kernel/cpu/cpufreq/*.ko*; do + for i in /lib/modules/"$KERNEL"/kernel/drivers/cpufreq/*.ko*; do if [ -r "$i" ]; then case "$i" in *-lib.*) continue ;; esac m="${i##*/}" ; m="${m%%.*}" @@ -16,8 +16,6 @@ hwdetect_power() fi done - modprobe cpufreq-ondemand >/dev/null 2>&1 - for i in /sys/devices/system/cpu/cpu*/cpufreq/scaling_governor; do if [ -w "$i" ]; then n="${i#/sys/devices/system/cpu/cpu}" ; n="${n%/cpufreq/scaling_governor}" @@ -29,7 +27,7 @@ hwdetect_power() printhl "Enabling powersave functions" - for i in /lib/modules/"$KERNEL"/kernel/arch/x86/kernel/cpu/cpufreq/*.ko*; do + for i in /lib/modules/"$KERNEL"/kernel/drivers/cpufreq/*.ko*; do if [ -r "$i" ]; then case "$i" in *-lib.*) continue ;; esac m="${i##*/}" ; m="${m%%.*}" @@ -37,8 +35,6 @@ hwdetect_power() fi done - modprobe cpufreq-ondemand >/dev/null 2>&1 - for i in /sys/devices/system/cpu/cpu*/cpufreq/scaling_governor; do if [ -w "$i" ]; then n="${i#/sys/devices/system/cpu/cpu}" ; n="${n%/cpufreq/scaling_governor}" From 674790013d45ee2680057ada27c76c35ef940d41 Mon Sep 17 00:00:00 2001 From: Phil Date: Thu, 1 Mar 2012 20:49:18 +0000 Subject: [PATCH 4/4] gst-bad: disable celt, rsvg --- gstreamer0.10-bad/PKGBUILD | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) diff --git a/gstreamer0.10-bad/PKGBUILD b/gstreamer0.10-bad/PKGBUILD index 162a4d662..6267b03dc 100644 --- a/gstreamer0.10-bad/PKGBUILD +++ b/gstreamer0.10-bad/PKGBUILD @@ -7,14 +7,13 @@ pkgbase=gstreamer0.10-bad pkgname=('gstreamer0.10-bad' 'gstreamer0.10-bad-plugins') pkgver=0.10.22 -pkgrel=7 +pkgrel=8 arch=('i686' 'x86_64') license=('LGPL' 'GPL') makedepends=('pkgconfig' 'gstreamer0.10-base>=0.10.34' 'xvidcore' 'libdca' 'bzip2' 'libdc1394' 'neon' 'faac' 'musicbrainz' 'faad2' 'libmms' 'libcdaudio' 'libmpcdec' 'mjpegtools' 'libdvdnav' 'libmodplug' 'jasper' 'liblrdf' 'libofa' 'soundtouch' 'libvdpau' - 'schroedinger' 'libass' 'libvpx' 'gsm' 'libgme' 'rtmpdump' 'libsndfile' 'librsvg' - 'celt') + 'schroedinger' 'libass' 'libvpx' 'gsm' 'libgme' 'rtmpdump' 'libsndfile') url="http://gstreamer.freedesktop.org/" options=(!libtool !emptydirs) source=(${url}/src/gst-plugins-bad/gst-plugins-bad-${pkgver}.tar.bz2 @@ -26,7 +25,7 @@ build() { cd "${srcdir}/gst-plugins-bad-${pkgver}" patch -p1 -i "${srcdir}/gst-plugins-bad-0.10.22-mjpegtools2.0.patch" ./configure --prefix=/usr --sysconfdir=/etc --localstatedir=/var \ - --disable-static --enable-experimental \ + --disable-static --enable-experimental --disable-celt --disable-rsvg \ --with-package-name="GStreamer Bad Plugins (Chakra GNU/Linux)" \ --with-package-origin="http://www.chakra-project.org/" @@ -45,7 +44,7 @@ package_gstreamer0.10-bad() { package_gstreamer0.10-bad-plugins() { pkgdesc="GStreamer Multimedia Framework Bad Plugins (gst-plugins-bad)" - depends=("gstreamer0.10-bad=${pkgver}" 'xvidcore' 'libdca' 'bzip2' 'libdc1394' 'neon' 'faac' 'musicbrainz' 'faad2' 'libmms' 'libcdaudio' 'libmpcdec' 'mjpegtools' 'libdvdnav' 'libmodplug' 'jasper' 'liblrdf' 'libofa' 'libvdpau' 'soundtouch' 'libass' 'schroedinger' 'libvpx' 'gsm' 'rtmpdump' 'libgme' 'libsndfile' 'librsvg' 'celt') + depends=("gstreamer0.10-bad=${pkgver}" 'xvidcore' 'libdca' 'bzip2' 'libdc1394' 'neon' 'faac' 'musicbrainz' 'faad2' 'libmms' 'libcdaudio' 'libmpcdec' 'mjpegtools' 'libdvdnav' 'libmodplug' 'jasper' 'liblrdf' 'libofa' 'libvdpau' 'soundtouch' 'libass' 'schroedinger' 'libvpx' 'gsm' 'rtmpdump' 'libgme' 'libsndfile') groups=('gstreamer0.10-plugins') cd "${srcdir}/gst-plugins-bad-${pkgver}"