This commit is contained in:
Jaroslav Reznik 2011-03-01 13:54:04 +01:00
parent 2d670be15f
commit 921e069788
8 changed files with 7 additions and 323 deletions

1
.gitignore vendored
View File

@ -11,3 +11,4 @@ qt-everywhere-opensource-src-4.7.0-beta2.tar.gz
/qt-everywhere-opensource-src-4.7.0-rc1.tar.gz
/qt-everywhere-opensource-src-4.7.0.tar.gz
/qt-everywhere-opensource-src-4.7.1.tar.gz
/qt-everywhere-opensource-src-4.7.2.tar.gz

View File

@ -1,213 +0,0 @@
From 9e5a1b618ea7bf579c7b2d66a8844d606405bc6d Mon Sep 17 00:00:00 2001
From: Anders Bakken <agbakken@gmail.com>
Date: Mon, 20 Sep 2010 19:14:10 +0200
Subject: [PATCH] Enable building Qt/Webkit with debug symbols
With this patch one can configure with -webkit-debug to build Webkit
with debug symbols without having to manually edit WebCore.pro.
Merge-request: 816
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@nokia.com>
---
configure | 50 +++++++++++++++++++------------
src/3rdparty/webkit/WebCore/WebCore.pro | 2 +-
tools/configure/configureapp.cpp | 16 ++++++++--
3 files changed, 45 insertions(+), 23 deletions(-)
diff --git a/configure b/configure
index da6fb0a..4316cc8 100755
--- a/configure
+++ b/configure
@@ -686,7 +686,7 @@ CFG_AUDIO_BACKEND=auto
CFG_SVG=auto
CFG_DECLARATIVE=auto
CFG_DECLARATIVE_DEBUG=yes
-CFG_WEBKIT=auto # (yes|no|auto)
+CFG_WEBKIT=auto # (yes|no|auto|debug)
CFG_JAVASCRIPTCORE_JIT=auto
CFG_GFX_AVAILABLE="linuxfb transformed qvfb vnc multiscreen directfb"
@@ -939,13 +939,26 @@ while [ "$#" -gt 0 ]; do
VAR=`echo $1 | sed "s,^-[^-]*-\(.*\),\1,"`
VAL=`echo $1 | sed "s,^-\([^-]*\).*,\1,"`
;;
+ #WebKit options
+ -webkit)
+ VAR="webkit"
+ VAL="yes"
+ ;;
+ -webkit-debug)
+ VAR="webkit"
+ VAL="debug"
+ ;;
+ -no-webkit)
+ VAR="webkit"
+ VAL="no"
+ ;;
#Qt style no options
-no-*)
VAR=`echo $1 | sed "s,^-no-\(.*\),\1,"`
VAL=no
;;
#Qt style yes options
- -incremental|-qvfb|-profile|-shared|-static|-sm|-xinerama|-xshape|-xsync|-xinput|-egl|-reduce-exports|-pch|-separate-debug-info|-stl|-freetype|-xcursor|-xfixes|-xrandr|-xrender|-mitshm|-fontconfig|-xkb|-nis|-qdbus|-dbus|-dbus-linked|-glib|-gstreamer|-gtkstyle|-cups|-iconv|-largefile|-h|-help|-v|-verbose|-debug|-release|-fast|-accessibility|-confirm-license|-gnumake|-framework|-qt3support|-debug-and-release|-exceptions|-cocoa|-carbon|-universal|-prefix-install|-silent|-armfpa|-optimized-qmake|-dwarf2|-reduce-relocations|-sse|-openssl|-openssl-linked|-ptmalloc|-xmlpatterns|-phonon|-phonon-backend|-multimedia|-audio-backend|-svg|-declarative|-webkit|-javascript-jit|-script|-scripttools|-rpath|-force-pkg-config|-s60|-usedeffiles)
+ -incremental|-qvfb|-profile|-shared|-static|-sm|-xinerama|-xshape|-xsync|-xinput|-egl|-reduce-exports|-pch|-separate-debug-info|-stl|-freetype|-xcursor|-xfixes|-xrandr|-xrender|-mitshm|-fontconfig|-xkb|-nis|-qdbus|-dbus|-dbus-linked|-glib|-gstreamer|-gtkstyle|-cups|-iconv|-largefile|-h|-help|-v|-verbose|-debug|-release|-fast|-accessibility|-confirm-license|-gnumake|-framework|-qt3support|-debug-and-release|-exceptions|-cocoa|-carbon|-universal|-prefix-install|-silent|-armfpa|-optimized-qmake|-dwarf2|-reduce-relocations|-sse|-openssl|-openssl-linked|-ptmalloc|-xmlpatterns|-phonon|-phonon-backend|-multimedia|-audio-backend|-svg|-declarative|-javascript-jit|-script|-scripttools|-rpath|-force-pkg-config|-s60|-usedeffiles)
VAR=`echo $1 | sed "s,^-\(.*\),\1,"`
VAL=yes
;;
@@ -2010,15 +2023,8 @@ while [ "$#" -gt 0 ]; do
fi
;;
webkit)
- if [ "$VAL" = "yes" ] || [ "$VAL" = "auto" ]; then
- CFG_WEBKIT="yes"
- else
- if [ "$VAL" = "no" ]; then
- CFG_WEBKIT="no"
- else
- UNKNOWN_OPT=yes
- fi
- fi
+ [ "$VAL" = "auto" ] && VAL="yes"
+ CFG_WEBKIT="$VAL"
;;
javascript-jit)
if [ "$VAL" = "yes" ] || [ "$VAL" = "auto" ] || [ "$VAL" = "no" ]; then
@@ -3535,10 +3541,10 @@ Usage: $relconf [-h] [-prefix <dir>] [-prefix-install] [-bindir <dir>] [-libdir
[-no-multimedia] [-multimedia] [-no-phonon] [-phonon] [-no-phonon-backend] [-phonon-backend]
[-no-media-backend] [-media-backend] [-no-audio-backend] [-audio-backend]
[-no-openssl] [-openssl] [-openssl-linked]
- [-no-gtkstyle] [-gtkstyle] [-no-svg] [-svg] [-no-webkit] [-webkit] [-no-javascript-jit] [-javascript-jit]
+ [-no-gtkstyle] [-gtkstyle] [-no-svg] [-svg] [-no-webkit] [-webkit] [-webkit-debug]
+ [-no-javascript-jit] [-javascript-jit]
[-no-script] [-script] [-no-scripttools] [-scripttools]
[-no-declarative] [-declarative][-no-declarative-debug] [-declarative-debug]
-
[additional platform specific options (see below)]
@@ -3690,6 +3696,7 @@ fi
-no-webkit ......... Do not build the WebKit module.
+ -webkit ............ Build the WebKit module.
WebKit is built if a decent C++ compiler is used.
+ -webkit-debug ...... Build the WebKit module with debug symbols.
-no-javascript-jit . Do not build the JavaScriptCore JIT compiler.
+ -javascript-jit .... Build the JavaScriptCore JIT compiler.
@@ -7191,14 +7198,15 @@ if [ "$CFG_WEBKIT" = "auto" ]; then
CFG_WEBKIT="$canBuildWebKit"
fi
-if [ "$CFG_WEBKIT" = "yes" ]; then
+if [ "$CFG_WEBKIT" != "no" ]; then
# This include takes care of adding "webkit" to QT_CONFIG.
cp -f "$relpath/src/3rdparty/webkit/WebKit/qt/qt_webkit_version.pri" "$outpath/mkspecs/modules/qt_webkit_version.pri"
# The reason we set CFG_WEBKIT, is such that the printed overview of what will be enabled, shows correctly.
- CFG_WEBKIT="yes"
+ if [ "$CFG_WEBKIT" = "debug" ]; then
+ QMAKE_CONFIG="$QMAKE_CONFIG webkit-debug"
+ fi
else
rm -f "$outpath/mkspecs/modules/qt_webkit_version.pri"
- CFG_WEBKIT="no"
QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_WEBKIT"
fi
@@ -8130,7 +8138,7 @@ EOF
*) ;;
esac
-if [ "$PLATFORM_MAC" = "yes" ] && [ "$CFG_MAC_DWARF2" = "no" ] && [ "$CFG_WEBKIT" = "yes" ] && [ "$CFG_DEBUG_RELEASE" = "yes" ]; then
+if [ "$PLATFORM_MAC" = "yes" ] && [ "$CFG_MAC_DWARF2" = "no" ] && [ "$CFG_WEBKIT" != "no" ] && [ "$CFG_DEBUG_RELEASE" = "yes" ]; then
cat <<EOF
WARNING: DWARF2 debug symbols are not enabled. Linking webkit
in debug mode will run out of memory on systems with 2GB or less.
@@ -8207,8 +8215,12 @@ echo "QtXmlPatterns module ... $CFG_XMLPATTERNS"
echo "Phonon module .......... $CFG_PHONON"
echo "Multimedia module ...... $CFG_MULTIMEDIA"
echo "SVG module ............. $CFG_SVG"
-echo "WebKit module .......... $CFG_WEBKIT"
-if [ "$CFG_WEBKIT" = "yes" ]; then
+case "$CFG_WEBKIT" in
+ yes) echo "WebKit module .......... yes" ;;
+ debug) echo "WebKit module .......... yes (debug)" ;;
+ no) echo "WebKit module .......... no" ;;
+esac
+if [ "$CFG_WEBKIT" != "no" ]; then
if [ "$CFG_JAVASCRIPTCORE_JIT" = "auto" ]; then
echo "JavaScriptCore JIT ..... To be decided by JavaScriptCore"
else
diff --git a/src/3rdparty/webkit/WebCore/WebCore.pro b/src/3rdparty/webkit/WebCore/WebCore.pro
index 5f688f3..6b21d8a 100644
--- a/src/3rdparty/webkit/WebCore/WebCore.pro
+++ b/src/3rdparty/webkit/WebCore/WebCore.pro
@@ -2952,7 +2952,7 @@ HEADERS += $$WEBKIT_API_HEADERS
}
}
-CONFIG(QTDIR_build) {
+!CONFIG(webkit-debug):CONFIG(QTDIR_build) {
# Remove the following 2 lines if you want debug information in WebCore
CONFIG -= separate_debug_info
CONFIG += no_debug_info
diff --git a/tools/configure/configureapp.cpp b/tools/configure/configureapp.cpp
index a2c7fe9..17bbadf 100644
--- a/tools/configure/configureapp.cpp
+++ b/tools/configure/configureapp.cpp
@@ -958,6 +958,8 @@ void Configure::parseCmdLine()
dictionary[ "WEBKIT" ] = "no";
} else if (configCmdLine.at(i) == "-webkit") {
dictionary[ "WEBKIT" ] = "yes";
+ } else if (configCmdLine.at(i) == "-webkit-debug") {
+ dictionary[ "WEBKIT" ] = "debug";
} else if (configCmdLine.at(i) == "-no-declarative") {
dictionary[ "DECLARATIVE" ] = "no";
} else if (configCmdLine.at(i) == "-declarative") {
@@ -1651,7 +1653,7 @@ bool Configure::displayHelp()
"[-phonon] [-no-phonon-backend] [-phonon-backend]\n"
"[-no-multimedia] [-multimedia] [-no-audio-backend] [-audio-backend]\n"
"[-no-script] [-script] [-no-scripttools] [-scripttools]\n"
- "[-no-webkit] [-webkit] [-graphicssystem raster|opengl|openvg]\n\n", 0, 7);
+ "[-no-webkit] [-webkit] [-webkit-debug] [-graphicssystem raster|opengl|openvg]\n\n", 0, 7);
desc("Installation options:\n\n");
@@ -1835,6 +1837,7 @@ bool Configure::displayHelp()
desc("AUDIO_BACKEND", "yes","-audio-backend", "Compile in the platform audio backend into QtMultimedia");
desc("WEBKIT", "no", "-no-webkit", "Do not compile in the WebKit module");
desc("WEBKIT", "yes", "-webkit", "Compile in the WebKit module (WebKit is built if a decent C++ compiler is used.)");
+ desc("WEBKIT", "debug", "-webkit-debug", "Compile in the WebKit module with debug symbols.");
desc("SCRIPT", "no", "-no-script", "Do not build the QtScript module.");
desc("SCRIPT", "yes", "-script", "Build the QtScript module.");
desc("SCRIPTTOOLS", "no", "-no-scripttools", "Do not build the QtScriptTools module.");
@@ -2692,10 +2695,12 @@ void Configure::generateOutputVars()
QString dst = buildPath + "/mkspecs/modules/qt_webkit_version.pri";
QFile::remove(dst);
- if (dictionary["WEBKIT"] == "yes") {
+ if (dictionary["WEBKIT"] != "no") {
// This include takes care of adding "webkit" to QT_CONFIG.
QString src = sourcePath + "/src/3rdparty/webkit/WebKit/qt/qt_webkit_version.pri";
QFile::copy(src, dst);
+ if (dictionary["WEBKIT"] == "debug")
+ qtConfig += "webkit-debug";
}
if (dictionary["DECLARATIVE"] == "yes") {
@@ -3406,7 +3411,12 @@ void Configure::displayConfig()
cout << "QtXmlPatterns support......." << dictionary[ "XMLPATTERNS" ] << endl;
cout << "Phonon support.............." << dictionary[ "PHONON" ] << endl;
cout << "QtMultimedia support........" << dictionary[ "MULTIMEDIA" ] << endl;
- cout << "WebKit support.............." << dictionary[ "WEBKIT" ] << endl;
+ {
+ QString webkit = dictionary[ "WEBKIT" ];
+ if (webkit == "debug")
+ webkit = "yes (debug)";
+ cout << "WebKit support.............." << webkit;
+ }
cout << "Declarative support........." << dictionary[ "DECLARATIVE" ] << endl;
cout << "Declarative debugging......." << dictionary[ "DECLARATIVE_DEBUG" ] << endl;
cout << "QtScript support............" << dictionary[ "SCRIPT" ] << endl;
--
1.6.1

View File

@ -1,44 +0,0 @@
From 34c297faca93e1286573b2a01127e4e7af00aff2 Mon Sep 17 00:00:00 2001
From: Jiang Jiang <jiang.jiang@nokia.com>
Date: Mon, 24 Jan 2011 19:09:38 +0100
Subject: [PATCH] Fix cursor position adjustment when removing strings
Commit 0ba1b4d0 introduced a regression to QTextDocument: it postponed
cursor position adjustment until the move operation is done, but
contentsChanged will be triggered by finishEdit() in this move
operation, thus cursor positions in this signal handler will be in
inconsistent states (normally we should first update cursor position
then trigger contentsChanged). In this case we should also postpone
finishEdit() handling after cursor positions have been adjusted, then
the states expose to applications will be consistent.
Task-number: QTBUG-15857
Reviewed-by: Eskil
---
src/gui/text/qtextdocument_p.cpp | 4 +++-
tests/auto/qtextcursor/tst_qtextcursor.cpp | 28 ++++++++++++++++++++++++++++
2 files changed, 31 insertions(+), 1 deletions(-)
diff --git a/src/gui/text/qtextdocument_p.cpp b/src/gui/text/qtextdocument_p.cpp
index 498a432..2172f74 100644
--- a/src/gui/text/qtextdocument_p.cpp
+++ b/src/gui/text/qtextdocument_p.cpp
@@ -663,7 +663,8 @@ void QTextDocumentPrivate::move(int pos, int to, int length, QTextUndoCommand::O
Q_ASSERT(blocks.length() == fragments.length());
- finishEdit();
+ if (!blockCursorAdjustment)
+ finishEdit();
}
void QTextDocumentPrivate::remove(int pos, int length, QTextUndoCommand::Operation op)
@@ -678,6 +679,7 @@ void QTextDocumentPrivate::remove(int pos, int length, QTextUndoCommand::Operati
curs->changed = true;
}
}
+ finishEdit();
}
void QTextDocumentPrivate::setCharFormat(int pos, int length, const QTextCharFormat &newFormat, FormatChangeMode mode)

View File

@ -1,12 +0,0 @@
diff -up qt-everywhere-opensource-src-4.7.1/src/3rdparty/harfbuzz/src/harfbuzz-indic.cpp.ml_IN-528303 qt-everywhere-opensource-src-4.7.1/src/3rdparty/harfbuzz/src/harfbuzz-indic.cpp
--- qt-everywhere-opensource-src-4.7.1/src/3rdparty/harfbuzz/src/harfbuzz-indic.cpp.ml_IN-528303 2010-11-22 15:14:41.000000000 +0100
+++ qt-everywhere-opensource-src-4.7.1/src/3rdparty/harfbuzz/src/harfbuzz-indic.cpp 2010-11-22 15:13:03.000000000 +0100
@@ -833,7 +833,7 @@ static const unsigned char indicPosition
None, None, None, None,
None, None, None, Post,
- Post, None, Below, None,
+ Pre, None, Below, None,
None, Post, None, None,
None, None, None, None,
None, None, Post, Post,

View File

@ -1,20 +0,0 @@
diff -up qt-everywhere-opensource-src-4.7.1/src/gui/itemviews/qsortfilterproxymodel.cpp.merge_934 qt-everywhere-opensource-src-4.7.1/src/gui/itemviews/qsortfilterproxymodel.cpp
--- qt-everywhere-opensource-src-4.7.1/src/gui/itemviews/qsortfilterproxymodel.cpp.merge_934 2010-11-05 20:55:17.000000000 -0500
+++ qt-everywhere-opensource-src-4.7.1/src/gui/itemviews/qsortfilterproxymodel.cpp 2011-01-06 13:05:52.686846333 -0600
@@ -782,14 +782,14 @@ void QSortFilterProxyModelPrivate::sourc
if (orthogonal_source_to_proxy.isEmpty()) {
const int ortho_end = (orient == Qt::Horizontal) ? model->rowCount(source_parent) : model->columnCount(source_parent);
+ orthogonal_source_to_proxy.resize(ortho_end);
+
for (int ortho_item = 0; ortho_item < ortho_end; ++ortho_item) {
if ((orient == Qt::Horizontal) ? q->filterAcceptsRow(ortho_item, source_parent)
: q->filterAcceptsColumn(ortho_item, source_parent)) {
orthogonal_proxy_to_source.append(ortho_item);
}
}
- orthogonal_source_to_proxy.resize(orthogonal_proxy_to_source.size());
-
if (orient == Qt::Horizontal) {
// We're reacting to columnsInserted, but we've just inserted new rows. Sort them.
sort_source_rows(orthogonal_proxy_to_source, source_parent);

View File

@ -1,12 +0,0 @@
--- a/src/gui/text/qtextcursor.cpp
+++ b/src/gui/text/qtextcursor.cpp
@@ -363,6 +363,9 @@
bool adjustX = true;
QTextBlock blockIt = block();
+ if (!blockIt.isValid())
+ return false;
+
if (op >= QTextCursor::Left && op <= QTextCursor::WordRight
&& blockIt.textDirection() == Qt::RightToLeft) {
if (op == QTextCursor::Left)

26
qt.spec
View File

@ -17,7 +17,7 @@
Summary: Qt toolkit
Name: qt
Epoch: 1
Version: 4.7.1
Version: 4.7.2
Release: 18%{?dist}
# See LGPL_EXCEPTIONS.txt, LICENSE.GPL3, respectively, for exception details
@ -92,21 +92,7 @@ Patch64: qt-everywhere-opensource-src-4.7.1-QTBUG-14467.patch
Patch65: qt-everywhere-opensource-src-4.7.1-qtreeview-kpackagekit-crash.patch
# upstream patches
# Reordering of Malayalam Rakar not working properly
Patch100: qt-everywhere-opensource-src-4.7.1-ml_IN-bz528303.patch
# fix QTextCursor crash in Lokalize and Psi (QTBUG-15857, kde#249373, #660028)
# http://qt.gitorious.org/qt/qt/commit/6ae84f1183e91c910ca92a55e37f8254ace805c0
Patch101: qt-everywhere-opensource-src-4.7.1-qtextcursor-crash.patch
# followup for regressions
# http://qt.gitorious.org/qt/qt/commit/34c297faca93e1286573b2a01127e4e7af00aff2.patch
Patch102: qt-everywhere-opensource-4.7.1-QTBUG-15857-2.patch
# qsortfilterproxymodel merge, http://qt.gitorious.org/qt/qt/merge_requests/934
Patch103: qt-everywhere-opensource-src-4.7.1-qsortfilterproxymodel_merge934.patch
# support -webkit-debug
Patch104: http://qt.gitorious.org/qt/qt/commit/9e5a1b618ea7bf579c7b2d66a8844d606405bc6d.patch
# followup adding support to webkit/JavaScriptCore too
# adds debug support to webkit/JavaScriptCore
# UPSTREAM ME
Patch105: qt-everywhere-opensource-src-4.7.1-webkit_debug_javascriptcore.patch
@ -507,11 +493,6 @@ Qt libraries used for drawing widgets and OpenGL items.
%patch65 -p1 -b .qtreeview-kpackagekit-crash
# upstream patches
%patch100 -p1 -b .ml_IN-rendering
%patch101 -p1 -b .qtextcursor-crash
%patch102 -p1 -b .QTBUG-15857-2
%patch103 -p1 -b .qsortfilterproxymodel_merge934
%patch104 -p1 -b .webkit_debug
%patch105 -p1 -b .webkit_debug_javascriptcore
# kde-qt branch
@ -1207,6 +1188,9 @@ fi
%changelog
* Tue Mar 01 2011 Jaroslav Reznik <jreznik@redhat.com> 1:4.7.2-1
- 4.7.2
* Wed Feb 23 2011 Rex Dieter <rdieter@fedoraproject.org> 1:4.7.1-18
- libQtWebKit.so has no debug info (#667175)

View File

@ -7,4 +7,4 @@ d9f511e4b51983b4e10eb58b320416d5 hi128-app-qt4-logo.png
12db12c009b722a6dc141f78feb7e330 hi32-phonon-gstreamer.png
86c34a1b81d44980b1381f94ed6b7a23 hi48-phonon-gstreamer.png
153505c71ec021b0a3bd4b74f2492e93 hi64-phonon-gstreamer.png
6f88d96507c84e9fea5bf3a71ebeb6d7 qt-everywhere-opensource-src-4.7.1.tar.gz
66b992f5c21145df08c99d21847f4fdb qt-everywhere-opensource-src-4.7.2.tar.gz