qt: update to 4.8.2.

This commit is contained in:
Juan RP 2012-05-23 23:10:40 +02:00
parent 720fe4fe46
commit 9ca62ab945
15 changed files with 19 additions and 125 deletions

View file

@ -1,33 +0,0 @@
From 827e5c4c689d4ecb4f8c1ab48c9a7ab712fe2ca7 Mon Sep 17 00:00:00 2001
From: John Tapsell <john.tapsell.ext@basyskom.com>
Date: Mon, 12 Mar 2012 22:07:47 +0000
Subject: [PATCH] Harfbuzz-thai - fix buffer overflow when setting item
attributes
Change-Id: I19eeb4ec25a7c6cb3f584e6290169f9f327b8713
Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@nokia.com>
---
src/3rdparty/harfbuzz/src/harfbuzz-thai.c | 9 +++++-
.../qtextscriptengine/tst_qtextscriptengine.cpp | 29 ++++++++++++++++++++
2 files changed, 36 insertions(+), 2 deletions(-)
diff --git a/src/3rdparty/harfbuzz/src/harfbuzz-thai.c b/src/3rdparty/harfbuzz/src/harfbuzz-thai.c
index bf6c35b..3c0ffe8 100644
--- a/src/3rdparty/harfbuzz/src/harfbuzz-thai.c
+++ b/src/3rdparty/harfbuzz/src/harfbuzz-thai.c
@@ -263,8 +263,13 @@ static HB_Bool HB_ThaiConvertStringToGlyphIndices (HB_ShaperItem *item)
// The only glyphs that should be passed to this function that cannot be mapped to
// tis620 are the ones of type Inherited class. Pass these glyphs untouched.
glyphString[slen++] = string[i];
- if (string[i] == 0x200D || string[i] == 0x200C)
- item->attributes[slen-1].dontPrint = true; // Hide ZWJ and ZWNJ characters
+ if (string[i] == 0x200D || string[i] == 0x200C) {
+ // Check that we do not run out of bounds when setting item->attributes. If we do
+ // run out of bounds then this function will return false, the necessary amount of
+ // memory is reallocated, and this function will then be called again.
+ if (slen <= item->num_glyphs)
+ item->attributes[slen-1].dontPrint = true; // Hide ZWJ and ZWNJ characters
+ }
} else {
glyphString[slen++] = (HB_UChar16) thai_get_glyph_index (font_type, rglyphs[lgi]);
}

View file

@ -1,32 +0,0 @@
Index: fix-cursortox-crash.patch
===================================================================
--- fix-cursortox-crash.patch (revision 0)
+++ fix-cursortox-crash.patch (arbetskopia)
#commit cac12f4592477d99ef6fffaad40345bf85ef53b5
#Author: Jiang Jiang <jiang.jiang@nokia.com>
#Date: Mon Apr 2 12:32:05 2012 +0200
#
# Fix a crash in cursorToX() when new block is added
#
# When an empty new block is being added, the layoutData->memory data
# will be 0, thus QTextEngine::attributes() will return 0. We should
# only access the attributes pointer when some text actually exist.
#
# Task-number: QTBUG-24718
# Change-Id: I9ce9f7b57bccf24099a02832ce30fb6cebfaad33
#
diff --git a/src/gui/text/qtextlayout.cpp b/src/gui/text/qtextlayout.cpp
index ee658d9..16f7150 100644
--- a/src/gui/text/qtextlayout.cpp
+++ b/src/gui/text/qtextlayout.cpp
@@ -2508,6 +2508,10 @@ qreal QTextLine::cursorToX(int *cursorPos, Edge edge) const
int pos = *cursorPos;
int itm;
const HB_CharAttributes *attributes = eng->attributes();
+ if (!attributes) {
+ *cursorPos = 0;
+ return x.toReal();
+ }
while (pos < line.from + line.length && !attributes[pos].charStop)
pos++;
if (pos == line.from + (int)line.length) {

View file

@ -1,27 +0,0 @@
diff -up qt-everywhere-opensource-src-4.8.0/src/3rdparty/javascriptcore/JavaScriptCore/runtime/JSGlobalObject.h.me qt-everywhere-opensource-src-4.8.0/src/3rdparty/javascriptcore/JavaScriptCore/runtime/JSGlobalObject.h
--- qt-everywhere-opensource-src-4.8.0/src/3rdparty/javascriptcore/JavaScriptCore/runtime/JSGlobalObject.h.me 2012-01-24 11:24:14.729942043 +0100
+++ qt-everywhere-opensource-src-4.8.0/src/3rdparty/javascriptcore/JavaScriptCore/runtime/JSGlobalObject.h 2012-01-24 14:28:39.848109534 +0100
@@ -57,9 +57,7 @@ namespace JSC {
class JSGlobalObject : public JSVariableObject {
protected:
- using JSVariableObject::JSVariableObjectData;
-
- struct JSGlobalObjectData : public JSVariableObjectData {
+ struct JSGlobalObjectData : public JSVariableObject::JSVariableObjectData {
// We use an explicit destructor function pointer instead of a
// virtual destructor because we want to avoid adding a vtable
// pointer to this struct. Adding a vtable pointer would force the
diff -up qt-everywhere-opensource-src-4.8.0/src/3rdparty/javascriptcore/JavaScriptCore/runtime/JSStaticScopeObject.h.me qt-everywhere-opensource-src-4.8.0/src/3rdparty/javascriptcore/JavaScriptCore/runtime/JSStaticScopeObject.h
--- qt-everywhere-opensource-src-4.8.0/src/3rdparty/javascriptcore/JavaScriptCore/runtime/JSStaticScopeObject.h.me 2012-01-24 11:40:07.167856677 +0100
+++ qt-everywhere-opensource-src-4.8.0/src/3rdparty/javascriptcore/JavaScriptCore/runtime/JSStaticScopeObject.h 2012-01-24 14:28:34.640306629 +0100
@@ -32,8 +32,7 @@ namespace JSC{
class JSStaticScopeObject : public JSVariableObject {
protected:
- using JSVariableObject::JSVariableObjectData;
- struct JSStaticScopeObjectData : public JSVariableObjectData {
+ struct JSStaticScopeObjectData : public JSVariableObject::JSVariableObjectData {
JSStaticScopeObjectData()
: JSVariableObjectData(&symbolTable, &registerStore + 1)
{

View file

@ -1,14 +1,12 @@
# Template file for 'qt-demos'. # Template file for 'qt-demos'.
# #
depends="hicolor-icon-theme qt-docs" depends="hicolor-icon-theme qt-docs>=$version"
gtk_iconcache_dirs="/usr/share/icons/hicolor"
short_desc="Qt examples and demos" short_desc="Qt examples and demos"
long_desc="${long_desc} long_desc="${long_desc}
This package contains Qt 4 examples and demos." This package contains Qt 4 examples and demos."
gtk_iconcache_dirs="/usr/share/icons/hicolor"
do_install() do_install()
{ {
mkdir -p ${DESTDIR}/usr/share/doc/qt ${DESTDIR}/usr/bin mkdir -p ${DESTDIR}/usr/share/doc/qt ${DESTDIR}/usr/bin

View file

@ -1,15 +1,13 @@
# Template file for 'qt-designer'. # Template file for 'qt-designer'.
# #
depends="hicolor-icon-theme" depends="hicolor-icon-theme"
gtk_iconcache_dirs="/usr/share/icons/hicolor"
short_desc="Qt GUI designer" short_desc="Qt GUI designer"
long_desc="${long_desc} long_desc="${long_desc}
Qt Designer is a tool for designing and building graphical user Qt Designer is a tool for designing and building graphical user
interfaces (GUIs) from Qt components." interfaces (GUIs) from Qt components."
gtk_iconcache_dirs="/usr/share/icons/hicolor"
do_install() do_install()
{ {
mkdir -p ${DESTDIR}/usr/lib/qt/plugins \ mkdir -p ${DESTDIR}/usr/lib/qt/plugins \

View file

@ -1,15 +1,13 @@
# Template file for 'qt-devel-tools'. # Template file for 'qt-devel-tools'.
# #
depends="hicolor-icon-theme" depends="hicolor-icon-theme"
gtk_iconcache_dirs="/usr/share/icons/hicolor"
short_desc="Qt development tools" short_desc="Qt development tools"
long_desc="${long_desc} long_desc="${long_desc}
This packages contains tools used to assist in Qt development, including This packages contains tools used to assist in Qt development, including
the Qt Assistant, Linguist, D-Bus Viewer and Pixel Tool applications. " the Qt Assistant, Linguist, D-Bus Viewer and Pixel Tool applications. "
gtk_iconcache_dirs="/usr/share/icons/hicolor"
do_install() do_install()
{ {
mkdir -p ${DESTDIR}/usr/bin mkdir -p ${DESTDIR}/usr/bin

View file

@ -7,7 +7,6 @@ long_desc="${long_desc}
This package contains the header development files and development This package contains the header development files and development
programs used for runing Qt applications." programs used for runing Qt applications."
do_install() do_install()
{ {
mkdir -p ${DESTDIR}/usr/lib ${DESTDIR}/usr/bin mkdir -p ${DESTDIR}/usr/lib ${DESTDIR}/usr/bin

View file

@ -1,14 +1,12 @@
# Template file for 'qt-docs'. # Template file for 'qt-docs'.
# #
depends="qt" depends="qt>=$version"
noarch=yes
short_desc="Qt API documentation" short_desc="Qt API documentation"
long_desc="${long_desc} long_desc="${long_desc}
This package contains the complete Qt 4 API documentation (new help format)." This package contains the complete Qt 4 API documentation (new help format)."
noarch=yes
do_install() do_install()
{ {
mkdir -p ${DESTDIR}/usr/share/doc mkdir -p ${DESTDIR}/usr/share/doc

View file

@ -5,7 +5,6 @@ long_desc="${long_desc}
This package contains a Qt phonon backend plugin for GStreamer." This package contains a Qt phonon backend plugin for GStreamer."
do_install() { do_install() {
vmove usr/lib/qt/plugins/phonon_backend/libphonon_gstreamer.so \ vmove usr/lib/qt/plugins/phonon_backend/libphonon_gstreamer.so \
usr/lib/qt/plugins/phonon_backend usr/lib/qt/plugins/phonon_backend

View file

@ -1,6 +1,10 @@
libmysqlclient_r.so.16
libQtSql.so.4 libQtSql.so.4
libQtCore.so.4 libQtCore.so.4
libstdc++.so.6 libstdc++.so.6
libgcc_s.so.1 libgcc_s.so.1
libc.so.6 libc.so.6
libz.so.1
libssl.so.1
libcrypto.so.1
libpthread.so.0
libm.so.6

View file

@ -5,7 +5,6 @@ long_desc="${long_desc}
This package contains a Qt SQL plugin for MySQL." This package contains a Qt SQL plugin for MySQL."
do_install() do_install()
{ {
mkdir -p ${DESTDIR}/usr/lib/qt/plugins/sqldrivers mkdir -p ${DESTDIR}/usr/lib/qt/plugins/sqldrivers

View file

@ -5,7 +5,6 @@ long_desc="${long_desc}
This package contains a Qt SQL plugin for PostgreSQL." This package contains a Qt SQL plugin for PostgreSQL."
do_install() do_install()
{ {
mkdir -p ${DESTDIR}/usr/lib/qt/plugins/sqldrivers mkdir -p ${DESTDIR}/usr/lib/qt/plugins/sqldrivers

View file

@ -5,7 +5,6 @@ long_desc="${long_desc}
This package contains a Qt SQL plugin for SQLite." This package contains a Qt SQL plugin for SQLite."
do_install() do_install()
{ {
mkdir -p ${DESTDIR}/usr/lib/qt/plugins/sqldrivers mkdir -p ${DESTDIR}/usr/lib/qt/plugins/sqldrivers

View file

@ -1,15 +1,13 @@
# Template file for 'qt-qtconfig'. # Template file for 'qt-qtconfig'.
# #
depends="hicolor-icon-theme" depends="hicolor-icon-theme"
gtk_iconcache_dirs="/usr/share/icons/hicolor"
short_desc="Qt configuration tool" short_desc="Qt configuration tool"
long_desc="${long_desc} long_desc="${long_desc}
The Qt Configuration program allows end users to configure the look The Qt Configuration program allows end users to configure the look
and behavior of any Qt application." and behavior of any Qt application."
gtk_iconcache_dirs="/usr/share/icons/hicolor"
do_install() do_install()
{ {
mkdir -p ${DESTDIR}/usr/bin \ mkdir -p ${DESTDIR}/usr/bin \

View file

@ -1,27 +1,22 @@
# Template file for 'qt' # Template file for 'qt'
pkgname=qt pkgname=qt
version=4.8.1 version=4.8.2
patch_args="-Np1" patch_args="-Np1"
_distname=qt-everywhere-opensource-src _distname=qt-everywhere-opensource-src
wrksrc=${_distname}-${version} wrksrc=${_distname}-${version}
homepage="http://qt.nokia.com/" homepage="http://qt.nokia.com/"
distfiles="ftp://ftp.qt.nokia.com/qt/source/${_distname}-$version.tar.gz" subpackages="qt-libphonon qt-plugin-pgsql qt-plugin-mysql qt-plugin-sqlite qt-demos qt-docs qt-qmake qt-qtconfig qt-designer qt-devel qt-devel-tools qt-plugin-gstreamer"
# XXX Missing dependencies: unixodbc.
makedepends="pkg-config freetype-devel MesaLib-devel libXrender-devel fontconfig-devel libXext-devel libX11-devel libstdc++-devel libXi-devel libXv-devel libXinerama-devel libXrandr-devel libXcursor-devel zlib-devel dbus-devel glib-devel gstreamer-devel gst-plugins-base-devel sqlite-devel alsa-lib-devel openssl-devel tiff-devel libmng-devel jpeg-devel libpng-devel libSM-devel libICE-devel libmysqlclient-devel postgresql-libs-devel pulseaudio-devel gtk+-devel icu-devel cups-devel" makedepends="pkg-config freetype-devel MesaLib-devel libXrender-devel fontconfig-devel libXext-devel libX11-devel libstdc++-devel libXi-devel libXv-devel libXinerama-devel libXrandr-devel libXcursor-devel zlib-devel dbus-devel glib-devel gstreamer-devel gst-plugins-base-devel sqlite-devel alsa-lib-devel openssl-devel tiff-devel libmng-devel jpeg-devel libpng-devel libSM-devel libICE-devel libmysqlclient-devel postgresql-libs-devel pulseaudio-devel gtk+-devel icu-devel cups-devel"
short_desc="A cross-platform application and UI framework" short_desc="A cross-platform application and UI framework"
maintainer="Juan RP <xtraeme@gmail.com>" maintainer="Juan RP <xtraeme@gmail.com>"
license="GPL-3, LGPL-2.1" license="GPL-3, LGPL-2.1"
checksum=ef851a36aa41b4ad7a3e4c96ca27eaed2a629a6d2fa06c20f072118caed87ae8 distfiles="http://releases.qt-project.org/qt4/source/${_distname}-$version.tar.gz"
checksum=921b2a2d060934ceda65ae4615edec474cea13d3c893e7df19ad1262e7dc2379
long_desc=" long_desc="
Qt(TM) is a GUI software toolkit. Qt simplifies the task of writing and Qt(TM) is a GUI software toolkit. Qt simplifies the task of writing and
maintaining GUI (graphical user interface) applications." maintaining GUI (graphical user interface) applications."
subpackages="qt-libphonon qt-plugin-pgsql qt-plugin-mysql qt-plugin-sqlite"
subpackages="${subpackages} qt-demos qt-docs qt-qmake qt-qtconfig"
subpackages="${subpackages} qt-designer qt-devel qt-devel-tools"
subpackages="${subpackages} qt-plugin-gstreamer"
# XXX Missing dependencies: unixodbc.
do_configure() { do_configure() {
export LD_LIBRARY_PATH="${wrksrc}/lib:${LD_LIBRARY_PATH}" export LD_LIBRARY_PATH="${wrksrc}/lib:${LD_LIBRARY_PATH}"
@ -78,4 +73,6 @@ do_install() {
install -d ${DESTDIR}/usr/share/applications install -d ${DESTDIR}/usr/share/applications
install -m644 ${FILESDIR}/*.desktop \ install -m644 ${FILESDIR}/*.desktop \
${DESTDIR}/usr/share/applications ${DESTDIR}/usr/share/applications
vinstall LGPL_EXCEPTION.txt 644 usr/share/licenses/qt
} }