]> git.ipfire.org Git - ipfire-3.x.git/commitdiff
qt: Add patches to fix a lot of bugs.
authorSchantl Stefan <Stevee@ipfire.org>
Sun, 31 Oct 2010 21:46:16 +0000 (22:46 +0100)
committerSchantl Stefan <Stevee@ipfire.org>
Sun, 31 Oct 2010 21:46:16 +0000 (22:46 +0100)
25 files changed:
pkgs/core/qt/patches/0002-This-patch-makes-override-redirect-windows-popup-men.patch [new file with mode: 0644]
pkgs/core/qt/patches/0004-This-patch-adds-support-for-using-isystem-to-allow-p.patch [new file with mode: 0644]
pkgs/core/qt/patches/0005-When-tabs-are-inserted-or-removed-in-a-QTabBar.patch [new file with mode: 0644]
pkgs/core/qt/patches/0012-Add-context-to-tr-calls-in-QShortcut.patch [new file with mode: 0644]
pkgs/core/qt/patches/qt [new submodule]
pkgs/core/qt/patches/qt-4.6.3-bn-rendering-bz562049.patch [new file with mode: 0644]
pkgs/core/qt/patches/qt-4.6.3-bn-rendering-bz562058.patch [new file with mode: 0644]
pkgs/core/qt/patches/qt-4.6.3-indic-rendering-bz631732.patch [new file with mode: 0644]
pkgs/core/qt/patches/qt-4.6.3-indic-rendering-bz636399.patch [new file with mode: 0644]
pkgs/core/qt/patches/qt-everywhere-opensource-src-4.6.2-cups.patch [new file with mode: 0644]
pkgs/core/qt/patches/qt-everywhere-opensource-src-4.6.3-glib_eventloop_nullcheck.patch [new file with mode: 0644]
pkgs/core/qt/patches/qt-everywhere-opensource-src-4.7.0-CVE-2010-1822-crash-svg-image.patch [new file with mode: 0644]
pkgs/core/qt/patches/qt-everywhere-opensource-src-4.7.0-QTBUG-13567-QTreeView.patch [new file with mode: 0644]
pkgs/core/qt/patches/qt-everywhere-opensource-src-4.7.0-QTBUG-6185.patch [new file with mode: 0644]
pkgs/core/qt/patches/qt-everywhere-opensource-src-4.7.0-beta1-qtwebkit_pluginpath.patch [new file with mode: 0644]
pkgs/core/qt/patches/qt-everywhere-opensource-src-4.7.0-beta1-s390x.patch [new file with mode: 0644]
pkgs/core/qt/patches/qt-everywhere-opensource-src-4.7.0-beta1-uic_multilib.patch [new file with mode: 0644]
pkgs/core/qt/patches/qt-everywhere-opensource-src-4.7.0-beta2-kde4_plugins.patch [new file with mode: 0644]
pkgs/core/qt/patches/qt-everywhere-opensource-src-4.7.0-beta2-mysql_config.patch [new file with mode: 0644]
pkgs/core/qt/patches/qt-everywhere-opensource-src-4.7.0-beta2-phonon_servicesfile.patch [new file with mode: 0644]
pkgs/core/qt/patches/qt-everywhere-opensource-src-4.7.0-bpp24.patch [new file with mode: 0644]
pkgs/core/qt/patches/qt-x11-opensource-src-4.2.2-multilib-optflags.patch [new file with mode: 0644]
pkgs/core/qt/patches/qt-x11-opensource-src-4.5.0-fix-qatomic-inline-asm.patch [new file with mode: 0644]
pkgs/core/qt/patches/qt-x11-opensource-src-4.5.1-enable_ft_lcdfilter.patch [new file with mode: 0644]
pkgs/core/qt/qt.nm

diff --git a/pkgs/core/qt/patches/0002-This-patch-makes-override-redirect-windows-popup-men.patch b/pkgs/core/qt/patches/0002-This-patch-makes-override-redirect-windows-popup-men.patch
new file mode 100644 (file)
index 0000000..bb2588d
--- /dev/null
@@ -0,0 +1,67 @@
+From 339e220e29ff39b86705438b4be6f90e5618d27b Mon Sep 17 00:00:00 2001
+From: Lubos Lunak <l.lunak@kde.org>
+Date: Tue, 2 Oct 2007 16:08:32 +0200
+Subject: [PATCH 02/13] This patch makes override-redirect windows (popup menu, dropdown menu,
+ tooltip, combobox, etc.) also have more window properties like WM_CLASS,
+ so they can be used when compositing.
+
+qt-bugs@ issue : none
+bugs.kde.org number : none
+---
+ src/gui/kernel/qwidget_x11.cpp |   21 +++++++++++++++------
+ 1 files changed, 15 insertions(+), 6 deletions(-)
+
+diff --git a/src/gui/kernel/qwidget_x11.cpp b/src/gui/kernel/qwidget_x11.cpp
+index 79ee8c9..a74a849 100644
+--- a/src/gui/kernel/qwidget_x11.cpp
++++ b/src/gui/kernel/qwidget_x11.cpp
+@@ -719,6 +719,11 @@ void QWidgetPrivate::create_sys(WId window, bool initializeWindow, bool destroyO
+         Q_ASSERT(id);
+         XChangeWindowAttributes(dpy, id, CWOverrideRedirect | CWSaveUnder,
+                                 &wsa);
++        XClassHint class_hint;
++        QByteArray appName = qAppName().toLatin1();
++        class_hint.res_name = appName.data(); // application name
++        class_hint.res_class = const_cast<char *>(QX11Info::appClass());   // application class
++        XSetWMProperties(dpy, id, 0, 0, 0, 0, 0, 0, &class_hint);
+     } else if (topLevel && !desktop) {        // top-level widget
+         if (!X11->wm_client_leader)
+             create_wm_client_leader();
+@@ -769,13 +774,21 @@ void QWidgetPrivate::create_sys(WId window, bool initializeWindow, bool destroyO
+         // set EWMH window types
+         setNetWmWindowTypes();
++        // when we create a toplevel widget, the frame strut should be dirty
++        data.fstrut_dirty = 1;
++
++    } else {
++        // non-toplevel widgets don't have a frame, so no need to
++        // update the strut
++        data.fstrut_dirty = 0;
++    }
++
++    if (initializeWindow && (popup || (topLevel && !desktop))) { // properties set on all toplevel windows
+         // set _NET_WM_PID
+         long curr_pid = getpid();
+         XChangeProperty(dpy, id, ATOM(_NET_WM_PID), XA_CARDINAL, 32, PropModeReplace,
+                         (unsigned char *) &curr_pid, 1);
+-        // when we create a toplevel widget, the frame strut should be dirty
+-        data.fstrut_dirty = 1;
+         // declare the widget's window role
+         if (QTLWExtra *topData = maybeTopData()) {
+@@ -791,10 +804,6 @@ void QWidgetPrivate::create_sys(WId window, bool initializeWindow, bool destroyO
+         XChangeProperty(dpy, id, ATOM(WM_CLIENT_LEADER),
+                         XA_WINDOW, 32, PropModeReplace,
+                         (unsigned char *)&X11->wm_client_leader, 1);
+-    } else {
+-        // non-toplevel widgets don't have a frame, so no need to
+-        // update the strut
+-        data.fstrut_dirty = 0;
+     }
+     if (initializeWindow && q->internalWinId()) {
+-- 
+1.6.5.1
+
diff --git a/pkgs/core/qt/patches/0004-This-patch-adds-support-for-using-isystem-to-allow-p.patch b/pkgs/core/qt/patches/0004-This-patch-adds-support-for-using-isystem-to-allow-p.patch
new file mode 100644 (file)
index 0000000..4005734
--- /dev/null
@@ -0,0 +1,56 @@
+From 86fc0d43cdcf3232ae0e4e6f4f28cf8f1a45ede5 Mon Sep 17 00:00:00 2001
+From: Benjamin Reed <rangerrick@befunk.com>
+Date: Tue, 19 Feb 2008 17:37:37 +0100
+Subject: [PATCH 04/13] This patch adds support for using -isystem to allow putting an include
+ directory at the end of the compiler's header search path.
+
+I don't have the exact output anymore (I've since patched Qt's configure) but
+essentially, since I have pcre.h in /opt/kde4-deps/include, it was
+conflicting with Qt's (modified) pcre.h in the WebKit bits, since
+-I /opt/kde4-deps/include ends up in CXXFLAGS in the generated makefiles, it
+comes *before* the specific locations in INCPATH on the compile line, and you
+end up with a conflict with the system-installed pcre.h.
+
+Presumably, if your pcre.h is in /usr/include as on most Linux systems, you
+wouldn't notice this issue since /usr/include's already in your include path
+and people likely don't pass -I /usr/include to configure.  I suspect that on
+any platform with a regular, system-installed pcre.h (or clucene headers),
+adding -I /usr/include would exhibit this bug, just as a custom-installed
+pcre/clucene in another root would.
+
+qt-bugs@ issue : 199610
+Trolltech task ID :
+bugs.kde.org number :
+---
+ configure |    8 ++++++++
+ 1 files changed, 8 insertions(+), 0 deletions(-)
+
+diff --git a/configure b/configure
+index 2c108ad..610a201 100755
+--- a/configure
++++ b/configure
+@@ -927,6 +927,11 @@ while [ "$#" -gt 0 ]; do
+             VAL=`echo $1 | sed 's,-D,,'`
+         fi
+         ;;
++    -isystem)
++        VAR="add_isystempath"
++        shift
++        VAL="$1"
++        ;;
+     -I?*|-I)
+         VAR="add_ipath"
+         if [ "$1" = "-I" ]; then
+@@ -1890,6 +1895,9 @@ while [ "$#" -gt 0 ]; do
+     add_ipath)
+         I_FLAGS="$I_FLAGS -I\"${VAL}\""
+         ;;
++    add_isystempath)
++        I_FLAGS="$I_FLAGS -isystem \"${VAL}\""
++        ;;
+     add_lpath)
+         L_FLAGS="$L_FLAGS -L\"${VAL}\""
+         ;;
+-- 
+1.6.5.1
+
diff --git a/pkgs/core/qt/patches/0005-When-tabs-are-inserted-or-removed-in-a-QTabBar.patch b/pkgs/core/qt/patches/0005-When-tabs-are-inserted-or-removed-in-a-QTabBar.patch
new file mode 100644 (file)
index 0000000..0386a47
--- /dev/null
@@ -0,0 +1,47 @@
+From 733d1afd03908d695aa8a6518f453b9ff0e5b8a2 Mon Sep 17 00:00:00 2001
+From: Robert Knight <robertknight@gmail.com>
+Date: Sun, 20 Apr 2008 16:28:31 +0200
+Subject: [PATCH 05/13] When tabs are inserted or removed in a QTabBar,
+ QTabBarPrivate::refresh() is called to update the layout.  If the
+ tabbar widget is hidden, this just sets a boolean variable
+ (layoutDirty) and returns, so the parent widget's layout is not
+ notified about the possible geometry change.
+
+Prior to Qt 4.4 this was not a problem because the geometry was
+recalculated in QTabBar::sizeHint() if the layoutDirty variable was
+set.  In Qt 4.4 however the layout caches size hint information in
+QWidgetItemV2.  Since the cache information is not invalidated, the
+layout may end up using out-of-date size hint information to compute
+the widget size.
+
+If the QTabBar is empty when QTabBar::sizeHint() is called, it will
+return a size with a height of 0, which will be kept in the cache and
+so the tab bar will never be shown.
+
+This patch fixes the problem by calling updateGeometry() whenever the
+tab bar's layout is refreshed.
+
+qt-bugs@ issue : 208185
+Trolltech task ID : 208349
+bugs.kde.org number : 159014
+---
+ src/gui/widgets/qtabbar.cpp |    2 +-
+ 1 files changed, 1 insertions(+), 1 deletions(-)
+
+diff --git a/src/gui/widgets/qtabbar.cpp b/src/gui/widgets/qtabbar.cpp
+index 419d456..41107a0 100644
+--- a/src/gui/widgets/qtabbar.cpp
++++ b/src/gui/widgets/qtabbar.cpp
+@@ -678,8 +678,8 @@ void QTabBarPrivate::refresh()
+         layoutTabs();
+         makeVisible(currentIndex);
+         q->update();
+-        q->updateGeometry();
+     }
++    q->updateGeometry();
+ }
+ /*!
+-- 
+1.6.5.1
+
diff --git a/pkgs/core/qt/patches/0012-Add-context-to-tr-calls-in-QShortcut.patch b/pkgs/core/qt/patches/0012-Add-context-to-tr-calls-in-QShortcut.patch
new file mode 100644 (file)
index 0000000..2b552d3
--- /dev/null
@@ -0,0 +1,70 @@
+From 9eb3560cfd5cd0bc9c7bf79f2c27657ee07b8f95 Mon Sep 17 00:00:00 2001
+From: Albert Astals Cid <aacid@kde.org>
+Date: Sat, 8 Aug 2009 14:40:25 +0200
+Subject: [PATCH 12/13] Add context to tr calls in QShortcut
+
+Some languages have special rules for using "+" to concatenate strings and
+for example it needs to be Ctrl + Shift instead of Ctrl+Shift, adding
+context to these strings helps creating a more correct translation
+---
+ src/gui/kernel/qkeysequence.cpp |   20 ++++++++++----------
+ 1 files changed, 10 insertions(+), 10 deletions(-)
+
+diff --git a/src/gui/kernel/qkeysequence.cpp b/src/gui/kernel/qkeysequence.cpp
+index 894f663..c17f253 100644
+--- a/src/gui/kernel/qkeysequence.cpp
++++ b/src/gui/kernel/qkeysequence.cpp
+@@ -991,10 +991,10 @@ int QKeySequencePrivate::decodeString(const QString &str, QKeySequence::Sequence
+     QList<QModifKeyName> modifs;
+     if (nativeText) {
+-        modifs << QModifKeyName(Qt::CTRL, QShortcut::tr("Ctrl").toLower().append(QLatin1Char('+')))
+-               << QModifKeyName(Qt::SHIFT, QShortcut::tr("Shift").toLower().append(QLatin1Char('+')))
+-               << QModifKeyName(Qt::ALT, QShortcut::tr("Alt").toLower().append(QLatin1Char('+')))
+-               << QModifKeyName(Qt::META, QShortcut::tr("Meta").toLower().append(QLatin1Char('+')));
++        modifs << QModifKeyName(Qt::CTRL, QShortcut::tr("Ctrl", "Ctrl key, used for shortcuts").toLower().append(QLatin1Char('+')))
++               << QModifKeyName(Qt::SHIFT, QShortcut::tr("Shift", "Shift key, used for shortcuts").toLower().append(QLatin1Char('+')))
++               << QModifKeyName(Qt::ALT, QShortcut::tr("Alt", "Alt key, used for shortcuts").toLower().append(QLatin1Char('+')))
++               << QModifKeyName(Qt::META, QShortcut::tr("Meta", "Meta key, used for shortcuts").toLower().append(QLatin1Char('+')));
+     }
+     modifs += *gmodifs; // Test non-translated ones last
+@@ -1086,7 +1086,7 @@ QString QKeySequence::encodeString(int key)
+ static inline void addKey(QString &str, const QString &theKey, QKeySequence::SequenceFormat format)
+ {
+     if (!str.isEmpty())
+-        str += (format == QKeySequence::NativeText) ? QShortcut::tr("+")
++        str += (format == QKeySequence::NativeText) ? QShortcut::tr("+", "Symbol used to concatenate keys in shortcuts")
+                                                     : QString::fromLatin1("+");
+     str += theKey;
+ }
+@@ -1111,13 +1111,13 @@ QString QKeySequencePrivate::encodeString(int key, QKeySequence::SequenceFormat
+     {
+         // On other systems the order is Meta, Control, Alt, Shift
+         if ((key & Qt::META) == Qt::META)
+-            s = nativeText ? QShortcut::tr("Meta") : QString::fromLatin1("Meta");
++            s = nativeText ? QShortcut::tr("Meta", "Meta key, used for shortcuts") : QString::fromLatin1("Meta");
+         if ((key & Qt::CTRL) == Qt::CTRL)
+-            addKey(s, nativeText ? QShortcut::tr("Ctrl") : QString::fromLatin1("Ctrl"), format);
++            addKey(s, nativeText ? QShortcut::tr("Ctrl", "Ctrl key, used for shortcuts") : QString::fromLatin1("Ctrl"), format);
+         if ((key & Qt::ALT) == Qt::ALT)
+-            addKey(s, nativeText ? QShortcut::tr("Alt") : QString::fromLatin1("Alt"), format);
++            addKey(s, nativeText ? QShortcut::tr("Alt", "Alt key, used for shortcuts") : QString::fromLatin1("Alt"), format);
+         if ((key & Qt::SHIFT) == Qt::SHIFT)
+-            addKey(s, nativeText ? QShortcut::tr("Shift") : QString::fromLatin1("Shift"), format);
++            addKey(s, nativeText ? QShortcut::tr("Shift", "Shift key, used for shortcuts") : QString::fromLatin1("Shift"), format);
+     }
+@@ -1132,7 +1132,7 @@ QString QKeySequencePrivate::encodeString(int key, QKeySequence::SequenceFormat
+             p += QChar((key-0x10000)%400+0xdc00);
+         }
+     } else if (key >= Qt::Key_F1 && key <= Qt::Key_F35) {
+-            p = nativeText ? QShortcut::tr("F%1").arg(key - Qt::Key_F1 + 1)
++            p = nativeText ? QShortcut::tr("F%1", "Fx key, used for shortcuts").arg(key - Qt::Key_F1 + 1)
+                            : QString::fromLatin1("F%1").arg(key - Qt::Key_F1 + 1);
+     } else if (key) {
+         int i=0;
+-- 
+1.6.5.1
+
diff --git a/pkgs/core/qt/patches/qt b/pkgs/core/qt/patches/qt
new file mode 160000 (submodule)
index 0000000..76078ae
--- /dev/null
@@ -0,0 +1 @@
+Subproject commit 76078aea2e778defe516b39bd4367dedd4a71ca5
diff --git a/pkgs/core/qt/patches/qt-4.6.3-bn-rendering-bz562049.patch b/pkgs/core/qt/patches/qt-4.6.3-bn-rendering-bz562049.patch
new file mode 100644 (file)
index 0000000..0e562e4
--- /dev/null
@@ -0,0 +1,15 @@
+diff -rup qt-everywhere-opensource-src-4.6.3/src/3rdparty/harfbuzz/src/harfbuzz-indic.cpp qt-everywhere-opensource-src-4.6.3_mod/src/3rdparty/harfbuzz/src/harfbuzz-indic.cpp
+--- qt-everywhere-opensource-src-4.6.3/src/3rdparty/harfbuzz/src/harfbuzz-indic.cpp    2010-06-02 07:33:13.000000000 +0530
++++ qt-everywhere-opensource-src-4.6.3_mod/src/3rdparty/harfbuzz/src/harfbuzz-indic.cpp        2010-09-04 13:27:33.000000000 +0530
+@@ -1741,6 +1741,11 @@ static int indic_nextSyllableBoundary(HB
+           if (state == Halant && uc[pos] == 0x200d /* ZWJ */)
+               break;
+             // the control character should be the last char in the item
++          if (state == Consonant && script == HB_Script_Bengali && uc[pos-1] == 0x09B0 && uc[pos] == 0x200d /* ZWJ */)
++              break;
++          if (state == Consonant && script == HB_Script_Kannada && uc[pos-1] == 0x0CB0 && uc[pos] == 0x200d /* ZWJ */)
++              break;
++            // Bengali and Kannada has a special exception for rendering yaphala with ra (to avoid reph) see http://www.unicode.org/faq/indic.html#15
+             ++pos;
+             goto finish;
+         case Consonant:
diff --git a/pkgs/core/qt/patches/qt-4.6.3-bn-rendering-bz562058.patch b/pkgs/core/qt/patches/qt-4.6.3-bn-rendering-bz562058.patch
new file mode 100644 (file)
index 0000000..ee76927
--- /dev/null
@@ -0,0 +1,12 @@
+diff -rup qt-everywhere-opensource-src-4.7.0-beta2/src/3rdparty/harfbuzz/src/harfbuzz-indic.cpp qt-everywhere-opensource-src-4.7.0-beta2_mod/src/3rdparty/harfbuzz/src/harfbuzz-indic.cpp
+--- qt-everywhere-opensource-src-4.7.0-beta2/src/3rdparty/harfbuzz/src/harfbuzz-indic.cpp      2010-06-30 07:23:12.000000000 +0530
++++ qt-everywhere-opensource-src-4.7.0-beta2_mod/src/3rdparty/harfbuzz/src/harfbuzz-indic.cpp  2010-09-22 14:33:33.000000000 +0530
+@@ -37,7 +37,7 @@ static HB_Bool isLetter(HB_UChar16 ucs)
+                      FLAG(HB_Letter_Titlecase) |
+                      FLAG(HB_Letter_Modifier) |
+                      FLAG(HB_Letter_Other);
+-    return FLAG(HB_GetUnicodeCharCategory(ucs)) & test;
++    return (FLAG(HB_GetUnicodeCharCategory(ucs)) &  test) != 0;
+ }
+ static HB_Bool isMark(HB_UChar16 ucs)
diff --git a/pkgs/core/qt/patches/qt-4.6.3-indic-rendering-bz631732.patch b/pkgs/core/qt/patches/qt-4.6.3-indic-rendering-bz631732.patch
new file mode 100644 (file)
index 0000000..507f876
--- /dev/null
@@ -0,0 +1,14 @@
+diff -rup qt-everywhere-opensource-src-4.6.3/src/3rdparty/harfbuzz/src/harfbuzz-indic.cpp qt-everywhere-opensource-src-4.6.3_mod/src/3rdparty/harfbuzz/src/harfbuzz-indic.cpp
+--- qt-everywhere-opensource-src-4.6.3/src/3rdparty/harfbuzz/src/harfbuzz-indic.cpp    2010-06-02 07:33:13.000000000 +0530
++++ qt-everywhere-opensource-src-4.6.3_mod/src/3rdparty/harfbuzz/src/harfbuzz-indic.cpp        2010-09-10 18:37:23.000000000 +0530
+@@ -1779,10 +1779,6 @@ static int indic_nextSyllableBoundary(HB
+         case Matra:
+             if (state == Consonant || state == Nukta)
+                 break;
+-            if (state == Matra) {
+-                // ### needs proper testing for correct two/three part matras
+-                break;
+-            }
+             // ### not sure if this is correct. If it is, does it apply only to Bengali or should
+             // it work for all Indic languages?
+             // the combination Independent_A + Vowel Sign AA is allowed.
diff --git a/pkgs/core/qt/patches/qt-4.6.3-indic-rendering-bz636399.patch b/pkgs/core/qt/patches/qt-4.6.3-indic-rendering-bz636399.patch
new file mode 100644 (file)
index 0000000..bf49f30
--- /dev/null
@@ -0,0 +1,30 @@
+diff -rup qt-everywhere-opensource-src-4.7.0-beta2/src/3rdparty/harfbuzz/src/harfbuzz-indic.cpp qt-everywhere-opensource-src-4.7.0-beta2_mod/src/3rdparty/harfbuzz/src/harfbuzz-indic.cpp
+--- qt-everywhere-opensource-src-4.7.0-beta2/src/3rdparty/harfbuzz/src/harfbuzz-indic.cpp      2010-06-30 07:23:12.000000000 +0530
++++ qt-everywhere-opensource-src-4.7.0-beta2_mod/src/3rdparty/harfbuzz/src/harfbuzz-indic.cpp  2010-09-20 11:40:58.000000000 +0530
+@@ -660,18 +660,18 @@ static const unsigned char indicPosition
+     None, None, None, None,
+     None, None, None, None,
+-    None, None, None, None,
+-    None, None, None, None,
+-    None, None, None, None,
++    None, Below, Below, Below,
++    Below, Below, Below, Below,
++    Below, Below, None, Below,
+-    None, None, None, None,
+-    Below, None, None, None,
+-    Below, None, None, None,
++    Below, Below, Below, Below,
++    Below, Below, Below, Below,
++    Below, None, Below, Below,
+     Below, Below, Below, Post,
+     Below, None, Below, Below,
+-    None, None, None, None,
+-    None, None, None, None,
++    None, Below, Below, Below,
++    Below, Below, None, None,
+     None, None, Post, Above,
+     Post, Below, Below, Below,
diff --git a/pkgs/core/qt/patches/qt-everywhere-opensource-src-4.6.2-cups.patch b/pkgs/core/qt/patches/qt-everywhere-opensource-src-4.6.2-cups.patch
new file mode 100644 (file)
index 0000000..e0305e1
--- /dev/null
@@ -0,0 +1,84 @@
+diff -ur qt-everywhere-opensource-src-4.6.2/src/gui/dialogs/qprintdialog_unix.cpp qt-everywhere-opensource-src-4.6.2-cups/src/gui/dialogs/qprintdialog_unix.cpp
+--- qt-everywhere-opensource-src-4.6.2/src/gui/dialogs/qprintdialog_unix.cpp   2010-02-11 16:55:22.000000000 +0100
++++ qt-everywhere-opensource-src-4.6.2-cups/src/gui/dialogs/qprintdialog_unix.cpp      2010-02-28 04:34:16.000000000 +0100
+@@ -569,6 +569,32 @@
+ void QPrintDialogPrivate::selectPrinter(QCUPSSupport *cups)
+ {
+     options.duplex->setEnabled(cups && cups->ppdOption("Duplex"));
++
++    if (cups) {
++        const ppd_option_t* duplex = cups->ppdOption("Duplex");
++        if (duplex) {
++            // copy default ppd duplex to qt dialog
++            if (qstrcmp(duplex->defchoice, "DuplexTumble") == 0)
++                options.duplexShort->setChecked(true);
++            else if (qstrcmp(duplex->defchoice, "DuplexNoTumble") == 0)
++                options.duplexLong->setChecked(true);
++            else
++                options.noDuplex->setChecked(true);
++        }
++
++        if (cups->currentPPD()) {
++            // set default color
++            if (cups->currentPPD()->color_device)
++                options.color->setChecked(true);
++            else
++                options.grayscale->setChecked(true);
++        }
++
++        // set collation
++        const ppd_option_t *collate = cups->ppdOption("Collate");
++        if (collate)
++            options.collate->setChecked(qstrcmp(collate->defchoice, "True")==0);
++    }
+ }
+ #endif
+diff -ur qt-everywhere-opensource-src-4.6.2/src/gui/painting/qprinter.cpp qt-everywhere-opensource-src-4.6.2-cups/src/gui/painting/qprinter.cpp
+--- qt-everywhere-opensource-src-4.6.2/src/gui/painting/qprinter.cpp   2010-02-11 16:55:22.000000000 +0100
++++ qt-everywhere-opensource-src-4.6.2-cups/src/gui/painting/qprinter.cpp      2010-02-28 04:55:15.000000000 +0100
+@@ -627,6 +627,44 @@
+                && d_ptr->paintEngine->type() != QPaintEngine::MacPrinter) {
+         setOutputFormat(QPrinter::PdfFormat);
+     }
++
++#if !defined(QT_NO_CUPS) && !defined(QT_NO_LIBRARY)
++    // fill in defaults from ppd file
++    QCUPSSupport cups;
++
++    int printernum = -1;
++    for (int i = 0; i < cups.availablePrintersCount(); i++) {
++        if (printerName().toLocal8Bit() == cups.availablePrinters()[i].name)
++            printernum = i;
++    }
++    if (printernum >= 0) {
++        cups.setCurrentPrinter(printernum);
++
++        const ppd_option_t* duplex = cups.ppdOption("Duplex");
++        if (duplex) {
++            // copy default ppd duplex to qt dialog
++            if (qstrcmp(duplex->defchoice, "DuplexTumble") == 0)
++                setDuplex(DuplexShortSide);
++            else if (qstrcmp(duplex->defchoice, "DuplexNoTumble") == 0)
++                setDuplex(DuplexLongSide);
++            else
++                setDuplex(DuplexNone);
++        }
++
++        if (cups.currentPPD()) {
++            // set default color
++            if (cups.currentPPD()->color_device)
++                setColorMode(Color);
++            else
++                setColorMode(GrayScale);
++        }
++
++        // set collation
++        const ppd_option_t *collate = cups.ppdOption("Collate");
++        if (collate)
++            setCollateCopies(qstrcmp(collate->defchoice, "True")==0);
++    }
++#endif
+ }
+ /*!
diff --git a/pkgs/core/qt/patches/qt-everywhere-opensource-src-4.6.3-glib_eventloop_nullcheck.patch b/pkgs/core/qt/patches/qt-everywhere-opensource-src-4.6.3-glib_eventloop_nullcheck.patch
new file mode 100644 (file)
index 0000000..f0c9eaa
--- /dev/null
@@ -0,0 +1,21 @@
+diff -up qt-everywhere-opensource-src-4.6.3/src/gui/kernel/qguieventdispatcher_glib.cpp.glib_eventloop_nullcheck qt-everywhere-opensource-src-4.6.3/src/gui/kernel/qguieventdispatcher_glib.cpp
+--- qt-everywhere-opensource-src-4.6.3/src/gui/kernel/qguieventdispatcher_glib.cpp.glib_eventloop_nullcheck    2010-06-01 21:03:15.000000000 -0500
++++ qt-everywhere-opensource-src-4.6.3/src/gui/kernel/qguieventdispatcher_glib.cpp     2010-06-29 14:58:12.299073784 -0500
+@@ -76,7 +76,7 @@ static gboolean x11EventSourcePrepare(GS
+     GX11EventSource *source = reinterpret_cast<GX11EventSource *>(s);
+     return (XEventsQueued(X11->display, QueuedAfterFlush)
+             || (!(source->flags & QEventLoop::ExcludeUserInputEvents)
+-                && !source->d->queuedUserInputEvents.isEmpty()));
++                && source->d && !source->d->queuedUserInputEvents.isEmpty()));
+ }
+ static gboolean x11EventSourceCheck(GSource *s)
+@@ -84,7 +84,7 @@ static gboolean x11EventSourceCheck(GSou
+     GX11EventSource *source = reinterpret_cast<GX11EventSource *>(s);
+     return (XEventsQueued(X11->display, QueuedAfterFlush)
+             || (!(source->flags & QEventLoop::ExcludeUserInputEvents)
+-                && !source->d->queuedUserInputEvents.isEmpty()));
++                && source->d && !source->d->queuedUserInputEvents.isEmpty()));
+ }
+ static gboolean x11EventSourceDispatch(GSource *s, GSourceFunc callback, gpointer user_data)
diff --git a/pkgs/core/qt/patches/qt-everywhere-opensource-src-4.7.0-CVE-2010-1822-crash-svg-image.patch b/pkgs/core/qt/patches/qt-everywhere-opensource-src-4.7.0-CVE-2010-1822-crash-svg-image.patch
new file mode 100644 (file)
index 0000000..32b9713
--- /dev/null
@@ -0,0 +1,26 @@
+diff -up qt-everywhere-opensource-src-4.7.0/src/3rdparty/webkit/WebCore/svg/SVGGElement.cpp.CVE-2010-1822-crash-svg-image qt-everywhere-opensource-src-4.7.0/src/3rdparty/webkit/WebCore/svg/SVGGElement.cpp
+--- qt-everywhere-opensource-src-4.7.0/src/3rdparty/webkit/WebCore/svg/SVGGElement.cpp.CVE-2010-1822-crash-svg-image   2010-09-10 11:05:20.000000000 +0200
++++ qt-everywhere-opensource-src-4.7.0/src/3rdparty/webkit/WebCore/svg/SVGGElement.cpp 2010-10-25 14:22:06.542771102 +0200
+@@ -86,6 +86,11 @@ RenderObject* SVGGElement::createRendere
+     return new (arena) RenderSVGTransformableContainer(this);
+ }
++bool SVGGElement::rendererIsNeeded(RenderStyle*)
++{
++    return parentNode() && parentNode()->isSVGElement(); 
++}
++
+ }
+ #endif // ENABLE(SVG)
+diff -up qt-everywhere-opensource-src-4.7.0/src/3rdparty/webkit/WebCore/svg/SVGGElement.h.CVE-2010-1822-crash-svg-image qt-everywhere-opensource-src-4.7.0/src/3rdparty/webkit/WebCore/svg/SVGGElement.h
+--- qt-everywhere-opensource-src-4.7.0/src/3rdparty/webkit/WebCore/svg/SVGGElement.h.CVE-2010-1822-crash-svg-image     2010-09-10 11:05:21.000000000 +0200
++++ qt-everywhere-opensource-src-4.7.0/src/3rdparty/webkit/WebCore/svg/SVGGElement.h   2010-10-25 14:28:37.467854695 +0200
+@@ -43,6 +43,7 @@ namespace WebCore {
+         virtual void parseMappedAttribute(MappedAttribute*);
+         virtual void svgAttributeChanged(const QualifiedName&);
+         virtual void synchronizeProperty(const QualifiedName&);
++        virtual bool rendererIsNeeded(RenderStyle*);
+         virtual void childrenChanged(bool changedByParser = false, Node* beforeChange = 0, Node* afterChange = 0, int childCountDelta = 0);
+         virtual RenderObject* createRenderer(RenderArena*, RenderStyle*);
diff --git a/pkgs/core/qt/patches/qt-everywhere-opensource-src-4.7.0-QTBUG-13567-QTreeView.patch b/pkgs/core/qt/patches/qt-everywhere-opensource-src-4.7.0-QTBUG-13567-QTreeView.patch
new file mode 100644 (file)
index 0000000..d517de5
--- /dev/null
@@ -0,0 +1,31 @@
+From 6da6b7099d4e0b49329793e4b90703ec3d868048 Mon Sep 17 00:00:00 2001
+From: Frank Reininghaus <frank78ac@googlemail.com>
+Date: Wed, 22 Sep 2010 10:19:59 +0200
+Subject: [PATCH] QTreeView: do not scroll to top if last item is removed
+
+When the last item is the current item and is removed,
+QTreeViewPrivate::updateScrollBars() is called after QTreeViewPrivate's
+viewItems member is cleared. This commit makes sure that viewItems is
+restored by calling QTreeView::doItemsLayout() in this case, preventing
+that the scroll bar range is set to zero temporarily and the view is
+scrolled to the top unexpectedly (this was a regression in 4.7.0:
+QTBUG-13567).
+
+Merge-request: 2481
+Reviewed-by: Olivier Goffart <olivier.goffart@nokia.com>
+
+diff --git a/src/gui/itemviews/qtreeview.cpp b/src/gui/itemviews/qtreeview.cpp
+index b797776..40b51fe 100644
+--- a/src/gui/itemviews/qtreeview.cpp
++++ b/src/gui/itemviews/qtreeview.cpp
+@@ -3435,6 +3435,10 @@ void QTreeViewPrivate::updateScrollBars()
+     if (!viewportSize.isValid())
+         viewportSize = QSize(0, 0);
++    if (viewItems.isEmpty()) {
++        q->doItemsLayout();
++    }
++
+     int itemsInViewport = 0;
+     if (uniformRowHeights) {
+         if (defaultItemHeight <= 0)
diff --git a/pkgs/core/qt/patches/qt-everywhere-opensource-src-4.7.0-QTBUG-6185.patch b/pkgs/core/qt/patches/qt-everywhere-opensource-src-4.7.0-QTBUG-6185.patch
new file mode 100644 (file)
index 0000000..0b99d08
--- /dev/null
@@ -0,0 +1,34 @@
+From 9e9a7bc29319d52c3e563bc2c5282cb7e6890eba Mon Sep 17 00:00:00 2001
+From: Denis Dzyubenko <denis.dzyubenko@nokia.com>
+Date: Wed, 29 Sep 2010 14:02:10 +0200
+Subject: [PATCH] Fixes cursor shape when widget becomes native on X11.
+
+When a native window handle is created for a widget that has override
+cursor set, we should reset the cursor on the parent and set the cursor
+on the new window handle.
+
+Task-number: QTBUG-6185
+Reviewed-by: Olivier Goffart
+---
+ src/gui/kernel/qwidget_x11.cpp |    4 +++-
+ 1 files changed, 3 insertions(+), 1 deletions(-)
+
+diff --git a/src/gui/kernel/qwidget_x11.cpp b/src/gui/kernel/qwidget_x11.cpp
+index e01489f..8d80e10 100644
+--- a/src/gui/kernel/qwidget_x11.cpp
++++ b/src/gui/kernel/qwidget_x11.cpp
+@@ -889,8 +889,10 @@ void QWidgetPrivate::create_sys(WId window, bool initializeWindow, bool destroyO
+                 q->setWindowOpacity(maybeTopData()->opacity/255.);
+         }
+-    } else if (q->testAttribute(Qt::WA_SetCursor) && q->internalWinId()) {
++    } else if (q->internalWinId()) {
+         qt_x11_enforce_cursor(q);
++        if (QWidget *p = q->parentWidget()) // reset the cursor on the native parent
++            qt_x11_enforce_cursor(p);
+     }
+     if (extra && !extra->mask.isEmpty() && q->internalWinId())
+-- 
+1.6.1
+
diff --git a/pkgs/core/qt/patches/qt-everywhere-opensource-src-4.7.0-beta1-qtwebkit_pluginpath.patch b/pkgs/core/qt/patches/qt-everywhere-opensource-src-4.7.0-beta1-qtwebkit_pluginpath.patch
new file mode 100644 (file)
index 0000000..016b3b4
--- /dev/null
@@ -0,0 +1,19 @@
+diff -up qt-everywhere-opensource-src-4.7.0-beta1/src/3rdparty/webkit/WebCore/plugins/PluginDatabase.cpp.pluginpath qt-everywhere-opensource-src-4.7.0-beta1/src/3rdparty/webkit/WebCore/plugins/PluginDatabase.cpp
+--- qt-everywhere-opensource-src-4.7.0-beta1/src/3rdparty/webkit/WebCore/plugins/PluginDatabase.cpp.pluginpath 2010-05-03 19:43:20.000000000 -0500
++++ qt-everywhere-opensource-src-4.7.0-beta1/src/3rdparty/webkit/WebCore/plugins/PluginDatabase.cpp    2010-06-18 10:02:37.004788646 -0500
+@@ -345,6 +345,7 @@ Vector<String> PluginDatabase::defaultPl
+     paths.append("/usr/lib/firefox/plugins");
+     paths.append("/usr/lib64/browser-plugins");
+     paths.append("/usr/lib/browser-plugins");
++    paths.append("/usr/lib/mozilla/plugins-wrapped");
+     paths.append("/usr/lib/mozilla/plugins");
+     paths.append("/usr/local/netscape/plugins");
+     paths.append("/opt/mozilla/plugins");
+@@ -355,6 +356,7 @@ Vector<String> PluginDatabase::defaultPl
+     paths.append("/usr/lib/netscape/plugins-libc5");
+     paths.append("/usr/lib/netscape/plugins-libc6");
+     paths.append("/usr/lib64/netscape/plugins");
++    paths.append("/usr/lib64/mozilla/plugins-wrapped");
+     paths.append("/usr/lib64/mozilla/plugins");
+     paths.append("/usr/lib/nsbrowser/plugins");
+     paths.append("/usr/lib64/nsbrowser/plugins");
diff --git a/pkgs/core/qt/patches/qt-everywhere-opensource-src-4.7.0-beta1-s390x.patch b/pkgs/core/qt/patches/qt-everywhere-opensource-src-4.7.0-beta1-s390x.patch
new file mode 100644 (file)
index 0000000..1eedf83
--- /dev/null
@@ -0,0 +1,61 @@
+diff -up qt-everywhere-opensource-src-4.7.0-beta1/src/3rdparty/javascriptcore/JavaScriptCore/wtf/Platform.h.s390x qt-everywhere-opensource-src-4.7.0-beta1/src/3rdparty/javascriptcore/JavaScriptCore/wtf/Platform.h
+--- qt-everywhere-opensource-src-4.7.0-beta1/src/3rdparty/javascriptcore/JavaScriptCore/wtf/Platform.h.s390x   2010-06-16 13:54:50.000000000 +0200
++++ qt-everywhere-opensource-src-4.7.0-beta1/src/3rdparty/javascriptcore/JavaScriptCore/wtf/Platform.h 2010-06-16 13:53:43.000000000 +0200
+@@ -179,6 +179,18 @@
+ #define WTF_CPU_SPARC 1
+ #endif
++/* CPU(S390X) - S390 64-bit */                                                                                  
++#if defined(__s390x__)                                                                                          
++#define WTF_CPU_S390X 1                                                                                         
++#define WTF_CPU_BIG_ENDIAN 1                                                                                    
++#endif                                                                                                          
++                                                                                                                
++/* CPU(S390) - S390 32-bit */                                                                                   
++#if defined(__s390__)                                                                                           
++#define WTF_CPU_S390 1                                                                                          
++#define WTF_CPU_BIG_ENDIAN 1                                                                                    
++#endif                                                                                                          
++   
+ /* CPU(X86) - i386 / x86 32-bit */
+ #if   defined(__i386__) \
+     || defined(i386)     \
+@@ -860,7 +872,7 @@
+ #endif
+ #if !defined(WTF_USE_JSVALUE64) && !defined(WTF_USE_JSVALUE32) && !defined(WTF_USE_JSVALUE32_64)
+-#if (CPU(X86_64) && (OS(UNIX) || OS(WINDOWS) || OS(SOLARIS) || OS(HPUX))) || (CPU(IA64) && !CPU(IA64_32)) || CPU(ALPHA) || CPU(AIX64) || CPU(SPARC64)
++#if (CPU(X86_64) && (OS(UNIX) || OS(WINDOWS) || OS(SOLARIS) || OS(HPUX))) || (CPU(IA64) && !CPU(IA64_32)) || CPU(ALPHA) || CPU(AIX64) || CPU(SPARC64) || CPU(S390X)
+ #define WTF_USE_JSVALUE64 1
+ #elif CPU(ARM) || CPU(PPC64)
+ #define WTF_USE_JSVALUE32 1
+diff -up qt-everywhere-opensource-src-4.7.0-beta1/src/3rdparty/webkit/JavaScriptCore/wtf/Platform.h.s390x qt-everywhere-opensource-src-4.7.0-beta1/src/3rdparty/webkit/JavaScriptCore/wtf/Platform.h
+--- qt-everywhere-opensource-src-4.7.0-beta1/src/3rdparty/webkit/JavaScriptCore/wtf/Platform.h.s390x   2010-06-16 13:49:00.000000000 +0200
++++ qt-everywhere-opensource-src-4.7.0-beta1/src/3rdparty/webkit/JavaScriptCore/wtf/Platform.h 2010-06-16 13:50:01.000000000 +0200
+@@ -169,6 +169,18 @@
+ #define WTF_CPU_SPARC 1
+ #endif
++/* CPU(S390X) - S390 64-bit */                                                                                  
++#if defined(__s390x__)                                                                                          
++#define WTF_CPU_S390X 1                                                                                         
++#define WTF_CPU_BIG_ENDIAN 1                                                                                    
++#endif                                                                                                          
++                                                                                                                
++/* CPU(S390) - S390 32-bit */                                                                                   
++#if defined(__s390__)                                                                                           
++#define WTF_CPU_S390 1                                                                                          
++#define WTF_CPU_BIG_ENDIAN 1                                                                                    
++#endif                                                                                                          
++
+ /* CPU(X86) - i386 / x86 32-bit */
+ #if   defined(__i386__) \
+     || defined(i386)     \
+@@ -874,6 +886,7 @@
+ #if (CPU(X86_64) && (OS(UNIX) || OS(WINDOWS))) \
+     || (CPU(IA64) && !CPU(IA64_32)) \
+     || CPU(ALPHA) \
++    || CPU(S390X) \
+     || CPU(SPARC64)
+ #define WTF_USE_JSVALUE64 1
+ #elif CPU(ARM) || CPU(PPC64) || CPU(MIPS)
diff --git a/pkgs/core/qt/patches/qt-everywhere-opensource-src-4.7.0-beta1-uic_multilib.patch b/pkgs/core/qt/patches/qt-everywhere-opensource-src-4.7.0-beta1-uic_multilib.patch
new file mode 100644 (file)
index 0000000..09670c1
--- /dev/null
@@ -0,0 +1,36 @@
+diff -up qt-everywhere-opensource-src-4.7.0-beta1/src/tools/uic3/embed.cpp.uic_multilib qt-everywhere-opensource-src-4.7.0-beta1/src/tools/uic3/embed.cpp
+--- qt-everywhere-opensource-src-4.7.0-beta1/src/tools/uic3/embed.cpp.uic_multilib     2010-05-03 19:43:25.000000000 -0500
++++ qt-everywhere-opensource-src-4.7.0-beta1/src/tools/uic3/embed.cpp  2010-06-25 14:11:21.815474310 -0500
+@@ -152,7 +152,7 @@ void Ui3Reader::embed(const char *projec
+     for ( it = images.begin(); it != images.end(); ++it )
+         out << "**      " << *it << "\n";
+     out << "**\n";
+-    out << "** Created: " << QDateTime::currentDateTime().toString() << "\n";
++    out << "** Created: " << "\n";
+     out << "**      by: The User Interface Compiler for Qt version " << QT_VERSION_STR << "\n";
+     out << "**\n";
+     out << "** WARNING! All changes made in this file will be lost!\n";
+diff -up qt-everywhere-opensource-src-4.7.0-beta1/src/tools/uic3/uic.cpp.uic_multilib qt-everywhere-opensource-src-4.7.0-beta1/src/tools/uic3/uic.cpp
+--- qt-everywhere-opensource-src-4.7.0-beta1/src/tools/uic3/uic.cpp.uic_multilib       2010-05-03 19:43:25.000000000 -0500
++++ qt-everywhere-opensource-src-4.7.0-beta1/src/tools/uic3/uic.cpp    2010-06-25 14:11:32.910460623 -0500
+@@ -146,7 +146,7 @@ void Uic::writeCopyrightHeader(DomUI *ui
+         out << "/********************************************************************************\n";
+         out << "** Form generated from reading UI file '" << QFileInfo(opt.inputFile).fileName() << "'\n";
+         out << "**\n";
+-        out << "** Created: " << QDateTime::currentDateTime().toString() << "\n";
++        out << "** Created: " << "\n";
+         out << "**      " << QString::fromLatin1("by: Qt User Interface Compiler version %1\n").arg(QLatin1String(QT_VERSION_STR));
+         out << "**\n";
+         out << "** WARNING! All changes made in this file will be lost when recompiling UI file!\n";
+diff -up qt-everywhere-opensource-src-4.7.0-beta1/src/tools/uic/uic.cpp.uic_multilib qt-everywhere-opensource-src-4.7.0-beta1/src/tools/uic/uic.cpp
+--- qt-everywhere-opensource-src-4.7.0-beta1/src/tools/uic/uic.cpp.uic_multilib        2010-05-03 19:43:25.000000000 -0500
++++ qt-everywhere-opensource-src-4.7.0-beta1/src/tools/uic/uic.cpp     2010-06-25 14:10:45.360711498 -0500
+@@ -139,7 +139,7 @@ void Uic::writeCopyrightHeader(DomUI *ui
+         out << "/********************************************************************************\n";
+         out << "** Form generated from reading UI file '" << QFileInfo(opt.inputFile).fileName() << "'\n";
+         out << "**\n";
+-        out << "** Created: " << QDateTime::currentDateTime().toString() << "\n";
++        out << "** Created: " << "\n";
+         out << "**      " << QString::fromLatin1("by: Qt User Interface Compiler version %1\n").arg(QLatin1String(QT_VERSION_STR));
+         out << "**\n";
+         out << "** WARNING! All changes made in this file will be lost when recompiling UI file!\n";
diff --git a/pkgs/core/qt/patches/qt-everywhere-opensource-src-4.7.0-beta2-kde4_plugins.patch b/pkgs/core/qt/patches/qt-everywhere-opensource-src-4.7.0-beta2-kde4_plugins.patch
new file mode 100644 (file)
index 0000000..822ace8
--- /dev/null
@@ -0,0 +1,19 @@
+diff -up qt-everywhere-opensource-src-4.7.0-beta2/src/corelib/kernel/qcoreapplication.cpp.kde4_plugins qt-everywhere-opensource-src-4.7.0-beta2/src/corelib/kernel/qcoreapplication.cpp
+--- qt-everywhere-opensource-src-4.7.0-beta2/src/corelib/kernel/qcoreapplication.cpp.kde4_plugins      2010-06-29 20:53:15.000000000 -0500
++++ qt-everywhere-opensource-src-4.7.0-beta2/src/corelib/kernel/qcoreapplication.cpp   2010-07-08 08:24:12.714604479 -0500
+@@ -2262,6 +2262,15 @@ QStringList QCoreApplication::libraryPat
+             if (!app_libpaths->contains(installPathPlugins))
+                 app_libpaths->append(installPathPlugins);
+         }
++
++        // hack in support for kde4 plugin paths -- Rex
++        QString kde4PathPlugins = QLibraryInfo::location(QLibraryInfo::LibrariesPath) + QLatin1String("/kde4/plugins");
++        if (QFile::exists(kde4PathPlugins)) {
++            // Make sure we convert from backslashes to slashes.
++            // kde4PathPlugins = QDir(kde4PathPlugins).canonicalPath();
++            if (!app_libpaths->contains(kde4PathPlugins))
++                app_libpaths->append(kde4PathPlugins);
++        }
+ #endif
+         // If QCoreApplication is not yet instantiated,
diff --git a/pkgs/core/qt/patches/qt-everywhere-opensource-src-4.7.0-beta2-mysql_config.patch b/pkgs/core/qt/patches/qt-everywhere-opensource-src-4.7.0-beta2-mysql_config.patch
new file mode 100644 (file)
index 0000000..47c066b
--- /dev/null
@@ -0,0 +1,19 @@
+diff -up qt-everywhere-opensource-src-4.7.0-beta2/configure.mysql_config qt-everywhere-opensource-src-4.7.0-beta2/configure
+--- qt-everywhere-opensource-src-4.7.0-beta2/configure.mysql_config    2010-06-29 20:53:10.000000000 -0500
++++ qt-everywhere-opensource-src-4.7.0-beta2/configure 2010-07-08 08:30:32.148864934 -0500
+@@ -4849,8 +4849,15 @@ for _SQLDR in $CFG_SQL_AVAILABLE; do
+               [ -z "$CFG_MYSQL_CONFIG" ] && CFG_MYSQL_CONFIG=`"$WHICH" mysql_config`
+                 if [ -x "$CFG_MYSQL_CONFIG" ]; then
+                     QT_CFLAGS_MYSQL=`$CFG_MYSQL_CONFIG --include 2>/dev/null`
++                    $CFG_MYSQL_CONFIG --pkglibdir &>/dev/null && \
++                      QT_MYSQL_PKGLIBDIR=`$CFG_MYSQL_CONFIG --pkglibdir 2>/dev/null`
++                    if [ -n "$QT_MYSQL_PKGLIBDIR" ]; then
++                    QT_LFLAGS_MYSQL_R="-L$QT_MYSQL_PKGLIBDIR -lmysqlclient_r"
++                    QT_LFLAGS_MYSQL="-L$QT_MYSQL_PKGLIBDIR -lmysqlclient"
++                    else
+                     QT_LFLAGS_MYSQL_R=`$CFG_MYSQL_CONFIG --libs_r 2>/dev/null`
+                     QT_LFLAGS_MYSQL=`$CFG_MYSQL_CONFIG --libs 2>/dev/null`
++                    fi
+                   QT_MYSQL_VERSION=`$CFG_MYSQL_CONFIG --version 2>/dev/null`
+                     QT_MYSQL_VERSION_MAJOR=`echo $QT_MYSQL_VERSION | cut -d . -f 1`
+                 fi
diff --git a/pkgs/core/qt/patches/qt-everywhere-opensource-src-4.7.0-beta2-phonon_servicesfile.patch b/pkgs/core/qt/patches/qt-everywhere-opensource-src-4.7.0-beta2-phonon_servicesfile.patch
new file mode 100644 (file)
index 0000000..e5ef6a0
--- /dev/null
@@ -0,0 +1,40 @@
+diff -up qt-everywhere-opensource-src-4.7.0-beta2/src/3rdparty/phonon/gstreamer/gstreamer.desktop.servicesfile qt-everywhere-opensource-src-4.7.0-beta2/src/3rdparty/phonon/gstreamer/gstreamer.desktop
+--- qt-everywhere-opensource-src-4.7.0-beta2/src/3rdparty/phonon/gstreamer/gstreamer.desktop.servicesfile      2010-06-29 20:53:12.000000000 -0500
++++ qt-everywhere-opensource-src-4.7.0-beta2/src/3rdparty/phonon/gstreamer/gstreamer.desktop   2010-07-08 08:25:50.419855085 -0500
+@@ -2,7 +2,7 @@
+ Type=Service
+ X-KDE-ServiceTypes=PhononBackend
+ MimeType=application/x-annodex;video/quicktime;video/x-quicktime;audio/x-m4a;application/x-quicktimeplayer;video/mkv;video/msvideo;video/x-msvideo;video/x-flic;audio/x-aiff;audio/aiff;audio/x-pn-aiff;audio/x-realaudio;audio/basic;audio/x-basic;audio/x-pn-au;audio/x-8svx;audio/8svx;audio/x-16sv;audio/168sv;image/x-ilbm;image/ilbm;video/x-anim;video/anim;image/png;image/x-png;video/mng;video/x-mng;audio/x-ogg;audio/x-speex+ogg;application/ogg;application/ogg;audio/vnd.rn-realaudio;audio/x-pn-realaudio-plugin;audio/x-real-audio;application/vnd.rn-realmedia;video/mpeg;video/x-mpeg;audio/x-wav;audio/wav;audio/x-pn-wav;audio/x-pn-windows-acm;audio/mpeg2;audio/x-mpeg2;audio/mpeg3;audio/x-mpeg3;audio/mpeg;audio/x-mpeg;x-mpegurl;audio/x-mpegurl;audio/mp3;audio/mpeg;
+-X-KDE-Library=phonon_gstreamer
++X-KDE-Library=libphonon_gstreamer
+ X-KDE-PhononBackendInfo-InterfaceVersion=1
+ X-KDE-PhononBackendInfo-Version=0.1
+ X-KDE-PhononBackendInfo-Website=http://gstreamer.freedesktop.org/
+diff -up qt-everywhere-opensource-src-4.7.0-beta2/src/phonon/phonon.pro.servicesfile qt-everywhere-opensource-src-4.7.0-beta2/src/phonon/phonon.pro
+--- qt-everywhere-opensource-src-4.7.0-beta2/src/phonon/phonon.pro.servicesfile        2010-06-29 20:53:13.000000000 -0500
++++ qt-everywhere-opensource-src-4.7.0-beta2/src/phonon/phonon.pro     2010-07-08 08:26:58.307612257 -0500
+@@ -122,6 +122,11 @@ contains(QT_CONFIG, dbus) {
+        DEFINES += QT_NO_DBUS
+ }
++# install dbus service file
++sources.files = $$PHONON_DIR/org.kde.Phonon.AudioOutput.xml
++sources.path = /usr/share/dbus-1/interfaces
++INSTALLS += sources
++
+ contains(QT_CONFIG, reduce_exports): CONFIG += hide_symbols
+ unix:!isEmpty(QT_CFLAGS_PULSEAUDIO) {
+diff -up qt-everywhere-opensource-src-4.7.0-beta2/src/plugins/phonon/gstreamer/gstreamer.pro.servicesfile qt-everywhere-opensource-src-4.7.0-beta2/src/plugins/phonon/gstreamer/gstreamer.pro
+--- qt-everywhere-opensource-src-4.7.0-beta2/src/plugins/phonon/gstreamer/gstreamer.pro.servicesfile   2010-06-29 20:53:14.000000000 -0500
++++ qt-everywhere-opensource-src-4.7.0-beta2/src/plugins/phonon/gstreamer/gstreamer.pro        2010-07-08 08:25:50.387854526 -0500
+@@ -64,6 +64,8 @@ SOURCES += $$PHONON_GSTREAMER_DIR/abstra
+ }
+ target.path = $$[QT_INSTALL_PLUGINS]/phonon_backend
+-INSTALLS += target
++services.files = $$PHONON_GSTREAMER_DIR/gstreamer.desktop
++services.path = /usr/share/kde4/services/phononbackends
++INSTALLS += target services
+ include(../../qpluginbase.pri)
diff --git a/pkgs/core/qt/patches/qt-everywhere-opensource-src-4.7.0-bpp24.patch b/pkgs/core/qt/patches/qt-everywhere-opensource-src-4.7.0-bpp24.patch
new file mode 100644 (file)
index 0000000..910e15f
--- /dev/null
@@ -0,0 +1,15 @@
+diff -up qt-everywhere-opensource-src-4.7.0/src/gui/image/qpixmap_x11.cpp.me qt-everywhere-opensource-src-4.7.0/src/gui/image/qpixmap_x11.cpp
+--- qt-everywhere-opensource-src-4.7.0/src/gui/image/qpixmap_x11.cpp.me        2010-10-15 22:04:09.000000000 +0200
++++ qt-everywhere-opensource-src-4.7.0/src/gui/image/qpixmap_x11.cpp   2010-10-15 22:04:18.000000000 +0200
+@@ -900,9 +900,9 @@ void QX11PixmapData::fromImage(const QIm
+             case BPP24_888:                        // 24 bit MSB
+                 CYCLE(
+                     for (int x=0; x<w; x++) {
+-                        *dst++ = qRed  (*p);
++                        *dst++ = qBlue  (*p);
+                         *dst++ = qGreen(*p);
+-                        *dst++ = qBlue (*p++);
++                        *dst++ = qRed (*p++);
+                     }
+                     )
+                     break;
diff --git a/pkgs/core/qt/patches/qt-x11-opensource-src-4.2.2-multilib-optflags.patch b/pkgs/core/qt/patches/qt-x11-opensource-src-4.2.2-multilib-optflags.patch
new file mode 100644 (file)
index 0000000..099a8a2
--- /dev/null
@@ -0,0 +1,33 @@
+--- qt-x11-opensource-src-4.2.2/mkspecs/linux-g++-64/qmake.conf.multilib       2006-11-27 11:26:42.000000000 -0600
++++ qt-x11-opensource-src-4.2.2/mkspecs/linux-g++-64/qmake.conf        2007-02-26 15:01:02.000000000 -0600
+@@ -14,6 +14,8 @@
+ QMAKE_CFLAGS          = -m64
+ QMAKE_LFLAGS          = -m64
++QMAKE_CFLAGS_RELEASE  += -O2
++
+ include(../common/g++.conf)
+ include(../common/linux.conf)
+--- qt-x11-opensource-src-4.2.2/mkspecs/linux-g++-32/qmake.conf.multilib       2006-11-27 11:26:42.000000000 -0600
++++ qt-x11-opensource-src-4.2.2/mkspecs/linux-g++-32/qmake.conf        2007-02-26 15:01:34.000000000 -0600
+@@ -11,6 +11,8 @@
+ QMAKE_CFLAGS          = -m32
+ QMAKE_LFLAGS          = -m32
++QMAKE_CFLAGS_RELEASE  += -O2
++
+ include(../common/g++.conf)
+ include(../common/linux.conf)
+ load(qt_config)
+--- qt-x11-opensource-src-4.2.2/mkspecs/linux-g++/qmake.conf.multilib  2006-11-27 11:26:42.000000000 -0600
++++ qt-x11-opensource-src-4.2.2/mkspecs/linux-g++/qmake.conf   2007-02-26 15:01:26.000000000 -0600
+@@ -8,6 +8,8 @@
+ QT                    += core gui
+ QMAKE_INCREMENTAL_STYLE = sublib
++QMAKE_CFLAGS_RELEASE  += -O2
++
+ include(../common/g++.conf)
+ include(../common/linux.conf)
+ load(qt_config)
diff --git a/pkgs/core/qt/patches/qt-x11-opensource-src-4.5.0-fix-qatomic-inline-asm.patch b/pkgs/core/qt/patches/qt-x11-opensource-src-4.5.0-fix-qatomic-inline-asm.patch
new file mode 100644 (file)
index 0000000..e5ab4ba
--- /dev/null
@@ -0,0 +1,50 @@
+diff -ur qt-x11-opensource-src-4.5.0/src/corelib/arch/qatomic_i386.h qt-x11-opensource-src-4.5.0-fix-qatomic-inline-asm/src/corelib/arch/qatomic_i386.h
+--- qt-x11-opensource-src-4.5.0/src/corelib/arch/qatomic_i386.h        2009-02-25 22:09:21.000000000 +0100
++++ qt-x11-opensource-src-4.5.0-fix-qatomic-inline-asm/src/corelib/arch/qatomic_i386.h 2009-04-01 17:54:21.000000000 +0200
+@@ -115,8 +115,8 @@
+     asm volatile("lock\n"
+                  "incl %0\n"
+                  "setne %1"
+-                 : "=m" (_q_value), "=qm" (ret)
+-                 : "m" (_q_value)
++                 : "+m" (_q_value), "=qm" (ret)
++                 :
+                  : "memory");
+     return ret != 0;
+ }
+@@ -127,8 +127,8 @@
+     asm volatile("lock\n"
+                  "decl %0\n"
+                  "setne %1"
+-                 : "=m" (_q_value), "=qm" (ret)
+-                 : "m" (_q_value)
++                 : "+m" (_q_value), "=qm" (ret)
++                 :
+                  : "memory");
+     return ret != 0;
+ }
+diff -ur qt-x11-opensource-src-4.5.0/src/corelib/arch/qatomic_x86_64.h qt-x11-opensource-src-4.5.0-fix-qatomic-inline-asm/src/corelib/arch/qatomic_x86_64.h
+--- qt-x11-opensource-src-4.5.0/src/corelib/arch/qatomic_x86_64.h      2009-02-25 22:09:21.000000000 +0100
++++ qt-x11-opensource-src-4.5.0-fix-qatomic-inline-asm/src/corelib/arch/qatomic_x86_64.h       2009-04-01 17:54:32.000000000 +0200
+@@ -116,8 +116,8 @@
+     asm volatile("lock\n"
+                  "incl %0\n"
+                  "setne %1"
+-                 : "=m" (_q_value), "=qm" (ret)
+-                 : "m" (_q_value)
++                 : "+m" (_q_value), "=qm" (ret)
++                 :
+                  : "memory");
+     return ret != 0;
+ }
+@@ -128,8 +128,8 @@
+     asm volatile("lock\n"
+                  "decl %0\n"
+                  "setne %1"
+-                 : "=m" (_q_value), "=qm" (ret)
+-                 : "m" (_q_value)
++                 : "+m" (_q_value), "=qm" (ret)
++                 :
+                  : "memory");
+     return ret != 0;
+ }
diff --git a/pkgs/core/qt/patches/qt-x11-opensource-src-4.5.1-enable_ft_lcdfilter.patch b/pkgs/core/qt/patches/qt-x11-opensource-src-4.5.1-enable_ft_lcdfilter.patch
new file mode 100644 (file)
index 0000000..4ab3ea4
--- /dev/null
@@ -0,0 +1,12 @@
+diff -up qt-x11-opensource-src-4.5.1/src/gui/text/qfontengine_ft.cpp.enable_ft_lcdfilter qt-x11-opensource-src-4.5.1/src/gui/text/qfontengine_ft.cpp
+--- qt-x11-opensource-src-4.5.1/src/gui/text/qfontengine_ft.cpp.enable_ft_lcdfilter    2009-04-21 18:57:41.000000000 -0500
++++ qt-x11-opensource-src-4.5.1/src/gui/text/qfontengine_ft.cpp        2009-04-24 11:17:49.562695405 -0500
+@@ -72,7 +72,7 @@
+ #include FT_CONFIG_OPTIONS_H
+ #endif
+-#if defined(FT_LCD_FILTER_H) && defined(FT_CONFIG_OPTION_SUBPIXEL_RENDERING)
++#if defined(FT_LCD_FILTER_H)
+ #define QT_USE_FREETYPE_LCDFILTER
+ #endif
index 1629bdc881b654557363b554227891f9a79bab07..6b15927d7d72cee1f974abe67d3c2b685af0c1d2 100644 (file)
@@ -26,7 +26,7 @@ include $(PKGROOT)/Include
 
 PKG_NAME       = qt
 PKG_VER        = 4.7.0
-PKG_REL        = 1
+PKG_REL        = 2
 
 PKG_MAINTAINER =
 PKG_GROUP      = System/Libraries