From 01fa844362d6214ec04cb4750d72d85894b4edff Mon Sep 17 00:00:00 2001 From: CentOS Sources Date: Jun 25 2015 13:35:55 +0000 Subject: import qt-4.8.5-10.aa7a --- diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..c956792 --- /dev/null +++ b/.gitignore @@ -0,0 +1,3 @@ +SOURCES/hi128-app-qt4-logo.png +SOURCES/hi48-app-qt4-logo.png +SOURCES/qt-everywhere-opensource-src-4.8.5.tar.gz diff --git a/.qt.metadata b/.qt.metadata new file mode 100644 index 0000000..e4ee5bd --- /dev/null +++ b/.qt.metadata @@ -0,0 +1,3 @@ +a1fe2c718e113dce72f960b549356395c86372f3 SOURCES/hi128-app-qt4-logo.png +2a1577e5c201a8a7e8ac105999732d9111aa0511 SOURCES/hi48-app-qt4-logo.png +745f9ebf091696c0d5403ce691dc28c039d77b9e SOURCES/qt-everywhere-opensource-src-4.8.5.tar.gz diff --git a/README.md b/README.md deleted file mode 100644 index 0e7897f..0000000 --- a/README.md +++ /dev/null @@ -1,5 +0,0 @@ -The master branch has no content - -Look at the c7 branch if you are working with CentOS-7, or the c4/c5/c6 branch for CentOS-4, 5 or 6 - -If you find this file in a distro specific branch, it means that no content has been checked in yet diff --git a/SOURCES/Trolltech.conf b/SOURCES/Trolltech.conf new file mode 100644 index 0000000..b125965 --- /dev/null +++ b/SOURCES/Trolltech.conf @@ -0,0 +1,3 @@ +[Qt] +font="Sans Serif,10,-1,5,50,0,0,0,0,0" + diff --git a/SOURCES/aarch64.patch b/SOURCES/aarch64.patch new file mode 100644 index 0000000..524f518 --- /dev/null +++ b/SOURCES/aarch64.patch @@ -0,0 +1,2258 @@ +Index: b/configure +=================================================================== +--- a/configure ++++ b/configure +@@ -2858,6 +2861,9 @@ + *86_64) + PLATFORM=qws/linux-x86_64-g++ + ;; ++ aarch64) ++ PLATFORM=linux-g++-aarch64 ++ ;; + *) + PLATFORM=qws/linux-generic-g++ + ;; +@@ -3303,6 +3309,12 @@ + echo " ARM (arm)" + fi + CFG_HOST_ARCH=arm ++ ;; ++ *:*:aarch64*) ++ if [ "$OPT_VERBOSE" = "yes" ]; then ++ echo " AArch64 (aarch64)" ++ fi ++ CFG_HOST_ARCH=aarch64 + ;; + Linux:*:sparc*) + if [ "$OPT_VERBOSE" = "yes" ]; then +diff --git a/include/QtCore/qatomic_aarch64.h b/include/QtCore/qatomic_aarch64.h +new file mode 100644 +index 0000000..2049aec +--- /dev/null ++++ b/include/QtCore/qatomic_aarch64.h +@@ -0,0 +1 @@ ++#include "../../src/corelib/arch/qatomic_aarch64.h" +Index: b/mkspecs/linux-g++-aarch64/qmake.conf +=================================================================== +--- /dev/null ++++ b/mkspecs/linux-g++-aarch64/qmake.conf +@@ -0,0 +1,28 @@ ++# ++# qmake configuration for linux-g++ ++# ++# Written for GNU/Linux platforms that have both lib and lib64 directories, ++# like the AMD Opteron. ++# ++ ++MAKEFILE_GENERATOR = UNIX ++TARGET_PLATFORM = unix ++TEMPLATE = app ++CONFIG += qt warn_on release incremental link_prl gdb_dwarf_index ++QT += core gui ++QMAKE_INCREMENTAL_STYLE = sublib ++ ++QMAKE_CFLAGS = -fpermissive ++QMAKE_LFLAGS = ++ ++QMAKE_CFLAGS_RELEASE += -O2 ++ ++include(../common/linux.conf) ++include(../common/gcc-base-unix.conf) ++include(../common/g++-unix.conf) ++ ++ ++QMAKE_LIBDIR_X11 = /usr/X11R6/lib64 ++QMAKE_LIBDIR_OPENGL = /usr/X11R6/lib64 ++ ++load(qt_config) +Index: b/mkspecs/linux-g++-aarch64/qplatformdefs.h +=================================================================== +--- /dev/null ++++ b/mkspecs/linux-g++-aarch64/qplatformdefs.h +@@ -0,0 +1,42 @@ ++/**************************************************************************** ++** ++** Copyright (C) 2012 Digia Plc and/or its subsidiary(-ies). ++** Contact: http://www.qt-project.org/legal ++** ++** This file is part of the qmake spec of the Qt Toolkit. ++** ++** $QT_BEGIN_LICENSE:LGPL$ ++** Commercial License Usage ++** Licensees holding valid commercial Qt licenses may use this file in ++** accordance with the commercial license agreement provided with the ++** Software or, alternatively, in accordance with the terms contained in ++** a written agreement between you and Digia. For licensing terms and ++** conditions see http://qt.digia.com/licensing. For further information ++** use the contact form at http://qt.digia.com/contact-us. ++** ++** GNU Lesser General Public License Usage ++** Alternatively, this file may be used under the terms of the GNU Lesser ++** General Public License version 2.1 as published by the Free Software ++** Foundation and appearing in the file LICENSE.LGPL included in the ++** packaging of this file. Please review the following information to ++** ensure the GNU Lesser General Public License version 2.1 requirements ++** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. ++** ++** In addition, as a special exception, Digia gives you certain additional ++** rights. These rights are described in the Digia Qt LGPL Exception ++** version 1.1, included in the file LGPL_EXCEPTION.txt in this package. ++** ++** GNU General Public License Usage ++** Alternatively, this file may be used under the terms of the GNU ++** General Public License version 3.0 as published by the Free Software ++** Foundation and appearing in the file LICENSE.GPL included in the ++** packaging of this file. Please review the following information to ++** ensure the GNU General Public License version 3.0 requirements will be ++** met: http://www.gnu.org/copyleft/gpl.html. ++** ++** ++** $QT_END_LICENSE$ ++** ++****************************************************************************/ ++ ++#include "../linux-g++/qplatformdefs.h" +Index: b/src/3rdparty/freetype/builds/unix/config.guess +=================================================================== +--- a/src/3rdparty/freetype/builds/unix/config.guess ++++ b/src/3rdparty/freetype/builds/unix/config.guess +@@ -1,14 +1,12 @@ + #! /bin/sh + # Attempt to guess a canonical system name. +-# Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, +-# 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008 +-# Free Software Foundation, Inc. ++# Copyright 1992-2013 Free Software Foundation, Inc. + +-timestamp='2009-02-03' ++timestamp='2013-05-16' + + # This file is free software; you can redistribute it and/or modify it + # under the terms of the GNU General Public License as published by +-# the Free Software Foundation; either version 2 of the License, or ++# the Free Software Foundation; either version 3 of the License, or + # (at your option) any later version. + # + # This program is distributed in the hope that it will be useful, but +@@ -17,26 +15,22 @@ + # General Public License for more details. + # + # You should have received a copy of the GNU General Public License +-# along with this program; if not, write to the Free Software +-# Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston, MA +-# 02110-1301, USA. ++# along with this program; if not, see . + # + # As a special exception to the GNU General Public License, if you + # distribute this file as part of a program that contains a + # configuration script generated by Autoconf, you may include it under +-# the same distribution terms that you use for the rest of that program. +- +- +-# Originally written by Per Bothner . +-# Please send patches to . Submit a context +-# diff and a properly formatted ChangeLog entry. ++# the same distribution terms that you use for the rest of that ++# program. This Exception is an additional permission under section 7 ++# of the GNU General Public License, version 3 ("GPLv3"). ++# ++# Originally written by Per Bothner. + # +-# This script attempts to guess a canonical system name similar to +-# config.sub. If it succeeds, it prints the system name on stdout, and +-# exits with 0. Otherwise, it exits with 1. ++# You can get the latest version of this script from: ++# http://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.guess;hb=HEAD + # +-# The plan is that this can be called by configure scripts if you +-# don't specify an explicit build system type. ++# Please send patches with a ChangeLog entry to config-patches@gnu.org. ++ + + me=`echo "$0" | sed -e 's,.*/,,'` + +@@ -56,8 +50,7 @@ + GNU config.guess ($timestamp) + + Originally written by Per Bothner. +-Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, +-2002, 2003, 2004, 2005, 2006, 2007, 2008 Free Software Foundation, Inc. ++Copyright 1992-2013 Free Software Foundation, Inc. + + This is free software; see the source for copying conditions. There is NO + warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE." +@@ -139,12 +132,33 @@ + UNAME_SYSTEM=`(uname -s) 2>/dev/null` || UNAME_SYSTEM=unknown + UNAME_VERSION=`(uname -v) 2>/dev/null` || UNAME_VERSION=unknown + ++case "${UNAME_SYSTEM}" in ++Linux|GNU|GNU/*) ++ # If the system lacks a compiler, then just pick glibc. ++ # We could probably try harder. ++ LIBC=gnu ++ ++ eval $set_cc_for_build ++ cat <<-EOF > $dummy.c ++ #include ++ #if defined(__UCLIBC__) ++ LIBC=uclibc ++ #elif defined(__dietlibc__) ++ LIBC=dietlibc ++ #else ++ LIBC=gnu ++ #endif ++ EOF ++ eval `$CC_FOR_BUILD -E $dummy.c 2>/dev/null | grep '^LIBC'` ++ ;; ++esac ++ + # Note: order is significant - the case branches are not exclusive. + + case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in + *:NetBSD:*:*) + # NetBSD (nbsd) targets should (where applicable) match one or +- # more of the tupples: *-*-netbsdelf*, *-*-netbsdaout*, ++ # more of the tuples: *-*-netbsdelf*, *-*-netbsdaout*, + # *-*-netbsdecoff* and *-*-netbsd*. For targets that recently + # switched to ELF, *-*-netbsd* would select the old + # object file format. This provides both forward +@@ -170,7 +184,7 @@ + arm*|i386|m68k|ns32k|sh3*|sparc|vax) + eval $set_cc_for_build + if echo __ELF__ | $CC_FOR_BUILD -E - 2>/dev/null \ +- | grep __ELF__ >/dev/null ++ | grep -q __ELF__ + then + # Once all utilities can be ECOFF (netbsdecoff) or a.out (netbsdaout). + # Return netbsd for either. FIX? +@@ -180,7 +194,7 @@ + fi + ;; + *) +- os=netbsd ++ os=netbsd + ;; + esac + # The OS release +@@ -201,6 +215,10 @@ + # CPU_TYPE-MANUFACTURER-OPERATING_SYSTEM is used. + echo "${machine}-${os}${release}" + exit ;; ++ *:Bitrig:*:*) ++ UNAME_MACHINE_ARCH=`arch | sed 's/Bitrig.//'` ++ echo ${UNAME_MACHINE_ARCH}-unknown-bitrig${UNAME_RELEASE} ++ exit ;; + *:OpenBSD:*:*) + UNAME_MACHINE_ARCH=`arch | sed 's/OpenBSD.//'` + echo ${UNAME_MACHINE_ARCH}-unknown-openbsd${UNAME_RELEASE} +@@ -223,7 +241,7 @@ + UNAME_RELEASE=`/usr/sbin/sizer -v | awk '{print $3}'` + ;; + *5.*) +- UNAME_RELEASE=`/usr/sbin/sizer -v | awk '{print $4}'` ++ UNAME_RELEASE=`/usr/sbin/sizer -v | awk '{print $4}'` + ;; + esac + # According to Compaq, /usr/sbin/psrinfo has been available on +@@ -269,7 +287,10 @@ + # A Xn.n version is an unreleased experimental baselevel. + # 1.2 uses "1.2" for uname -r. + echo ${UNAME_MACHINE}-dec-osf`echo ${UNAME_RELEASE} | sed -e 's/^[PVTX]//' | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz'` +- exit ;; ++ # Reset EXIT trap before exiting to avoid spurious non-zero exit code. ++ exitcode=$? ++ trap '' 0 ++ exit $exitcode ;; + Alpha\ *:Windows_NT*:*) + # How do we know it's Interix rather than the generic POSIX subsystem? + # Should we change UNAME_MACHINE based on the output of uname instead +@@ -295,12 +316,12 @@ + echo s390-ibm-zvmoe + exit ;; + *:OS400:*:*) +- echo powerpc-ibm-os400 ++ echo powerpc-ibm-os400 + exit ;; + arm:RISC*:1.[012]*:*|arm:riscix:1.[012]*:*) + echo arm-acorn-riscix${UNAME_RELEASE} + exit ;; +- arm:riscos:*:*|arm:RISCOS:*:*) ++ arm*:riscos:*:*|arm*:RISCOS:*:*) + echo arm-unknown-riscos + exit ;; + SR2?01:HI-UX/MPP:*:* | SR8000:HI-UX/MPP:*:*) +@@ -324,12 +345,18 @@ + case `/usr/bin/uname -p` in + sparc) echo sparc-icl-nx7; exit ;; + esac ;; ++ s390x:SunOS:*:*) ++ echo ${UNAME_MACHINE}-ibm-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` ++ exit ;; + sun4H:SunOS:5.*:*) + echo sparc-hal-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` + exit ;; + sun4*:SunOS:5.*:* | tadpole*:SunOS:5.*:*) + echo sparc-sun-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` + exit ;; ++ i86pc:AuroraUX:5.*:* | i86xen:AuroraUX:5.*:*) ++ echo i386-pc-auroraux${UNAME_RELEASE} ++ exit ;; + i86pc:SunOS:5.*:* | i86xen:SunOS:5.*:*) + eval $set_cc_for_build + SUN_ARCH="i386" +@@ -388,23 +415,23 @@ + # MiNT. But MiNT is downward compatible to TOS, so this should + # be no problem. + atarist[e]:*MiNT:*:* | atarist[e]:*mint:*:* | atarist[e]:*TOS:*:*) +- echo m68k-atari-mint${UNAME_RELEASE} ++ echo m68k-atari-mint${UNAME_RELEASE} + exit ;; + atari*:*MiNT:*:* | atari*:*mint:*:* | atarist[e]:*TOS:*:*) + echo m68k-atari-mint${UNAME_RELEASE} +- exit ;; ++ exit ;; + *falcon*:*MiNT:*:* | *falcon*:*mint:*:* | *falcon*:*TOS:*:*) +- echo m68k-atari-mint${UNAME_RELEASE} ++ echo m68k-atari-mint${UNAME_RELEASE} + exit ;; + milan*:*MiNT:*:* | milan*:*mint:*:* | *milan*:*TOS:*:*) +- echo m68k-milan-mint${UNAME_RELEASE} +- exit ;; ++ echo m68k-milan-mint${UNAME_RELEASE} ++ exit ;; + hades*:*MiNT:*:* | hades*:*mint:*:* | *hades*:*TOS:*:*) +- echo m68k-hades-mint${UNAME_RELEASE} +- exit ;; ++ echo m68k-hades-mint${UNAME_RELEASE} ++ exit ;; + *:*MiNT:*:* | *:*mint:*:* | *:*TOS:*:*) +- echo m68k-unknown-mint${UNAME_RELEASE} +- exit ;; ++ echo m68k-unknown-mint${UNAME_RELEASE} ++ exit ;; + m68k:machten:*:*) + echo m68k-apple-machten${UNAME_RELEASE} + exit ;; +@@ -474,8 +501,8 @@ + echo m88k-motorola-sysv3 + exit ;; + AViiON:dgux:*:*) +- # DG/UX returns AViiON for all architectures +- UNAME_PROCESSOR=`/usr/bin/uname -p` ++ # DG/UX returns AViiON for all architectures ++ UNAME_PROCESSOR=`/usr/bin/uname -p` + if [ $UNAME_PROCESSOR = mc88100 ] || [ $UNAME_PROCESSOR = mc88110 ] + then + if [ ${TARGET_BINARY_INTERFACE}x = m88kdguxelfx ] || \ +@@ -488,7 +515,7 @@ + else + echo i586-dg-dgux${UNAME_RELEASE} + fi +- exit ;; ++ exit ;; + M88*:DolphinOS:*:*) # DolphinOS (SVR3) + echo m88k-dolphin-sysv3 + exit ;; +@@ -545,7 +572,7 @@ + echo rs6000-ibm-aix3.2 + fi + exit ;; +- *:AIX:*:[456]) ++ *:AIX:*:[4567]) + IBM_CPU_ID=`/usr/sbin/lsdev -C -c processor -S available | sed 1q | awk '{ print $1 }'` + if /usr/sbin/lsattr -El ${IBM_CPU_ID} | grep ' POWER' >/dev/null 2>&1; then + IBM_ARCH=rs6000 +@@ -588,52 +615,52 @@ + 9000/[678][0-9][0-9]) + if [ -x /usr/bin/getconf ]; then + sc_cpu_version=`/usr/bin/getconf SC_CPU_VERSION 2>/dev/null` +- sc_kernel_bits=`/usr/bin/getconf SC_KERNEL_BITS 2>/dev/null` +- case "${sc_cpu_version}" in +- 523) HP_ARCH="hppa1.0" ;; # CPU_PA_RISC1_0 +- 528) HP_ARCH="hppa1.1" ;; # CPU_PA_RISC1_1 +- 532) # CPU_PA_RISC2_0 +- case "${sc_kernel_bits}" in +- 32) HP_ARCH="hppa2.0n" ;; +- 64) HP_ARCH="hppa2.0w" ;; ++ sc_kernel_bits=`/usr/bin/getconf SC_KERNEL_BITS 2>/dev/null` ++ case "${sc_cpu_version}" in ++ 523) HP_ARCH="hppa1.0" ;; # CPU_PA_RISC1_0 ++ 528) HP_ARCH="hppa1.1" ;; # CPU_PA_RISC1_1 ++ 532) # CPU_PA_RISC2_0 ++ case "${sc_kernel_bits}" in ++ 32) HP_ARCH="hppa2.0n" ;; ++ 64) HP_ARCH="hppa2.0w" ;; + '') HP_ARCH="hppa2.0" ;; # HP-UX 10.20 +- esac ;; +- esac ++ esac ;; ++ esac + fi + if [ "${HP_ARCH}" = "" ]; then + eval $set_cc_for_build +- sed 's/^ //' << EOF >$dummy.c ++ sed 's/^ //' << EOF >$dummy.c + +- #define _HPUX_SOURCE +- #include +- #include +- +- int main () +- { +- #if defined(_SC_KERNEL_BITS) +- long bits = sysconf(_SC_KERNEL_BITS); +- #endif +- long cpu = sysconf (_SC_CPU_VERSION); +- +- switch (cpu) +- { +- case CPU_PA_RISC1_0: puts ("hppa1.0"); break; +- case CPU_PA_RISC1_1: puts ("hppa1.1"); break; +- case CPU_PA_RISC2_0: +- #if defined(_SC_KERNEL_BITS) +- switch (bits) +- { +- case 64: puts ("hppa2.0w"); break; +- case 32: puts ("hppa2.0n"); break; +- default: puts ("hppa2.0"); break; +- } break; +- #else /* !defined(_SC_KERNEL_BITS) */ +- puts ("hppa2.0"); break; +- #endif +- default: puts ("hppa1.0"); break; +- } +- exit (0); +- } ++ #define _HPUX_SOURCE ++ #include ++ #include ++ ++ int main () ++ { ++ #if defined(_SC_KERNEL_BITS) ++ long bits = sysconf(_SC_KERNEL_BITS); ++ #endif ++ long cpu = sysconf (_SC_CPU_VERSION); ++ ++ switch (cpu) ++ { ++ case CPU_PA_RISC1_0: puts ("hppa1.0"); break; ++ case CPU_PA_RISC1_1: puts ("hppa1.1"); break; ++ case CPU_PA_RISC2_0: ++ #if defined(_SC_KERNEL_BITS) ++ switch (bits) ++ { ++ case 64: puts ("hppa2.0w"); break; ++ case 32: puts ("hppa2.0n"); break; ++ default: puts ("hppa2.0"); break; ++ } break; ++ #else /* !defined(_SC_KERNEL_BITS) */ ++ puts ("hppa2.0"); break; ++ #endif ++ default: puts ("hppa1.0"); break; ++ } ++ exit (0); ++ } + EOF + (CCOPTS= $CC_FOR_BUILD -o $dummy $dummy.c 2>/dev/null) && HP_ARCH=`$dummy` + test -z "$HP_ARCH" && HP_ARCH=hppa +@@ -653,7 +680,7 @@ + # => hppa64-hp-hpux11.23 + + if echo __LP64__ | (CCOPTS= $CC_FOR_BUILD -E - 2>/dev/null) | +- grep __LP64__ >/dev/null ++ grep -q __LP64__ + then + HP_ARCH="hppa2.0w" + else +@@ -724,22 +751,22 @@ + exit ;; + C1*:ConvexOS:*:* | convex:ConvexOS:C1*:*) + echo c1-convex-bsd +- exit ;; ++ exit ;; + C2*:ConvexOS:*:* | convex:ConvexOS:C2*:*) + if getsysinfo -f scalar_acc + then echo c32-convex-bsd + else echo c2-convex-bsd + fi +- exit ;; ++ exit ;; + C34*:ConvexOS:*:* | convex:ConvexOS:C34*:*) + echo c34-convex-bsd +- exit ;; ++ exit ;; + C38*:ConvexOS:*:* | convex:ConvexOS:C38*:*) + echo c38-convex-bsd +- exit ;; ++ exit ;; + C4*:ConvexOS:*:* | convex:ConvexOS:C4*:*) + echo c4-convex-bsd +- exit ;; ++ exit ;; + CRAY*Y-MP:*:*:*) + echo ymp-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' + exit ;; +@@ -763,14 +790,14 @@ + exit ;; + F30[01]:UNIX_System_V:*:* | F700:UNIX_System_V:*:*) + FUJITSU_PROC=`uname -m | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz'` +- FUJITSU_SYS=`uname -p | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz' | sed -e 's/\///'` +- FUJITSU_REL=`echo ${UNAME_RELEASE} | sed -e 's/ /_/'` +- echo "${FUJITSU_PROC}-fujitsu-${FUJITSU_SYS}${FUJITSU_REL}" +- exit ;; ++ FUJITSU_SYS=`uname -p | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz' | sed -e 's/\///'` ++ FUJITSU_REL=`echo ${UNAME_RELEASE} | sed -e 's/ /_/'` ++ echo "${FUJITSU_PROC}-fujitsu-${FUJITSU_SYS}${FUJITSU_REL}" ++ exit ;; + 5000:UNIX_System_V:4.*:*) +- FUJITSU_SYS=`uname -p | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz' | sed -e 's/\///'` +- FUJITSU_REL=`echo ${UNAME_RELEASE} | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz' | sed -e 's/ /_/'` +- echo "sparc-fujitsu-${FUJITSU_SYS}${FUJITSU_REL}" ++ FUJITSU_SYS=`uname -p | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz' | sed -e 's/\///'` ++ FUJITSU_REL=`echo ${UNAME_RELEASE} | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz' | sed -e 's/ /_/'` ++ echo "sparc-fujitsu-${FUJITSU_SYS}${FUJITSU_REL}" + exit ;; + i*86:BSD/386:*:* | i*86:BSD/OS:*:* | *:Ascend\ Embedded/OS:*:*) + echo ${UNAME_MACHINE}-pc-bsdi${UNAME_RELEASE} +@@ -782,34 +809,39 @@ + echo ${UNAME_MACHINE}-unknown-bsdi${UNAME_RELEASE} + exit ;; + *:FreeBSD:*:*) +- case ${UNAME_MACHINE} in +- pc98) +- echo i386-unknown-freebsd`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'` ;; ++ UNAME_PROCESSOR=`/usr/bin/uname -p` ++ case ${UNAME_PROCESSOR} in + amd64) + echo x86_64-unknown-freebsd`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'` ;; + *) +- echo ${UNAME_MACHINE}-unknown-freebsd`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'` ;; ++ echo ${UNAME_PROCESSOR}-unknown-freebsd`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'` ;; + esac + exit ;; + i*:CYGWIN*:*) + echo ${UNAME_MACHINE}-pc-cygwin + exit ;; ++ *:MINGW64*:*) ++ echo ${UNAME_MACHINE}-pc-mingw64 ++ exit ;; + *:MINGW*:*) + echo ${UNAME_MACHINE}-pc-mingw32 + exit ;; ++ i*:MSYS*:*) ++ echo ${UNAME_MACHINE}-pc-msys ++ exit ;; + i*:windows32*:*) +- # uname -m includes "-pc" on this system. +- echo ${UNAME_MACHINE}-mingw32 ++ # uname -m includes "-pc" on this system. ++ echo ${UNAME_MACHINE}-mingw32 + exit ;; + i*:PW*:*) + echo ${UNAME_MACHINE}-pc-pw32 + exit ;; +- *:Interix*:[3456]*) +- case ${UNAME_MACHINE} in ++ *:Interix*:*) ++ case ${UNAME_MACHINE} in + x86) + echo i586-pc-interix${UNAME_RELEASE} + exit ;; +- EM64T | authenticamd | genuineintel) ++ authenticamd | genuineintel | EM64T) + echo x86_64-unknown-interix${UNAME_RELEASE} + exit ;; + IA64) +@@ -819,6 +851,9 @@ + [345]86:Windows_95:* | [345]86:Windows_98:* | [345]86:Windows_NT:*) + echo i${UNAME_MACHINE}-pc-mks + exit ;; ++ 8664:Windows_NT:*) ++ echo x86_64-pc-mks ++ exit ;; + i*:Windows_NT*:* | Pentium*:Windows_NT*:*) + # How do we know it's Interix rather than the generic POSIX subsystem? + # It also conflicts with pre-2.0 versions of AT&T UWIN. Should we +@@ -839,210 +874,151 @@ + exit ;; + *:GNU:*:*) + # the GNU system +- echo `echo ${UNAME_MACHINE}|sed -e 's,[-/].*$,,'`-unknown-gnu`echo ${UNAME_RELEASE}|sed -e 's,/.*$,,'` ++ echo `echo ${UNAME_MACHINE}|sed -e 's,[-/].*$,,'`-unknown-${LIBC}`echo ${UNAME_RELEASE}|sed -e 's,/.*$,,'` + exit ;; + *:GNU/*:*:*) + # other systems with GNU libc and userland +- echo ${UNAME_MACHINE}-unknown-`echo ${UNAME_SYSTEM} | sed 's,^[^/]*/,,' | tr '[A-Z]' '[a-z]'``echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'`-gnu ++ echo ${UNAME_MACHINE}-unknown-`echo ${UNAME_SYSTEM} | sed 's,^[^/]*/,,' | tr '[A-Z]' '[a-z]'``echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'`-${LIBC} + exit ;; + i*86:Minix:*:*) + echo ${UNAME_MACHINE}-pc-minix + exit ;; ++ aarch64:Linux:*:*) ++ echo ${UNAME_MACHINE}-unknown-linux-${LIBC} ++ exit ;; ++ aarch64_be:Linux:*:*) ++ UNAME_MACHINE=aarch64_be ++ echo ${UNAME_MACHINE}-unknown-linux-${LIBC} ++ exit ;; ++ alpha:Linux:*:*) ++ case `sed -n '/^cpu model/s/^.*: \(.*\)/\1/p' < /proc/cpuinfo` in ++ EV5) UNAME_MACHINE=alphaev5 ;; ++ EV56) UNAME_MACHINE=alphaev56 ;; ++ PCA56) UNAME_MACHINE=alphapca56 ;; ++ PCA57) UNAME_MACHINE=alphapca56 ;; ++ EV6) UNAME_MACHINE=alphaev6 ;; ++ EV67) UNAME_MACHINE=alphaev67 ;; ++ EV68*) UNAME_MACHINE=alphaev68 ;; ++ esac ++ objdump --private-headers /bin/sh | grep -q ld.so.1 ++ if test "$?" = 0 ; then LIBC="gnulibc1" ; fi ++ echo ${UNAME_MACHINE}-unknown-linux-${LIBC} ++ exit ;; ++ arc:Linux:*:* | arceb:Linux:*:*) ++ echo ${UNAME_MACHINE}-unknown-linux-${LIBC} ++ exit ;; + arm*:Linux:*:*) + eval $set_cc_for_build + if echo __ARM_EABI__ | $CC_FOR_BUILD -E - 2>/dev/null \ + | grep -q __ARM_EABI__ + then +- echo ${UNAME_MACHINE}-unknown-linux-gnu ++ echo ${UNAME_MACHINE}-unknown-linux-${LIBC} + else +- echo ${UNAME_MACHINE}-unknown-linux-gnueabi ++ if echo __ARM_PCS_VFP | $CC_FOR_BUILD -E - 2>/dev/null \ ++ | grep -q __ARM_PCS_VFP ++ then ++ echo ${UNAME_MACHINE}-unknown-linux-${LIBC}eabi ++ else ++ echo ${UNAME_MACHINE}-unknown-linux-${LIBC}eabihf ++ fi + fi + exit ;; + avr32*:Linux:*:*) +- echo ${UNAME_MACHINE}-unknown-linux-gnu ++ echo ${UNAME_MACHINE}-unknown-linux-${LIBC} + exit ;; + cris:Linux:*:*) +- echo cris-axis-linux-gnu ++ echo ${UNAME_MACHINE}-axis-linux-${LIBC} + exit ;; + crisv32:Linux:*:*) +- echo crisv32-axis-linux-gnu ++ echo ${UNAME_MACHINE}-axis-linux-${LIBC} + exit ;; + frv:Linux:*:*) +- echo frv-unknown-linux-gnu ++ echo ${UNAME_MACHINE}-unknown-linux-${LIBC} ++ exit ;; ++ hexagon:Linux:*:*) ++ echo ${UNAME_MACHINE}-unknown-linux-${LIBC} ++ exit ;; ++ i*86:Linux:*:*) ++ echo ${UNAME_MACHINE}-pc-linux-${LIBC} + exit ;; + ia64:Linux:*:*) +- echo ${UNAME_MACHINE}-unknown-linux-gnu ++ echo ${UNAME_MACHINE}-unknown-linux-${LIBC} + exit ;; + m32r*:Linux:*:*) +- echo ${UNAME_MACHINE}-unknown-linux-gnu ++ echo ${UNAME_MACHINE}-unknown-linux-${LIBC} + exit ;; + m68*:Linux:*:*) +- echo ${UNAME_MACHINE}-unknown-linux-gnu ++ echo ${UNAME_MACHINE}-unknown-linux-${LIBC} + exit ;; +- mips:Linux:*:*) ++ mips:Linux:*:* | mips64:Linux:*:*) + eval $set_cc_for_build + sed 's/^ //' << EOF >$dummy.c + #undef CPU +- #undef mips +- #undef mipsel ++ #undef ${UNAME_MACHINE} ++ #undef ${UNAME_MACHINE}el + #if defined(__MIPSEL__) || defined(__MIPSEL) || defined(_MIPSEL) || defined(MIPSEL) +- CPU=mipsel ++ CPU=${UNAME_MACHINE}el + #else + #if defined(__MIPSEB__) || defined(__MIPSEB) || defined(_MIPSEB) || defined(MIPSEB) +- CPU=mips ++ CPU=${UNAME_MACHINE} + #else + CPU= + #endif + #endif + EOF +- eval "`$CC_FOR_BUILD -E $dummy.c 2>/dev/null | sed -n ' +- /^CPU/{ +- s: ::g +- p +- }'`" +- test x"${CPU}" != x && { echo "${CPU}-unknown-linux-gnu"; exit; } ++ eval `$CC_FOR_BUILD -E $dummy.c 2>/dev/null | grep '^CPU'` ++ test x"${CPU}" != x && { echo "${CPU}-unknown-linux-${LIBC}"; exit; } + ;; +- mips64:Linux:*:*) +- eval $set_cc_for_build +- sed 's/^ //' << EOF >$dummy.c +- #undef CPU +- #undef mips64 +- #undef mips64el +- #if defined(__MIPSEL__) || defined(__MIPSEL) || defined(_MIPSEL) || defined(MIPSEL) +- CPU=mips64el +- #else +- #if defined(__MIPSEB__) || defined(__MIPSEB) || defined(_MIPSEB) || defined(MIPSEB) +- CPU=mips64 +- #else +- CPU= +- #endif +- #endif +-EOF +- eval "`$CC_FOR_BUILD -E $dummy.c 2>/dev/null | sed -n ' +- /^CPU/{ +- s: ::g +- p +- }'`" +- test x"${CPU}" != x && { echo "${CPU}-unknown-linux-gnu"; exit; } +- ;; +- or32:Linux:*:*) +- echo or32-unknown-linux-gnu ++ or1k:Linux:*:*) ++ echo ${UNAME_MACHINE}-unknown-linux-${LIBC} + exit ;; +- ppc:Linux:*:*) +- echo powerpc-unknown-linux-gnu +- exit ;; +- ppc64:Linux:*:*) +- echo powerpc64-unknown-linux-gnu +- exit ;; +- alpha:Linux:*:*) +- case `sed -n '/^cpu model/s/^.*: \(.*\)/\1/p' < /proc/cpuinfo` in +- EV5) UNAME_MACHINE=alphaev5 ;; +- EV56) UNAME_MACHINE=alphaev56 ;; +- PCA56) UNAME_MACHINE=alphapca56 ;; +- PCA57) UNAME_MACHINE=alphapca56 ;; +- EV6) UNAME_MACHINE=alphaev6 ;; +- EV67) UNAME_MACHINE=alphaev67 ;; +- EV68*) UNAME_MACHINE=alphaev68 ;; +- esac +- objdump --private-headers /bin/sh | grep ld.so.1 >/dev/null +- if test "$?" = 0 ; then LIBC="libc1" ; else LIBC="" ; fi +- echo ${UNAME_MACHINE}-unknown-linux-gnu${LIBC} ++ or32:Linux:*:*) ++ echo ${UNAME_MACHINE}-unknown-linux-${LIBC} + exit ;; + padre:Linux:*:*) +- echo sparc-unknown-linux-gnu ++ echo sparc-unknown-linux-${LIBC} ++ exit ;; ++ parisc64:Linux:*:* | hppa64:Linux:*:*) ++ echo hppa64-unknown-linux-${LIBC} + exit ;; + parisc:Linux:*:* | hppa:Linux:*:*) + # Look for CPU level + case `grep '^cpu[^a-z]*:' /proc/cpuinfo 2>/dev/null | cut -d' ' -f2` in +- PA7*) echo hppa1.1-unknown-linux-gnu ;; +- PA8*) echo hppa2.0-unknown-linux-gnu ;; +- *) echo hppa-unknown-linux-gnu ;; ++ PA7*) echo hppa1.1-unknown-linux-${LIBC} ;; ++ PA8*) echo hppa2.0-unknown-linux-${LIBC} ;; ++ *) echo hppa-unknown-linux-${LIBC} ;; + esac + exit ;; +- parisc64:Linux:*:* | hppa64:Linux:*:*) +- echo hppa64-unknown-linux-gnu ++ ppc64:Linux:*:*) ++ echo powerpc64-unknown-linux-${LIBC} ++ exit ;; ++ ppc:Linux:*:*) ++ echo powerpc-unknown-linux-${LIBC} + exit ;; + s390:Linux:*:* | s390x:Linux:*:*) +- echo ${UNAME_MACHINE}-ibm-linux ++ echo ${UNAME_MACHINE}-ibm-linux-${LIBC} + exit ;; + sh64*:Linux:*:*) +- echo ${UNAME_MACHINE}-unknown-linux-gnu ++ echo ${UNAME_MACHINE}-unknown-linux-${LIBC} + exit ;; + sh*:Linux:*:*) +- echo ${UNAME_MACHINE}-unknown-linux-gnu ++ echo ${UNAME_MACHINE}-unknown-linux-${LIBC} + exit ;; + sparc:Linux:*:* | sparc64:Linux:*:*) +- echo ${UNAME_MACHINE}-unknown-linux-gnu ++ echo ${UNAME_MACHINE}-unknown-linux-${LIBC} ++ exit ;; ++ tile*:Linux:*:*) ++ echo ${UNAME_MACHINE}-unknown-linux-${LIBC} + exit ;; + vax:Linux:*:*) +- echo ${UNAME_MACHINE}-dec-linux-gnu ++ echo ${UNAME_MACHINE}-dec-linux-${LIBC} + exit ;; + x86_64:Linux:*:*) +- echo x86_64-unknown-linux-gnu ++ echo ${UNAME_MACHINE}-unknown-linux-${LIBC} + exit ;; + xtensa*:Linux:*:*) +- echo ${UNAME_MACHINE}-unknown-linux-gnu ++ echo ${UNAME_MACHINE}-unknown-linux-${LIBC} + exit ;; +- i*86:Linux:*:*) +- # The BFD linker knows what the default object file format is, so +- # first see if it will tell us. cd to the root directory to prevent +- # problems with other programs or directories called `ld' in the path. +- # Set LC_ALL=C to ensure ld outputs messages in English. +- ld_supported_targets=`cd /; LC_ALL=C ld --help 2>&1 \ +- | sed -ne '/supported targets:/!d +- s/[ ][ ]*/ /g +- s/.*supported targets: *// +- s/ .*// +- p'` +- case "$ld_supported_targets" in +- elf32-i386) +- TENTATIVE="${UNAME_MACHINE}-pc-linux-gnu" +- ;; +- a.out-i386-linux) +- echo "${UNAME_MACHINE}-pc-linux-gnuaout" +- exit ;; +- "") +- # Either a pre-BFD a.out linker (linux-gnuoldld) or +- # one that does not give us useful --help. +- echo "${UNAME_MACHINE}-pc-linux-gnuoldld" +- exit ;; +- esac +- # Determine whether the default compiler is a.out or elf +- eval $set_cc_for_build +- sed 's/^ //' << EOF >$dummy.c +- #include +- #ifdef __ELF__ +- # ifdef __GLIBC__ +- # if __GLIBC__ >= 2 +- LIBC=gnu +- # else +- LIBC=gnulibc1 +- # endif +- # else +- LIBC=gnulibc1 +- # endif +- #else +- #if defined(__INTEL_COMPILER) || defined(__PGI) || defined(__SUNPRO_C) || defined(__SUNPRO_CC) +- LIBC=gnu +- #else +- LIBC=gnuaout +- #endif +- #endif +- #ifdef __dietlibc__ +- LIBC=dietlibc +- #endif +-EOF +- eval "`$CC_FOR_BUILD -E $dummy.c 2>/dev/null | sed -n ' +- /^LIBC/{ +- s: ::g +- p +- }'`" +- test x"${LIBC}" != x && { +- echo "${UNAME_MACHINE}-pc-linux-${LIBC}" +- exit +- } +- test x"${TENTATIVE}" != x && { echo "${TENTATIVE}"; exit; } +- ;; + i*86:DYNIX/ptx:4*:*) + # ptx 4.0 does uname -s correctly, with DYNIX/ptx in there. + # earlier versions are messed up and put the nodename in both +@@ -1050,11 +1026,11 @@ + echo i386-sequent-sysv4 + exit ;; + i*86:UNIX_SV:4.2MP:2.*) +- # Unixware is an offshoot of SVR4, but it has its own version +- # number series starting with 2... +- # I am not positive that other SVR4 systems won't match this, ++ # Unixware is an offshoot of SVR4, but it has its own version ++ # number series starting with 2... ++ # I am not positive that other SVR4 systems won't match this, + # I just have to hope. -- rms. +- # Use sysv4.2uw... so that sysv4* matches it. ++ # Use sysv4.2uw... so that sysv4* matches it. + echo ${UNAME_MACHINE}-pc-sysv4.2uw${UNAME_VERSION} + exit ;; + i*86:OS/2:*:*) +@@ -1071,7 +1047,7 @@ + i*86:syllable:*:*) + echo ${UNAME_MACHINE}-pc-syllable + exit ;; +- i*86:LynxOS:2.*:* | i*86:LynxOS:3.[01]*:* | i*86:LynxOS:4.0*:*) ++ i*86:LynxOS:2.*:* | i*86:LynxOS:3.[01]*:* | i*86:LynxOS:4.[02]*:*) + echo i386-unknown-lynxos${UNAME_RELEASE} + exit ;; + i*86:*DOS:*:*) +@@ -1086,7 +1062,7 @@ + fi + exit ;; + i*86:*:5:[678]*) +- # UnixWare 7.x, OpenUNIX and OpenServer 6. ++ # UnixWare 7.x, OpenUNIX and OpenServer 6. + case `/bin/uname -X | grep "^Machine"` in + *486*) UNAME_MACHINE=i486 ;; + *Pentium) UNAME_MACHINE=i586 ;; +@@ -1114,10 +1090,13 @@ + exit ;; + pc:*:*:*) + # Left here for compatibility: +- # uname -m prints for DJGPP always 'pc', but it prints nothing about +- # the processor, so we play safe by assuming i386. +- echo i386-pc-msdosdjgpp +- exit ;; ++ # uname -m prints for DJGPP always 'pc', but it prints nothing about ++ # the processor, so we play safe by assuming i586. ++ # Note: whatever this is, it MUST be the same as what config.sub ++ # prints for the "djgpp" host, or else GDB configury will decide that ++ # this is a cross-build. ++ echo i586-pc-msdosdjgpp ++ exit ;; + Intel:Mach:3*:*) + echo i386-pc-mach3 + exit ;; +@@ -1152,8 +1131,8 @@ + /bin/uname -p 2>/dev/null | /bin/grep entium >/dev/null \ + && { echo i586-ncr-sysv4.3${OS_REL}; exit; } ;; + 3[34]??:*:4.0:* | 3[34]??,*:*:4.0:*) +- /bin/uname -p 2>/dev/null | grep 86 >/dev/null \ +- && { echo i486-ncr-sysv4; exit; } ;; ++ /bin/uname -p 2>/dev/null | grep 86 >/dev/null \ ++ && { echo i486-ncr-sysv4; exit; } ;; + NCR*:*:4.2:* | MPRAS*:*:4.2:*) + OS_REL='.3' + test -r /etc/.relid \ +@@ -1176,7 +1155,7 @@ + rs6000:LynxOS:2.*:*) + echo rs6000-unknown-lynxos${UNAME_RELEASE} + exit ;; +- PowerPC:LynxOS:2.*:* | PowerPC:LynxOS:3.[01]*:* | PowerPC:LynxOS:4.0*:*) ++ PowerPC:LynxOS:2.*:* | PowerPC:LynxOS:3.[01]*:* | PowerPC:LynxOS:4.[02]*:*) + echo powerpc-unknown-lynxos${UNAME_RELEASE} + exit ;; + SM[BE]S:UNIX_SV:*:*) +@@ -1196,10 +1175,10 @@ + echo ns32k-sni-sysv + fi + exit ;; +- PENTIUM:*:4.0*:*) # Unisys `ClearPath HMP IX 4000' SVR4/MP effort +- # says +- echo i586-unisys-sysv4 +- exit ;; ++ PENTIUM:*:4.0*:*) # Unisys `ClearPath HMP IX 4000' SVR4/MP effort ++ # says ++ echo i586-unisys-sysv4 ++ exit ;; + *:UNIX_System_V:4*:FTX*) + # From Gerald Hewes . + # How about differentiating between stratus architectures? -djm +@@ -1225,11 +1204,11 @@ + exit ;; + R[34]000:*System_V*:*:* | R4000:UNIX_SYSV:*:* | R*000:UNIX_SV:*:*) + if [ -d /usr/nec ]; then +- echo mips-nec-sysv${UNAME_RELEASE} ++ echo mips-nec-sysv${UNAME_RELEASE} + else +- echo mips-unknown-sysv${UNAME_RELEASE} ++ echo mips-unknown-sysv${UNAME_RELEASE} + fi +- exit ;; ++ exit ;; + BeBox:BeOS:*:*) # BeOS running on hardware made by Be, PPC only. + echo powerpc-be-beos + exit ;; +@@ -1242,6 +1221,9 @@ + BePC:Haiku:*:*) # Haiku running on Intel PC compatible. + echo i586-pc-haiku + exit ;; ++ x86_64:Haiku:*:*) ++ echo x86_64-unknown-haiku ++ exit ;; + SX-4:SUPER-UX:*:*) + echo sx4-nec-superux${UNAME_RELEASE} + exit ;; +@@ -1268,9 +1250,21 @@ + exit ;; + *:Darwin:*:*) + UNAME_PROCESSOR=`uname -p` || UNAME_PROCESSOR=unknown +- case $UNAME_PROCESSOR in +- unknown) UNAME_PROCESSOR=powerpc ;; +- esac ++ eval $set_cc_for_build ++ if test "$UNAME_PROCESSOR" = unknown ; then ++ UNAME_PROCESSOR=powerpc ++ fi ++ if [ "$CC_FOR_BUILD" != 'no_compiler_found' ]; then ++ if (echo '#ifdef __LP64__'; echo IS_64BIT_ARCH; echo '#endif') | \ ++ (CCOPTS= $CC_FOR_BUILD -E - 2>/dev/null) | \ ++ grep IS_64BIT_ARCH >/dev/null ++ then ++ case $UNAME_PROCESSOR in ++ i386) UNAME_PROCESSOR=x86_64 ;; ++ powerpc) UNAME_PROCESSOR=powerpc64 ;; ++ esac ++ fi ++ fi + echo ${UNAME_PROCESSOR}-apple-darwin${UNAME_RELEASE} + exit ;; + *:procnto*:*:* | *:QNX:[0123456789]*:*) +@@ -1284,7 +1278,10 @@ + *:QNX:*:4*) + echo i386-pc-qnx + exit ;; +- NSE-?:NONSTOP_KERNEL:*:*) ++ NEO-?:NONSTOP_KERNEL:*:*) ++ echo neo-tandem-nsk${UNAME_RELEASE} ++ exit ;; ++ NSE-*:NONSTOP_KERNEL:*:*) + echo nse-tandem-nsk${UNAME_RELEASE} + exit ;; + NSR-?:NONSTOP_KERNEL:*:*) +@@ -1329,13 +1326,13 @@ + echo pdp10-unknown-its + exit ;; + SEI:*:*:SEIUX) +- echo mips-sei-seiux${UNAME_RELEASE} ++ echo mips-sei-seiux${UNAME_RELEASE} + exit ;; + *:DragonFly:*:*) + echo ${UNAME_MACHINE}-unknown-dragonfly`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'` + exit ;; + *:*VMS:*:*) +- UNAME_MACHINE=`(uname -p) 2>/dev/null` ++ UNAME_MACHINE=`(uname -p) 2>/dev/null` + case "${UNAME_MACHINE}" in + A*) echo alpha-dec-vms ; exit ;; + I*) echo ia64-dec-vms ; exit ;; +@@ -1353,11 +1350,11 @@ + i*86:AROS:*:*) + echo ${UNAME_MACHINE}-pc-aros + exit ;; ++ x86_64:VMkernel:*:*) ++ echo ${UNAME_MACHINE}-unknown-esx ++ exit ;; + esac + +-#echo '(No uname command or uname output not recognized.)' 1>&2 +-#echo "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" 1>&2 +- + eval $set_cc_for_build + cat >$dummy.c < + printf ("m68k-sony-newsos%s\n", + #ifdef NEWSOS4 +- "4" ++ "4" + #else +- "" ++ "" + #endif +- ); exit (0); ++ ); exit (0); + #endif + #endif + +Index: b/src/3rdparty/freetype/builds/unix/config.sub +=================================================================== +--- a/src/3rdparty/freetype/builds/unix/config.sub ++++ b/src/3rdparty/freetype/builds/unix/config.sub +@@ -1,44 +1,40 @@ + #! /bin/sh + # Configuration validation subroutine script. +-# Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, +-# 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008 +-# Free Software Foundation, Inc. +- +-timestamp='2009-02-03' +- +-# This file is (in principle) common to ALL GNU software. +-# The presence of a machine in this file suggests that SOME GNU software +-# can handle that machine. It does not imply ALL GNU software can. +-# +-# This file is free software; you can redistribute it and/or modify +-# it under the terms of the GNU General Public License as published by +-# the Free Software Foundation; either version 2 of the License, or ++# Copyright 1992-2013 Free Software Foundation, Inc. ++ ++timestamp='2013-04-24' ++ ++# This file is free software; you can redistribute it and/or modify it ++# under the terms of the GNU General Public License as published by ++# the Free Software Foundation; either version 3 of the License, or + # (at your option) any later version. + # +-# This program is distributed in the hope that it will be useful, +-# but WITHOUT ANY WARRANTY; without even the implied warranty of +-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +-# GNU General Public License for more details. ++# This program is distributed in the hope that it will be useful, but ++# WITHOUT ANY WARRANTY; without even the implied warranty of ++# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++# General Public License for more details. + # + # You should have received a copy of the GNU General Public License +-# along with this program; if not, write to the Free Software +-# Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston, MA +-# 02110-1301, USA. ++# along with this program; if not, see . + # + # As a special exception to the GNU General Public License, if you + # distribute this file as part of a program that contains a + # configuration script generated by Autoconf, you may include it under +-# the same distribution terms that you use for the rest of that program. ++# the same distribution terms that you use for the rest of that ++# program. This Exception is an additional permission under section 7 ++# of the GNU General Public License, version 3 ("GPLv3"). + + +-# Please send patches to . Submit a context +-# diff and a properly formatted ChangeLog entry. ++# Please send patches with a ChangeLog entry to config-patches@gnu.org. + # + # Configuration subroutine to validate and canonicalize a configuration type. + # Supply the specified configuration type as an argument. + # If it is invalid, we print an error message on stderr and exit with code 1. + # Otherwise, we print the canonical config type on stdout and succeed. + ++# You can get the latest version of this script from: ++# http://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.sub;hb=HEAD ++ + # This file is supposed to be the same for all GNU packages + # and recognize all the CPU types, system types and aliases + # that are meaningful with *any* GNU software. +@@ -72,8 +68,7 @@ + version="\ + GNU config.sub ($timestamp) + +-Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, +-2002, 2003, 2004, 2005, 2006, 2007, 2008 Free Software Foundation, Inc. ++Copyright 1992-2013 Free Software Foundation, Inc. + + This is free software; see the source for copying conditions. There is NO + warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE." +@@ -120,13 +115,18 @@ + # Here we must recognize all the valid KERNEL-OS combinations. + maybe_os=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\2/'` + case $maybe_os in +- nto-qnx* | linux-gnu* | linux-dietlibc | linux-newlib* | linux-uclibc* | \ +- uclinux-uclibc* | uclinux-gnu* | kfreebsd*-gnu* | knetbsd*-gnu* | netbsd*-gnu* | \ ++ nto-qnx* | linux-gnu* | linux-android* | linux-dietlibc | linux-newlib* | \ ++ linux-musl* | linux-uclibc* | uclinux-uclibc* | uclinux-gnu* | kfreebsd*-gnu* | \ ++ knetbsd*-gnu* | netbsd*-gnu* | \ + kopensolaris*-gnu* | \ + storm-chaos* | os2-emx* | rtmk-nova*) + os=-$maybe_os + basic_machine=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\1/'` + ;; ++ android-linux) ++ os=-linux-android ++ basic_machine=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\1/'`-unknown ++ ;; + *) + basic_machine=`echo $1 | sed 's/-[^-]*$//'` + if [ $basic_machine != $1 ] +@@ -149,10 +149,13 @@ + -convergent* | -ncr* | -news | -32* | -3600* | -3100* | -hitachi* |\ + -c[123]* | -convex* | -sun | -crds | -omron* | -dg | -ultra | -tti* | \ + -harris | -dolphin | -highlevel | -gould | -cbm | -ns | -masscomp | \ +- -apple | -axis | -knuth | -cray) ++ -apple | -axis | -knuth | -cray | -microblaze*) + os= + basic_machine=$1 + ;; ++ -bluegene*) ++ os=-cnk ++ ;; + -sim | -cisco | -oki | -wec | -winbond) + os= + basic_machine=$1 +@@ -167,10 +170,10 @@ + os=-chorusos + basic_machine=$1 + ;; +- -chorusrdb) +- os=-chorusrdb ++ -chorusrdb) ++ os=-chorusrdb + basic_machine=$1 +- ;; ++ ;; + -hiux*) + os=-hiuxwe2 + ;; +@@ -215,6 +218,12 @@ + -isc*) + basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` + ;; ++ -lynx*178) ++ os=-lynxos178 ++ ;; ++ -lynx*5) ++ os=-lynxos5 ++ ;; + -lynx*) + os=-lynxos + ;; +@@ -239,20 +248,27 @@ + # Some are omitted here because they have special meanings below. + 1750a | 580 \ + | a29k \ ++ | aarch64 | aarch64_be \ + | alpha | alphaev[4-8] | alphaev56 | alphaev6[78] | alphapca5[67] \ + | alpha64 | alpha64ev[4-8] | alpha64ev56 | alpha64ev6[78] | alpha64pca5[67] \ + | am33_2.0 \ +- | arc | arm | arm[bl]e | arme[lb] | armv[2345] | armv[345][lb] | avr | avr32 \ ++ | arc | arceb \ ++ | arm | arm[bl]e | arme[lb] | armv[2-8] | armv[3-8][lb] | armv7[arm] \ ++ | avr | avr32 \ ++ | be32 | be64 \ + | bfin \ + | c4x | clipper \ + | d10v | d30v | dlx | dsp16xx \ ++ | epiphany \ + | fido | fr30 | frv \ + | h8300 | h8500 | hppa | hppa1.[01] | hppa2.0 | hppa2.0[nw] | hppa64 \ ++ | hexagon \ + | i370 | i860 | i960 | ia64 \ + | ip2k | iq2000 \ ++ | le32 | le64 \ + | lm32 \ + | m32c | m32r | m32rle | m68000 | m68k | m88k \ +- | maxq | mb | microblaze | mcore | mep | metag \ ++ | maxq | mb | microblaze | microblazeel | mcore | mep | metag \ + | mips | mipsbe | mipseb | mipsel | mipsle \ + | mips16 \ + | mips64 | mips64el \ +@@ -270,31 +286,45 @@ + | mipsisa64r2 | mipsisa64r2el \ + | mipsisa64sb1 | mipsisa64sb1el \ + | mipsisa64sr71k | mipsisa64sr71kel \ ++ | mipsr5900 | mipsr5900el \ + | mipstx39 | mipstx39el \ + | mn10200 | mn10300 \ ++ | moxie \ + | mt \ + | msp430 \ +- | nios | nios2 \ ++ | nds32 | nds32le | nds32be \ ++ | nios | nios2 | nios2eb | nios2el \ + | ns16k | ns32k \ +- | or32 \ ++ | open8 \ ++ | or1k | or32 \ + | pdp10 | pdp11 | pj | pjl \ +- | powerpc | powerpc64 | powerpc64le | powerpcle | ppcbe \ ++ | powerpc | powerpc64 | powerpc64le | powerpcle \ + | pyramid \ ++ | rl78 | rx \ + | score \ + | sh | sh[1234] | sh[24]a | sh[24]aeb | sh[23]e | sh[34]eb | sheb | shbe | shle | sh[1234]le | sh3ele \ + | sh64 | sh64le \ + | sparc | sparc64 | sparc64b | sparc64v | sparc86x | sparclet | sparclite \ + | sparcv8 | sparcv9 | sparcv9b | sparcv9v \ +- | spu | strongarm \ +- | tahoe | thumb | tic4x | tic80 | tron \ +- | v850 | v850e \ ++ | spu \ ++ | tahoe | tic4x | tic54x | tic55x | tic6x | tic80 | tron \ ++ | ubicom32 \ ++ | v850 | v850e | v850e1 | v850e2 | v850es | v850e2v3 \ + | we32k \ +- | x86 | xc16x | xscale | xscalee[bl] | xstormy16 | xtensa \ ++ | x86 | xc16x | xstormy16 | xtensa \ + | z8k | z80) + basic_machine=$basic_machine-unknown + ;; +- m6811 | m68hc11 | m6812 | m68hc12) +- # Motorola 68HC11/12. ++ c54x) ++ basic_machine=tic54x-unknown ++ ;; ++ c55x) ++ basic_machine=tic55x-unknown ++ ;; ++ c6x) ++ basic_machine=tic6x-unknown ++ ;; ++ m6811 | m68hc11 | m6812 | m68hc12 | m68hcs12x | picochip) + basic_machine=$basic_machine-unknown + os=-none + ;; +@@ -304,6 +334,21 @@ + basic_machine=mt-unknown + ;; + ++ strongarm | thumb | xscale) ++ basic_machine=arm-unknown ++ ;; ++ xgate) ++ basic_machine=$basic_machine-unknown ++ os=-none ++ ;; ++ xscaleeb) ++ basic_machine=armeb-unknown ++ ;; ++ ++ xscaleel) ++ basic_machine=armel-unknown ++ ;; ++ + # We use `pc' rather than `unknown' + # because (1) that's what they normally are, and + # (2) the word "unknown" tends to confuse beginning users. +@@ -318,25 +363,30 @@ + # Recognize the basic CPU types with company name. + 580-* \ + | a29k-* \ ++ | aarch64-* | aarch64_be-* \ + | alpha-* | alphaev[4-8]-* | alphaev56-* | alphaev6[78]-* \ + | alpha64-* | alpha64ev[4-8]-* | alpha64ev56-* | alpha64ev6[78]-* \ +- | alphapca5[67]-* | alpha64pca5[67]-* | arc-* \ ++ | alphapca5[67]-* | alpha64pca5[67]-* | arc-* | arceb-* \ + | arm-* | armbe-* | armle-* | armeb-* | armv*-* \ + | avr-* | avr32-* \ ++ | be32-* | be64-* \ + | bfin-* | bs2000-* \ +- | c[123]* | c30-* | [cjt]90-* | c4x-* | c54x-* | c55x-* | c6x-* \ ++ | c[123]* | c30-* | [cjt]90-* | c4x-* \ + | clipper-* | craynv-* | cydra-* \ + | d10v-* | d30v-* | dlx-* \ + | elxsi-* \ + | f30[01]-* | f700-* | fido-* | fr30-* | frv-* | fx80-* \ + | h8300-* | h8500-* \ + | hppa-* | hppa1.[01]-* | hppa2.0-* | hppa2.0[nw]-* | hppa64-* \ ++ | hexagon-* \ + | i*86-* | i860-* | i960-* | ia64-* \ + | ip2k-* | iq2000-* \ ++ | le32-* | le64-* \ + | lm32-* \ + | m32c-* | m32r-* | m32rle-* \ + | m68000-* | m680[012346]0-* | m68360-* | m683?2-* | m68k-* \ + | m88110-* | m88k-* | maxq-* | mcore-* | metag-* \ ++ | microblaze-* | microblazeel-* \ + | mips-* | mipsbe-* | mipseb-* | mipsel-* | mipsle-* \ + | mips16-* \ + | mips64-* | mips64el-* \ +@@ -354,28 +404,34 @@ + | mipsisa64r2-* | mipsisa64r2el-* \ + | mipsisa64sb1-* | mipsisa64sb1el-* \ + | mipsisa64sr71k-* | mipsisa64sr71kel-* \ ++ | mipsr5900-* | mipsr5900el-* \ + | mipstx39-* | mipstx39el-* \ + | mmix-* \ + | mt-* \ + | msp430-* \ +- | nios-* | nios2-* \ ++ | nds32-* | nds32le-* | nds32be-* \ ++ | nios-* | nios2-* | nios2eb-* | nios2el-* \ + | none-* | np1-* | ns16k-* | ns32k-* \ ++ | open8-* \ + | orion-* \ + | pdp10-* | pdp11-* | pj-* | pjl-* | pn-* | power-* \ +- | powerpc-* | powerpc64-* | powerpc64le-* | powerpcle-* | ppcbe-* \ ++ | powerpc-* | powerpc64-* | powerpc64le-* | powerpcle-* \ + | pyramid-* \ +- | romp-* | rs6000-* \ ++ | rl78-* | romp-* | rs6000-* | rx-* \ + | sh-* | sh[1234]-* | sh[24]a-* | sh[24]aeb-* | sh[23]e-* | sh[34]eb-* | sheb-* | shbe-* \ + | shle-* | sh[1234]le-* | sh3ele-* | sh64-* | sh64le-* \ + | sparc-* | sparc64-* | sparc64b-* | sparc64v-* | sparc86x-* | sparclet-* \ + | sparclite-* \ +- | sparcv8-* | sparcv9-* | sparcv9b-* | sparcv9v-* | strongarm-* | sv1-* | sx?-* \ +- | tahoe-* | thumb-* \ +- | tic30-* | tic4x-* | tic54x-* | tic55x-* | tic6x-* | tic80-* | tile-* \ ++ | sparcv8-* | sparcv9-* | sparcv9b-* | sparcv9v-* | sv1-* | sx?-* \ ++ | tahoe-* \ ++ | tic30-* | tic4x-* | tic54x-* | tic55x-* | tic6x-* | tic80-* \ ++ | tile*-* \ + | tron-* \ +- | v850-* | v850e-* | vax-* \ ++ | ubicom32-* \ ++ | v850-* | v850e-* | v850e1-* | v850es-* | v850e2-* | v850e2v3-* \ ++ | vax-* \ + | we32k-* \ +- | x86-* | x86_64-* | xc16x-* | xps100-* | xscale-* | xscalee[bl]-* \ ++ | x86-* | x86_64-* | xc16x-* | xps100-* \ + | xstormy16-* | xtensa*-* \ + | ymp-* \ + | z8k-* | z80-*) +@@ -400,7 +456,7 @@ + basic_machine=a29k-amd + os=-udi + ;; +- abacus) ++ abacus) + basic_machine=abacus-unknown + ;; + adobe68k) +@@ -466,11 +522,24 @@ + basic_machine=bfin-`echo $basic_machine | sed 's/^[^-]*-//'` + os=-linux + ;; ++ bluegene*) ++ basic_machine=powerpc-ibm ++ os=-cnk ++ ;; ++ c54x-*) ++ basic_machine=tic54x-`echo $basic_machine | sed 's/^[^-]*-//'` ++ ;; ++ c55x-*) ++ basic_machine=tic55x-`echo $basic_machine | sed 's/^[^-]*-//'` ++ ;; ++ c6x-*) ++ basic_machine=tic6x-`echo $basic_machine | sed 's/^[^-]*-//'` ++ ;; + c90) + basic_machine=c90-cray + os=-unicos + ;; +- cegcc) ++ cegcc) + basic_machine=arm-unknown + os=-cegcc + ;; +@@ -502,7 +571,7 @@ + basic_machine=craynv-cray + os=-unicosmp + ;; +- cr16) ++ cr16 | cr16-*) + basic_machine=cr16-unknown + os=-elf + ;; +@@ -660,7 +729,6 @@ + i370-ibm* | ibm*) + basic_machine=i370-ibm + ;; +-# I'm not sure what "Sysv32" means. Should this be sysv3.2? + i*86v32) + basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'` + os=-sysv32 +@@ -718,6 +786,13 @@ + basic_machine=ns32k-utek + os=-sysv + ;; ++ microblaze*) ++ basic_machine=microblaze-xilinx ++ ;; ++ mingw64) ++ basic_machine=x86_64-pc ++ os=-mingw64 ++ ;; + mingw32) + basic_machine=i386-pc + os=-mingw32 +@@ -754,10 +829,18 @@ + ms1-*) + basic_machine=`echo $basic_machine | sed -e 's/ms1-/mt-/'` + ;; ++ msys) ++ basic_machine=i386-pc ++ os=-msys ++ ;; + mvs) + basic_machine=i370-ibm + os=-mvs + ;; ++ nacl) ++ basic_machine=le32-unknown ++ os=-nacl ++ ;; + ncr3000) + basic_machine=i486-ncr + os=-sysv4 +@@ -822,6 +905,12 @@ + np1) + basic_machine=np1-gould + ;; ++ neo-tandem) ++ basic_machine=neo-tandem ++ ;; ++ nse-tandem) ++ basic_machine=nse-tandem ++ ;; + nsr-tandem) + basic_machine=nsr-tandem + ;; +@@ -904,9 +993,10 @@ + ;; + power) basic_machine=power-ibm + ;; +- ppc) basic_machine=powerpc-unknown ++ ppc | ppcbe) basic_machine=powerpc-unknown + ;; +- ppc-*) basic_machine=powerpc-`echo $basic_machine | sed 's/^[^-]*-//'` ++ ppc-* | ppcbe-*) ++ basic_machine=powerpc-`echo $basic_machine | sed 's/^[^-]*-//'` + ;; + ppcle | powerpclittle | ppc-le | powerpc-little) + basic_machine=powerpcle-unknown +@@ -931,7 +1021,11 @@ + basic_machine=i586-unknown + os=-pw32 + ;; +- rdos) ++ rdos | rdos64) ++ basic_machine=x86_64-pc ++ os=-rdos ++ ;; ++ rdos32) + basic_machine=i386-pc + os=-rdos + ;; +@@ -1000,6 +1094,9 @@ + basic_machine=i860-stratus + os=-sysv4 + ;; ++ strongarm-* | thumb-*) ++ basic_machine=arm-`echo $basic_machine | sed 's/^[^-]*-//'` ++ ;; + sun2) + basic_machine=m68000-sun + ;; +@@ -1056,20 +1153,8 @@ + basic_machine=t90-cray + os=-unicos + ;; +- tic54x | c54x*) +- basic_machine=tic54x-unknown +- os=-coff +- ;; +- tic55x | c55x*) +- basic_machine=tic55x-unknown +- os=-coff +- ;; +- tic6x | c6x*) +- basic_machine=tic6x-unknown +- os=-coff +- ;; + tile*) +- basic_machine=tile-unknown ++ basic_machine=$basic_machine-unknown + os=-linux-gnu + ;; + tx39) +@@ -1139,6 +1224,9 @@ + xps | xps100) + basic_machine=xps100-honeywell + ;; ++ xscale-* | xscalee[bl]-*) ++ basic_machine=`echo $basic_machine | sed 's/^xscale/arm/'` ++ ;; + ymp) + basic_machine=ymp-cray + os=-unicos +@@ -1236,9 +1324,12 @@ + if [ x"$os" != x"" ] + then + case $os in +- # First match some system type aliases +- # that might get confused with valid system types. ++ # First match some system type aliases ++ # that might get confused with valid system types. + # -solaris* is a basic system type, with this one exception. ++ -auroraux) ++ os=-auroraux ++ ;; + -solaris1 | -solaris1.*) + os=`echo $os | sed -e 's|solaris1|sunos4|'` + ;; +@@ -1259,22 +1350,23 @@ + # Each alternative MUST END IN A *, to match a version number. + # -sysv* is not here because it comes later, after sysvr4. + -gnu* | -bsd* | -mach* | -minix* | -genix* | -ultrix* | -irix* \ +- | -*vms* | -sco* | -esix* | -isc* | -aix* | -sunos | -sunos[34]*\ +- | -hpux* | -unos* | -osf* | -luna* | -dgux* | -solaris* | -sym* \ +- | -kopensolaris* \ ++ | -*vms* | -sco* | -esix* | -isc* | -aix* | -cnk* | -sunos | -sunos[34]*\ ++ | -hpux* | -unos* | -osf* | -luna* | -dgux* | -auroraux* | -solaris* \ ++ | -sym* | -kopensolaris* | -plan9* \ + | -amigaos* | -amigados* | -msdos* | -newsos* | -unicos* | -aof* \ + | -aos* | -aros* \ + | -nindy* | -vxsim* | -vxworks* | -ebmon* | -hms* | -mvs* \ + | -clix* | -riscos* | -uniplus* | -iris* | -rtu* | -xenix* \ + | -hiux* | -386bsd* | -knetbsd* | -mirbsd* | -netbsd* \ +- | -openbsd* | -solidbsd* \ ++ | -bitrig* | -openbsd* | -solidbsd* \ + | -ekkobsd* | -kfreebsd* | -freebsd* | -riscix* | -lynxos* \ + | -bosx* | -nextstep* | -cxux* | -aout* | -elf* | -oabi* \ + | -ptx* | -coff* | -ecoff* | -winnt* | -domain* | -vsta* \ + | -udi* | -eabi* | -lites* | -ieee* | -go32* | -aux* \ + | -chorusos* | -chorusrdb* | -cegcc* \ +- | -cygwin* | -pe* | -psos* | -moss* | -proelf* | -rtems* \ +- | -mingw32* | -linux-gnu* | -linux-newlib* | -linux-uclibc* \ ++ | -cygwin* | -msys* | -pe* | -psos* | -moss* | -proelf* | -rtems* \ ++ | -mingw32* | -mingw64* | -linux-gnu* | -linux-android* \ ++ | -linux-newlib* | -linux-musl* | -linux-uclibc* \ + | -uxpv* | -beos* | -mpeix* | -udk* \ + | -interix* | -uwin* | -mks* | -rhapsody* | -darwin* | -opened* \ + | -openstep* | -oskit* | -conix* | -pw32* | -nonstopux* \ +@@ -1282,7 +1374,7 @@ + | -os2* | -vos* | -palmos* | -uclinux* | -nucleus* \ + | -morphos* | -superux* | -rtmk* | -rtmk-nova* | -windiss* \ + | -powermax* | -dnix* | -nx6 | -nx7 | -sei* | -dragonfly* \ +- | -skyos* | -haiku* | -rdos* | -toppers* | -drops*) ++ | -skyos* | -haiku* | -rdos* | -toppers* | -drops* | -es*) + # Remember, each alternative MUST END IN *, to match a version number. + ;; + -qnx*) +@@ -1321,7 +1413,7 @@ + -opened*) + os=-openedition + ;; +- -os400*) ++ -os400*) + os=-os400 + ;; + -wince*) +@@ -1370,7 +1462,7 @@ + -sinix*) + os=-sysv4 + ;; +- -tpf*) ++ -tpf*) + os=-tpf + ;; + -triton*) +@@ -1406,15 +1498,14 @@ + -aros*) + os=-aros + ;; +- -kaos*) +- os=-kaos +- ;; + -zvmoe) + os=-zvmoe + ;; + -dicos*) + os=-dicos + ;; ++ -nacl*) ++ ;; + -none) + ;; + *) +@@ -1437,10 +1528,10 @@ + # system, and we'll never get to this point. + + case $basic_machine in +- score-*) ++ score-*) + os=-elf + ;; +- spu-*) ++ spu-*) + os=-elf + ;; + *-acorn) +@@ -1452,8 +1543,20 @@ + arm*-semi) + os=-aout + ;; +- c4x-* | tic4x-*) +- os=-coff ++ c4x-* | tic4x-*) ++ os=-coff ++ ;; ++ hexagon-*) ++ os=-elf ++ ;; ++ tic54x-*) ++ os=-coff ++ ;; ++ tic55x-*) ++ os=-coff ++ ;; ++ tic6x-*) ++ os=-coff + ;; + # This must come before the *-dec entry. + pdp10-*) +@@ -1473,14 +1576,11 @@ + ;; + m68000-sun) + os=-sunos3 +- # This also exists in the configure program, but was not the +- # default. +- # os=-sunos4 + ;; + m68*-cisco) + os=-aout + ;; +- mep-*) ++ mep-*) + os=-elf + ;; + mips*-cisco) +@@ -1489,6 +1589,9 @@ + mips*-*) + os=-elf + ;; ++ or1k-*) ++ os=-elf ++ ;; + or32-*) + os=-coff + ;; +@@ -1507,7 +1610,7 @@ + *-ibm) + os=-aix + ;; +- *-knuth) ++ *-knuth) + os=-mmixware + ;; + *-wec) +@@ -1612,7 +1715,7 @@ + -sunos*) + vendor=sun + ;; +- -aix*) ++ -cnk*|-aix*) + vendor=ibm + ;; + -beos*) +Index: b/src/3rdparty/javascriptcore/JavaScriptCore/wtf/Platform.h +=================================================================== +--- a/src/3rdparty/javascriptcore/JavaScriptCore/wtf/Platform.h ++++ b/src/3rdparty/javascriptcore/JavaScriptCore/wtf/Platform.h +@@ -238,6 +238,11 @@ + + #endif + ++/* CPU(AARCH64) - AArch64 */ ++#if defined(__aarch64__) ++#define WTF_CPU_AARCH64 1 ++#endif ++ + #define WTF_ARM_ARCH_AT_LEAST(N) (CPU(ARM) && WTF_ARM_ARCH_VERSION >= N) + + /* Set WTF_ARM_ARCH_VERSION */ +@@ -896,7 +901,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) || CPU(S390X) ++#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) || CPU(AARCH64) + #define WTF_USE_JSVALUE64 1 + #elif CPU(ARM) || CPU(PPC64) + #define WTF_USE_JSVALUE32 1 +Index: b/src/3rdparty/webkit/Source/JavaScriptCore/wtf/Platform.h +=================================================================== +--- a/src/3rdparty/webkit/Source/JavaScriptCore/wtf/Platform.h ++++ b/src/3rdparty/webkit/Source/JavaScriptCore/wtf/Platform.h +@@ -365,10 +365,15 @@ + + #endif /* ARM */ + +-#if CPU(ARM) || CPU(MIPS) || CPU(SH4) ++#if CPU(ARM) || CPU(MIPS) || CPU(SH4) || CPU(AARCH64) + #define WTF_CPU_NEEDS_ALIGNED_ACCESS 1 + #endif + ++/* CPU(AARCH64) - Aarch64 */ ++#if defined(__aarch64__) ++#define WTF_CPU_AARCH64 1 ++#endif ++ + /* ==== OS() - underlying operating system; only to be used for mandated low-level services like + virtual memory, not to choose a GUI toolkit ==== */ + +@@ -998,7 +1003,8 @@ + || CPU(ALPHA) \ + || CPU(SPARC64) \ + || CPU(S390X) \ +- || CPU(PPC64) ++ || CPU(PPC64) \ ++ || CPU(AARCH64) + #define WTF_USE_JSVALUE64 1 + #else + #define WTF_USE_JSVALUE32_64 1 +Index: b/src/corelib/arch/aarch64/arch.pri +=================================================================== +--- /dev/null ++++ b/src/corelib/arch/aarch64/arch.pri +@@ -0,0 +1,4 @@ ++# ++# AArch64 architecture ++# ++SOURCES += $$QT_ARCH_CPP/qatomic_aarch64.cpp +Index: b/src/corelib/arch/aarch64/qatomic_aarch64.cpp +=================================================================== +--- /dev/null ++++ b/src/corelib/arch/aarch64/qatomic_aarch64.cpp +@@ -0,0 +1,70 @@ ++/**************************************************************************** ++** ++** Copyright (C) 2012, 2013 Digia Plc and/or its subsidiary(-ies). ++** Contact: http://www.qt-project.org/legal ++** ++** This file is part of the QtCore module of the Qt Toolkit. ++** ++** $QT_BEGIN_LICENSE:LGPL$ ++** Commercial License Usage ++** Licensees holding valid commercial Qt licenses may use this file in ++** accordance with the commercial license agreement provided with the ++** Software or, alternatively, in accordance with the terms contained in ++** a written agreement between you and Digia. For licensing terms and ++** conditions see http://qt.digia.com/licensing. For further information ++** use the contact form at http://qt.digia.com/contact-us. ++** ++** GNU Lesser General Public License Usage ++** Alternatively, this file may be used under the terms of the GNU Lesser ++** General Public License version 2.1 as published by the Free Software ++** Foundation and appearing in the file LICENSE.LGPL included in the ++** packaging of this file. Please review the following information to ++** ensure the GNU Lesser General Public License version 2.1 requirements ++** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. ++** ++** In addition, as a special exception, Digia gives you certain additional ++** rights. These rights are described in the Digia Qt LGPL Exception ++** version 1.1, included in the file LGPL_EXCEPTION.txt in this package. ++** ++** GNU General Public License Usage ++** Alternatively, this file may be used under the terms of the GNU ++** General Public License version 3.0 as published by the Free Software ++** Foundation and appearing in the file LICENSE.GPL included in the ++** packaging of this file. Please review the following information to ++** ensure the GNU General Public License version 3.0 requirements will be ++** met: http://www.gnu.org/copyleft/gpl.html. ++** ++** ++** $QT_END_LICENSE$ ++** ++****************************************************************************/ ++ ++#include ++ ++#include ++#ifdef _POSIX_PRIORITY_SCHEDULING ++# include ++#endif ++#include ++ ++QT_BEGIN_NAMESPACE ++ ++QT_USE_NAMESPACE ++ ++Q_CORE_EXPORT void qt_atomic_yield(int *count) ++{ ++#ifdef _POSIX_PRIORITY_SCHEDULING ++ if((*count)++ < 50) { ++ sched_yield(); ++ } else ++#endif ++ { ++ struct timespec tm; ++ tm.tv_sec = 0; ++ tm.tv_nsec = 2000001; ++ nanosleep(&tm, NULL); ++ *count = 0; ++ } ++} ++ ++QT_END_NAMESPACE +Index: b/src/corelib/arch/arch.pri +=================================================================== +--- a/src/corelib/arch/arch.pri ++++ b/src/corelib/arch/arch.pri +@@ -31,7 +31,9 @@ + arch/qatomic_s390.h \ + arch/qatomic_x86_64.h \ + arch/qatomic_sh.h \ +- arch/qatomic_sh4a.h ++ arch/qatomic_sh4a.h \ ++ arch/qatomic_aarch64.h \ ++ + + QT_ARCH_CPP = $$QT_SOURCE_TREE/src/corelib/arch/$$QT_ARCH + DEPENDPATH += $$QT_ARCH_CPP +Index: b/src/corelib/arch/qatomic_aarch64.h +=================================================================== +--- /dev/null ++++ b/src/corelib/arch/qatomic_aarch64.h +@@ -0,0 +1,335 @@ ++/**************************************************************************** ++** ++** Copyright (C) 2012 Digia Plc and/or its subsidiary(-ies). ++** Contact: http://www.qt-project.org/legal ++** ++** This file is part of the QtCore module of the Qt Toolkit. ++** ++** $QT_BEGIN_LICENSE:LGPL$ ++** Commercial License Usage ++** Licensees holding valid commercial Qt licenses may use this file in ++** accordance with the commercial license agreement provided with the ++** Software or, alternatively, in accordance with the terms contained in ++** a written agreement between you and Digia. For licensing terms and ++** conditions see http://qt.digia.com/licensing. For further information ++** use the contact form at http://qt.digia.com/contact-us. ++** ++** GNU Lesser General Public License Usage ++** Alternatively, this file may be used under the terms of the GNU Lesser ++** General Public License version 2.1 as published by the Free Software ++** Foundation and appearing in the file LICENSE.LGPL included in the ++** packaging of this file. Please review the following information to ++** ensure the GNU Lesser General Public License version 2.1 requirements ++** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. ++** ++** In addition, as a special exception, Digia gives you certain additional ++** rights. These rights are described in the Digia Qt LGPL Exception ++** version 1.1, included in the file LGPL_EXCEPTION.txt in this package. ++** ++** GNU General Public License Usage ++** Alternatively, this file may be used under the terms of the GNU ++** General Public License version 3.0 as published by the Free Software ++** Foundation and appearing in the file LICENSE.GPL included in the ++** packaging of this file. Please review the following information to ++** ensure the GNU General Public License version 3.0 requirements will be ++** met: http://www.gnu.org/copyleft/gpl.html. ++** ++** ++** $QT_END_LICENSE$ ++** ++****************************************************************************/ ++ ++#ifndef QATOMIC_AARCH64_H ++#define QATOMIC_AARCH64_H ++ ++QT_BEGIN_HEADER ++ ++QT_BEGIN_NAMESPACE ++ ++#define Q_ATOMIC_INT_REFERENCE_COUNTING_IS_ALWAYS_NATIVE ++ ++inline bool QBasicAtomicInt::isReferenceCountingNative() ++{ return true; } ++inline bool QBasicAtomicInt::isReferenceCountingWaitFree() ++{ return false; } ++ ++#define Q_ATOMIC_INT_TEST_AND_SET_IS_ALWAYS_NATIVE ++ ++inline bool QBasicAtomicInt::isTestAndSetNative() ++{ return true; } ++inline bool QBasicAtomicInt::isTestAndSetWaitFree() ++{ return false; } ++ ++#define Q_ATOMIC_INT_FETCH_AND_STORE_IS_ALWAYS_NATIVE ++ ++inline bool QBasicAtomicInt::isFetchAndStoreNative() ++{ return true; } ++inline bool QBasicAtomicInt::isFetchAndStoreWaitFree() ++{ return false; } ++ ++#define Q_ATOMIC_INT_FETCH_AND_ADD_IS_ALWAYS_NATIVE ++ ++inline bool QBasicAtomicInt::isFetchAndAddNative() ++{ return true; } ++inline bool QBasicAtomicInt::isFetchAndAddWaitFree() ++{ return false; } ++ ++#define Q_ATOMIC_POINTER_TEST_AND_SET_IS_ALWAYS_NATIVE ++ ++template ++Q_INLINE_TEMPLATE bool QBasicAtomicPointer::isTestAndSetNative() ++{ return true; } ++template ++Q_INLINE_TEMPLATE bool QBasicAtomicPointer::isTestAndSetWaitFree() ++{ return false; } ++ ++#define Q_ATOMIC_POINTER_FETCH_AND_STORE_IS_ALWAYS_NATIVE ++ ++template ++Q_INLINE_TEMPLATE bool QBasicAtomicPointer::isFetchAndStoreNative() ++{ return true; } ++template ++Q_INLINE_TEMPLATE bool QBasicAtomicPointer::isFetchAndStoreWaitFree() ++{ return false; } ++ ++#define Q_ATOMIC_POINTER_FETCH_AND_ADD_IS_ALWAYS_NATIVE ++ ++template ++Q_INLINE_TEMPLATE bool QBasicAtomicPointer::isFetchAndAddNative() ++{ return true; } ++template ++Q_INLINE_TEMPLATE bool QBasicAtomicPointer::isFetchAndAddWaitFree() ++{ return false; } ++ ++#ifndef Q_DATA_MEMORY_BARRIER ++# define Q_DATA_MEMORY_BARRIER asm volatile("dmb sy\n":::"memory") ++#endif ++#ifndef Q_COMPILER_MEMORY_BARRIER ++# define Q_COMPILER_MEMORY_BARRIER asm volatile("":::"memory") ++#endif ++ ++inline bool QBasicAtomicInt::ref() ++{ ++ int newValue; ++ ++ Q_COMPILER_MEMORY_BARRIER; ++ newValue = __atomic_add_fetch(&_q_value, 1, __ATOMIC_ACQ_REL); ++ Q_COMPILER_MEMORY_BARRIER; ++ ++ return newValue != 0; ++} ++ ++inline bool QBasicAtomicInt::deref() ++{ ++ int newValue; ++ ++ Q_COMPILER_MEMORY_BARRIER; ++ newValue = __atomic_sub_fetch(&_q_value, 1, __ATOMIC_ACQ_REL); ++ Q_COMPILER_MEMORY_BARRIER; ++ ++ return newValue != 0; ++} ++ ++inline bool QBasicAtomicInt::testAndSetRelaxed(int expectedValue, int newValue) ++{ ++ bool val; ++ ++ Q_COMPILER_MEMORY_BARRIER; ++ val = __atomic_compare_exchange_n (&_q_value, &expectedValue, &newValue, ++ false, __ATOMIC_RELAXED, __ATOMIC_RELAXED); ++ Q_COMPILER_MEMORY_BARRIER; ++ return val; ++} ++ ++inline int QBasicAtomicInt::fetchAndStoreRelaxed(int newValue) ++{ ++ int val; ++ Q_COMPILER_MEMORY_BARRIER; ++ val = __atomic_exchange_n(&_q_value, newValue, __ATOMIC_RELAXED); ++ Q_COMPILER_MEMORY_BARRIER; ++ return val; ++} ++ ++inline int QBasicAtomicInt::fetchAndAddRelaxed(int valueToAdd) ++{ ++ int val; ++ Q_COMPILER_MEMORY_BARRIER; ++ val = __atomic_fetch_add(&_q_value, valueToAdd, __ATOMIC_RELAXED); ++ Q_COMPILER_MEMORY_BARRIER; ++ return val; ++} ++ ++template ++Q_INLINE_TEMPLATE bool QBasicAtomicPointer::testAndSetRelaxed(T *expectedValue, T *newValue) ++{ ++ bool val; ++ Q_COMPILER_MEMORY_BARRIER; ++ val = __atomic_compare_exchange_n (&_q_value, &expectedValue, &newValue, ++ false, __ATOMIC_RELAXED, __ATOMIC_RELAXED); ++ Q_COMPILER_MEMORY_BARRIER; ++ return val; ++} ++ ++template ++Q_INLINE_TEMPLATE T *QBasicAtomicPointer::fetchAndStoreRelaxed(T *newValue) ++{ ++ T *val; ++ Q_COMPILER_MEMORY_BARRIER; ++ val = __atomic_exchange_n(&_q_value, newValue, __ATOMIC_RELAXED); ++ Q_COMPILER_MEMORY_BARRIER; ++ return val; ++} ++ ++template ++Q_INLINE_TEMPLATE T *QBasicAtomicPointer::fetchAndAddRelaxed(qptrdiff valueToAdd) ++{ ++ T *val; ++ Q_COMPILER_MEMORY_BARRIER; ++ val = __atomic_fetch_add(&_q_value, valueToAdd, __ATOMIC_RELAXED); ++ Q_COMPILER_MEMORY_BARRIER; ++ return val; ++} ++ ++inline bool QBasicAtomicInt::testAndSetAcquire(int expectedValue, int newValue) ++{ ++ bool returnValue = testAndSetRelaxed(expectedValue, newValue); ++ Q_DATA_MEMORY_BARRIER; ++ return returnValue; ++} ++ ++inline bool QBasicAtomicInt::testAndSetRelease(int expectedValue, int newValue) ++{ ++ Q_DATA_MEMORY_BARRIER; ++ return testAndSetRelaxed(expectedValue, newValue); ++} ++ ++inline bool QBasicAtomicInt::testAndSetOrdered(int expectedValue, int newValue) ++{ ++ Q_DATA_MEMORY_BARRIER; ++ bool returnValue = testAndSetRelaxed(expectedValue, newValue); ++ Q_COMPILER_MEMORY_BARRIER; ++ return returnValue; ++} ++ ++inline int QBasicAtomicInt::fetchAndStoreAcquire(int newValue) ++{ ++ int returnValue = fetchAndStoreRelaxed(newValue); ++ Q_DATA_MEMORY_BARRIER; ++ return returnValue; ++} ++ ++inline int QBasicAtomicInt::fetchAndStoreRelease(int newValue) ++{ ++ Q_DATA_MEMORY_BARRIER; ++ return fetchAndStoreRelaxed(newValue); ++} ++ ++inline int QBasicAtomicInt::fetchAndStoreOrdered(int newValue) ++{ ++ Q_DATA_MEMORY_BARRIER; ++ int returnValue = fetchAndStoreRelaxed(newValue); ++ Q_COMPILER_MEMORY_BARRIER; ++ return returnValue; ++} ++ ++inline int QBasicAtomicInt::fetchAndAddAcquire(int valueToAdd) ++{ ++ int returnValue = fetchAndAddRelaxed(valueToAdd); ++ Q_DATA_MEMORY_BARRIER; ++ return returnValue; ++} ++ ++inline int QBasicAtomicInt::fetchAndAddRelease(int valueToAdd) ++{ ++ Q_DATA_MEMORY_BARRIER; ++ return fetchAndAddRelaxed(valueToAdd); ++} ++ ++inline int QBasicAtomicInt::fetchAndAddOrdered(int valueToAdd) ++{ ++ Q_DATA_MEMORY_BARRIER; ++ int returnValue = fetchAndAddRelaxed(valueToAdd); ++ Q_COMPILER_MEMORY_BARRIER; ++ return returnValue; ++} ++ ++template ++Q_INLINE_TEMPLATE bool QBasicAtomicPointer::testAndSetAcquire(T *expectedValue, T *newValue) ++{ ++ bool returnValue = testAndSetRelaxed(expectedValue, newValue); ++ Q_DATA_MEMORY_BARRIER; ++ return returnValue; ++} ++ ++template ++Q_INLINE_TEMPLATE bool QBasicAtomicPointer::testAndSetRelease(T *expectedValue, T *newValue) ++{ ++ Q_DATA_MEMORY_BARRIER; ++ return testAndSetRelaxed(expectedValue, newValue); ++} ++ ++template ++Q_INLINE_TEMPLATE bool QBasicAtomicPointer::testAndSetOrdered(T *expectedValue, T *newValue) ++{ ++ Q_DATA_MEMORY_BARRIER; ++ bool returnValue = testAndSetAcquire(expectedValue, newValue); ++ Q_COMPILER_MEMORY_BARRIER; ++ return returnValue; ++} ++ ++template ++Q_INLINE_TEMPLATE T *QBasicAtomicPointer::fetchAndStoreAcquire(T *newValue) ++{ ++ T *returnValue = fetchAndStoreRelaxed(newValue); ++ Q_DATA_MEMORY_BARRIER; ++ return returnValue; ++} ++ ++template ++Q_INLINE_TEMPLATE T *QBasicAtomicPointer::fetchAndStoreRelease(T *newValue) ++{ ++ Q_DATA_MEMORY_BARRIER; ++ return fetchAndStoreRelaxed(newValue); ++} ++ ++template ++Q_INLINE_TEMPLATE T *QBasicAtomicPointer::fetchAndStoreOrdered(T *newValue) ++{ ++ Q_DATA_MEMORY_BARRIER; ++ T *returnValue = fetchAndStoreRelaxed(newValue); ++ Q_COMPILER_MEMORY_BARRIER; ++ return returnValue; ++} ++ ++template ++Q_INLINE_TEMPLATE T *QBasicAtomicPointer::fetchAndAddAcquire(qptrdiff valueToAdd) ++{ ++ T *returnValue = fetchAndAddRelaxed(valueToAdd); ++ Q_DATA_MEMORY_BARRIER; ++ return returnValue; ++} ++ ++template ++Q_INLINE_TEMPLATE T *QBasicAtomicPointer::fetchAndAddRelease(qptrdiff valueToAdd) ++{ ++ Q_DATA_MEMORY_BARRIER; ++ return fetchAndAddRelaxed(valueToAdd); ++} ++ ++template ++Q_INLINE_TEMPLATE T *QBasicAtomicPointer::fetchAndAddOrdered(qptrdiff valueToAdd) ++{ ++ Q_DATA_MEMORY_BARRIER; ++ T *returnValue = fetchAndAddRelaxed(valueToAdd); ++ Q_COMPILER_MEMORY_BARRIER; ++ return returnValue; ++} ++ ++#undef Q_DATA_MEMORY_BARRIER ++#undef Q_COMPILER_MEMORY_BARRIER ++ ++QT_END_NAMESPACE ++ ++QT_END_HEADER ++ ++#endif // QATOMIC_AARCH64_H +Index: b/src/corelib/arch/qatomic_arch.h +=================================================================== +--- a/src/corelib/arch/qatomic_arch.h ++++ b/src/corelib/arch/qatomic_arch.h +@@ -92,6 +92,8 @@ + # include "QtCore/qatomic_sh4a.h" + #elif defined(QT_ARCH_NACL) + # include "QtCore/qatomic_generic.h" ++#elif defined(QT_ARCH_AARCH64) ++# include "QtCore/qatomic_aarch64.h" + #else + # error "Qt has not been ported to this architecture" + #endif +Index: b/src/corelib/io/qfilesystemwatcher_inotify.cpp +=================================================================== +--- a/src/corelib/io/qfilesystemwatcher_inotify.cpp ++++ b/src/corelib/io/qfilesystemwatcher_inotify.cpp +@@ -138,6 +138,11 @@ + # define __NR_inotify_add_watch 285 + # define __NR_inotify_rm_watch 286 + # define __NR_inotify_init1 328 ++#elif defined (__aarch64__) ++# define __NR_inotify_init1 26 ++# define __NR_inotify_add_watch 27 ++# define __NR_inotify_rm_watch 28 ++// no inotify_init for aarch64 + #else + # error "This architecture is not supported. Please talk to qt-bugs@trolltech.com" + #endif +@@ -155,7 +160,11 @@ + + static inline int inotify_init() + { ++#ifdef __NR_inotify_init + return syscall(__NR_inotify_init); ++#else ++ return syscall(__NR_inotify_init1, 0); ++#endif + } + + static inline int inotify_add_watch(int fd, const char *name, __u32 mask) diff --git a/SOURCES/aarch64_fix_atomic_set.patch b/SOURCES/aarch64_fix_atomic_set.patch new file mode 100644 index 0000000..7fb815d --- /dev/null +++ b/SOURCES/aarch64_fix_atomic_set.patch @@ -0,0 +1,29 @@ +Description: Fix aarch64 atomic test and set to set the right value. + QBasicAtomicInt::testAndSetRelaxed and + QBasicAtomicPointer::testAndSetRelaxed would previously set the + target to a local stack frame pointer to the new value, rather than to + the new value itself. +Author: William Grant + +Index: qt4-x11-4.8.4+dfsg/src/corelib/arch/qatomic_aarch64.h +=================================================================== +--- qt4-x11-4.8.4+dfsg.orig/src/corelib/arch/qatomic_aarch64.h 2013-10-13 22:23:58.000000000 +1100 ++++ qt4-x11-4.8.4+dfsg/src/corelib/arch/qatomic_aarch64.h 2013-10-13 22:24:56.810788571 +1100 +@@ -135,7 +135,7 @@ + bool val; + + Q_COMPILER_MEMORY_BARRIER; +- val = __atomic_compare_exchange_n (&_q_value, &expectedValue, &newValue, ++ val = __atomic_compare_exchange_n (&_q_value, &expectedValue, newValue, + false, __ATOMIC_RELAXED, __ATOMIC_RELAXED); + Q_COMPILER_MEMORY_BARRIER; + return val; +@@ -164,7 +164,7 @@ + { + bool val; + Q_COMPILER_MEMORY_BARRIER; +- val = __atomic_compare_exchange_n (&_q_value, &expectedValue, &newValue, ++ val = __atomic_compare_exchange_n (&_q_value, &expectedValue, newValue, + false, __ATOMIC_RELAXED, __ATOMIC_RELAXED); + Q_COMPILER_MEMORY_BARRIER; + return val; diff --git a/SOURCES/assistant.desktop b/SOURCES/assistant.desktop new file mode 100644 index 0000000..ce7d337 --- /dev/null +++ b/SOURCES/assistant.desktop @@ -0,0 +1,9 @@ +[Desktop Entry] +Name=Qt4 Assistant +GenericName=Documentation viewer +Comment=Shows Qt4 documentation and examples +Exec=assistant-qt4 +Icon=assistant +Terminal=false +Type=Application +Categories=Qt;Development;Documentation; diff --git a/SOURCES/designer.desktop b/SOURCES/designer.desktop new file mode 100644 index 0000000..d8c2f4d --- /dev/null +++ b/SOURCES/designer.desktop @@ -0,0 +1,10 @@ +[Desktop Entry] +Name=Qt4 Designer +GenericName=Interface Designer +Comment=Design GUIs for Qt4 applications +Exec=designer-qt4 +Icon=designer +MimeType=application/x-designer; +Terminal=false +Type=Application +Categories=Qt;Development; diff --git a/SOURCES/linguist.desktop b/SOURCES/linguist.desktop new file mode 100644 index 0000000..713d711 --- /dev/null +++ b/SOURCES/linguist.desktop @@ -0,0 +1,10 @@ +[Desktop Entry] +Name=Qt4 Linguist +GenericName=Translation tool +Comment=Add translations to Qt4 applications +Exec=linguist-qt4 +Icon=linguist +MimeType=text/vnd.trolltech.linguist;application/x-linguist; +Terminal=false +Type=Application +Categories=Qt;Development; diff --git a/SOURCES/qconfig-multilib.h b/SOURCES/qconfig-multilib.h new file mode 100644 index 0000000..7ed351b --- /dev/null +++ b/SOURCES/qconfig-multilib.h @@ -0,0 +1,20 @@ +/* qconfig.h */ +/* This file is here to prevent a file conflict on multiarch systems. A + * conflict will occur because qconfig.h has arch-specific definitions. + * + * DO NOT INCLUDE THE NEW FILE DIRECTLY -- ALWAYS INCLUDE THIS ONE INSTEAD. */ + +#ifndef QCONFIG_MULTILIB_H +#define QCONFIG_MULTILIB_H +#include + +#if __WORDSIZE == 32 +#include "QtCore/qconfig-32.h" +#elif __WORDSIZE == 64 +#include "QtCore/qconfig-64.h" +#else +#error "unexpected value for __WORDSIZE macro" +#endif + +#endif + diff --git a/SOURCES/qdbusviewer.desktop b/SOURCES/qdbusviewer.desktop new file mode 100644 index 0000000..b22ac1d --- /dev/null +++ b/SOURCES/qdbusviewer.desktop @@ -0,0 +1,10 @@ +[Desktop Entry] +Name=Qt4 QDbusViewer +GenericName=D-Bus Debugger +Comment=Debug D-Bus applications +Exec=qdbusviewer +Icon=qdbusviewer +Terminal=false +Type=Application +Categories=Qt;Development;Debugger; + diff --git a/SOURCES/qt-4.8-poll.patch b/SOURCES/qt-4.8-poll.patch new file mode 100644 index 0000000..3c99ccf --- /dev/null +++ b/SOURCES/qt-4.8-poll.patch @@ -0,0 +1,804 @@ +--- a/src/corelib/io/qprocess_unix.cpp ++++ a/src/corelib/io/qprocess_unix.cpp +@@ -139,13 +139,6 @@ static void qt_sa_sigchld_handler(int signum) + oldAction(signum); + } + +-static inline void add_fd(int &nfds, int fd, fd_set *fdset) +-{ +- FD_SET(fd, fdset); +- if ((fd) > nfds) +- nfds = fd; +-} +- + struct QProcessInfo { + QProcess *process; + int deathPipe; +@@ -231,9 +224,9 @@ QProcessManager::~QProcessManager() + void QProcessManager::run() + { + forever { +- fd_set readset; +- FD_ZERO(&readset); +- FD_SET(qt_qprocess_deadChild_pipe[0], &readset); ++ pollfd fd; ++ fd.fd = qt_qprocess_deadChild_pipe[0]; ++ fd.events = POLLIN; + + #if defined (QPROCESS_DEBUG) + qDebug() << "QProcessManager::run() waiting for children to die"; +@@ -242,8 +235,8 @@ void QProcessManager::run() + // block forever, or until activity is detected on the dead child + // pipe. the only other peers are the SIGCHLD signal handler, and the + // QProcessManager destructor. +- int nselect = select(qt_qprocess_deadChild_pipe[0] + 1, &readset, 0, 0, 0); +- if (nselect < 0) { ++ int ret = qt_safe_poll(&fd, 1, -1, /* retry_eintr */ false); ++ if (ret < 0) { + if (errno == EINTR) + continue; + break; +@@ -992,17 +985,6 @@ void QProcessPrivate::killProcess() + ::kill(pid_t(pid), SIGKILL); + } + +-static int select_msecs(int nfds, fd_set *fdread, fd_set *fdwrite, int timeout) +-{ +- if (timeout < 0) +- return qt_safe_select(nfds, fdread, fdwrite, 0, 0); +- +- struct timeval tv; +- tv.tv_sec = timeout / 1000; +- tv.tv_usec = (timeout % 1000) * 1000; +- return qt_safe_select(nfds, fdread, fdwrite, 0, &tv); +-} +- + /* + Returns the difference between msecs and elapsed. If msecs is -1, + however, -1 is returned. +@@ -1025,10 +1007,10 @@ bool QProcessPrivate::waitForStarted(int msecs) + childStartedPipe[0]); + #endif + +- fd_set fds; +- FD_ZERO(&fds); +- FD_SET(childStartedPipe[0], &fds); +- if (select_msecs(childStartedPipe[0] + 1, &fds, 0, msecs) == 0) { ++ pollfd fd; ++ fd.fd = childStartedPipe[0]; ++ fd.events = POLLIN; ++ if (qt_safe_poll(&fd, 1, msecs) == 0) { + processError = QProcess::Timedout; + q->setErrorString(QProcess::tr("Process operation timed out")); + #if defined (QPROCESS_DEBUG) +@@ -1044,6 +1026,47 @@ bool QProcessPrivate::waitForStarted(int msecs) + return startedEmitted; + } + ++class QProcessFDSet { ++ pollfd fds[5]; ++ ++ static size_t size() ++ { ++ return sizeof(fds)/sizeof(fds[0]); ++ } ++ ++public: ++ QProcessFDSet(QProcessPrivate &proc) ++ { ++ for (size_t i = 0; i < size(); ++i) { ++ fds[i].fd = -1; ++ fds[i].events = POLLIN; ++ } ++ death().fd = proc.deathPipe[0]; ++ ++ if (proc.processState == QProcess::Starting) ++ started().fd = proc.childStartedPipe[0]; ++ ++ stdout().fd = proc.stdoutChannel.pipe[0]; ++ stderr().fd = proc.stderrChannel.pipe[0]; ++ ++ if (!proc.writeBuffer.isEmpty()) { ++ stdin().fd = proc.stdinChannel.pipe[1]; ++ stdin().events = POLLOUT; ++ } ++ } ++ ++ int poll(int timeout) ++ { ++ return qt_safe_poll(fds, size(), timeout); ++ } ++ ++ pollfd &death() { return fds[0]; } ++ pollfd &started() { return fds[1]; } ++ pollfd &stdout() { return fds[2]; } ++ pollfd &stderr() { return fds[3]; } ++ pollfd &stdin() { return fds[4]; } ++}; ++ + bool QProcessPrivate::waitForReadyRead(int msecs) + { + Q_Q(QProcess); +@@ -1055,28 +1078,9 @@ bool QProcessPrivate::waitForReadyRead(int msecs) + stopWatch.start(); + + forever { +- fd_set fdread; +- fd_set fdwrite; +- +- FD_ZERO(&fdread); +- FD_ZERO(&fdwrite); +- +- int nfds = deathPipe[0]; +- FD_SET(deathPipe[0], &fdread); +- +- if (processState == QProcess::Starting) +- add_fd(nfds, childStartedPipe[0], &fdread); +- +- if (stdoutChannel.pipe[0] != -1) +- add_fd(nfds, stdoutChannel.pipe[0], &fdread); +- if (stderrChannel.pipe[0] != -1) +- add_fd(nfds, stderrChannel.pipe[0], &fdread); +- +- if (!writeBuffer.isEmpty() && stdinChannel.pipe[1] != -1) +- add_fd(nfds, stdinChannel.pipe[1], &fdwrite); +- ++ QProcessFDSet fdset(*this); + int timeout = qt_timeout_value(msecs, stopWatch.elapsed()); +- int ret = select_msecs(nfds + 1, &fdread, &fdwrite, timeout); ++ int ret = fdset.poll(timeout); + if (ret < 0) { + break; + } +@@ -1086,18 +1090,18 @@ bool QProcessPrivate::waitForReadyRead(int msecs) + return false; + } + +- if (childStartedPipe[0] != -1 && FD_ISSET(childStartedPipe[0], &fdread)) { ++ if (qt_readable(fdset.started())) { + if (!_q_startupNotification()) + return false; + } + + bool readyReadEmitted = false; +- if (stdoutChannel.pipe[0] != -1 && FD_ISSET(stdoutChannel.pipe[0], &fdread)) { ++ if (qt_readable(fdset.stdout())) { + bool canRead = _q_canReadStandardOutput(); + if (processChannel == QProcess::StandardOutput && canRead) + readyReadEmitted = true; + } +- if (stderrChannel.pipe[0] != -1 && FD_ISSET(stderrChannel.pipe[0], &fdread)) { ++ if (qt_readable(fdset.stderr())) { + bool canRead = _q_canReadStandardError(); + if (processChannel == QProcess::StandardError && canRead) + readyReadEmitted = true; +@@ -1105,13 +1109,13 @@ bool QProcessPrivate::waitForReadyRead(int msecs) + if (readyReadEmitted) + return true; + +- if (stdinChannel.pipe[1] != -1 && FD_ISSET(stdinChannel.pipe[1], &fdwrite)) ++ if (qt_writable(fdset.stdin())) + _q_canWrite(); + +- if (deathPipe[0] == -1 || FD_ISSET(deathPipe[0], &fdread)) { ++ if (qt_readable(fdset.death())) { + if (_q_processDied()) + return false; +- } ++ } + } + return false; + } +@@ -1127,29 +1131,9 @@ bool QProcessPrivate::waitForBytesWritten(int msecs) + stopWatch.start(); + + while (!writeBuffer.isEmpty()) { +- fd_set fdread; +- fd_set fdwrite; +- +- FD_ZERO(&fdread); +- FD_ZERO(&fdwrite); +- +- int nfds = deathPipe[0]; +- FD_SET(deathPipe[0], &fdread); +- +- if (processState == QProcess::Starting) +- add_fd(nfds, childStartedPipe[0], &fdread); +- +- if (stdoutChannel.pipe[0] != -1) +- add_fd(nfds, stdoutChannel.pipe[0], &fdread); +- if (stderrChannel.pipe[0] != -1) +- add_fd(nfds, stderrChannel.pipe[0], &fdread); +- +- +- if (!writeBuffer.isEmpty() && stdinChannel.pipe[1] != -1) +- add_fd(nfds, stdinChannel.pipe[1], &fdwrite); +- ++ QProcessFDSet fdset(*this); + int timeout = qt_timeout_value(msecs, stopWatch.elapsed()); +- int ret = select_msecs(nfds + 1, &fdread, &fdwrite, timeout); ++ int ret = fdset.poll(timeout); + if (ret < 0) { + break; + } +@@ -1160,24 +1144,24 @@ bool QProcessPrivate::waitForBytesWritten(int msecs) + return false; + } + +- if (childStartedPipe[0] != -1 && FD_ISSET(childStartedPipe[0], &fdread)) { ++ if (qt_readable(fdset.started())) { + if (!_q_startupNotification()) + return false; + } + +- if (stdinChannel.pipe[1] != -1 && FD_ISSET(stdinChannel.pipe[1], &fdwrite)) ++ if (qt_writable(fdset.stdin())) + return _q_canWrite(); + +- if (stdoutChannel.pipe[0] != -1 && FD_ISSET(stdoutChannel.pipe[0], &fdread)) ++ if (qt_readable(fdset.stdout())) + _q_canReadStandardOutput(); + +- if (stderrChannel.pipe[0] != -1 && FD_ISSET(stderrChannel.pipe[0], &fdread)) ++ if (qt_readable(fdset.stderr())) + _q_canReadStandardError(); + +- if (deathPipe[0] == -1 || FD_ISSET(deathPipe[0], &fdread)) { +- if (_q_processDied()) +- return false; +- } ++ if (qt_readable(fdset.death())) { ++ if (_q_processDied()) ++ return false; ++ } + } + + return false; +@@ -1194,29 +1178,9 @@ bool QProcessPrivate::waitForFinished(int msecs) + stopWatch.start(); + + forever { +- fd_set fdread; +- fd_set fdwrite; +- int nfds = -1; +- +- FD_ZERO(&fdread); +- FD_ZERO(&fdwrite); +- +- if (processState == QProcess::Starting) +- add_fd(nfds, childStartedPipe[0], &fdread); +- +- if (stdoutChannel.pipe[0] != -1) +- add_fd(nfds, stdoutChannel.pipe[0], &fdread); +- if (stderrChannel.pipe[0] != -1) +- add_fd(nfds, stderrChannel.pipe[0], &fdread); +- +- if (processState == QProcess::Running) +- add_fd(nfds, deathPipe[0], &fdread); +- +- if (!writeBuffer.isEmpty() && stdinChannel.pipe[1] != -1) +- add_fd(nfds, stdinChannel.pipe[1], &fdwrite); +- ++ QProcessFDSet fdset(*this); + int timeout = qt_timeout_value(msecs, stopWatch.elapsed()); +- int ret = select_msecs(nfds + 1, &fdread, &fdwrite, timeout); ++ int ret = fdset.poll(timeout); + if (ret < 0) { + break; + } +@@ -1226,20 +1190,20 @@ bool QProcessPrivate::waitForFinished(int msecs) + return false; + } + +- if (childStartedPipe[0] != -1 && FD_ISSET(childStartedPipe[0], &fdread)) { ++ if (qt_readable(fdset.started())) { + if (!_q_startupNotification()) + return false; + } +- if (stdinChannel.pipe[1] != -1 && FD_ISSET(stdinChannel.pipe[1], &fdwrite)) ++ if (qt_writable(fdset.stdin())) + _q_canWrite(); + +- if (stdoutChannel.pipe[0] != -1 && FD_ISSET(stdoutChannel.pipe[0], &fdread)) ++ if (qt_readable(fdset.stdout())) + _q_canReadStandardOutput(); + +- if (stderrChannel.pipe[0] != -1 && FD_ISSET(stderrChannel.pipe[0], &fdread)) ++ if (qt_readable(fdset.stderr())) + _q_canReadStandardError(); + +- if (deathPipe[0] == -1 || FD_ISSET(deathPipe[0], &fdread)) { ++ if (qt_readable(fdset.death())) { + if (_q_processDied()) + return true; + } +@@ -1249,10 +1213,10 @@ bool QProcessPrivate::waitForFinished(int msecs) + + bool QProcessPrivate::waitForWrite(int msecs) + { +- fd_set fdwrite; +- FD_ZERO(&fdwrite); +- FD_SET(stdinChannel.pipe[1], &fdwrite); +- return select_msecs(stdinChannel.pipe[1] + 1, 0, &fdwrite, msecs < 0 ? 0 : msecs) == 1; ++ pollfd fd; ++ fd.fd = stdinChannel.pipe[1]; ++ fd.events = POLLIN; ++ return qt_safe_poll(&fd, 1, msecs); + } + + void QProcessPrivate::findExitCode() +--- a/src/corelib/kernel/qcore_unix.cpp ++++ a/src/corelib/kernel/qcore_unix.cpp +@@ -103,4 +103,165 @@ int qt_safe_select(int nfds, fd_set *fdread, fd_set *fdwrite, fd_set *fdexcept, + } + } + ++#ifndef Q_OS_VXWORKS ++ ++int qt_safe_poll(struct pollfd *fds, int nfds, int timeout_ms, bool retry_eintr) ++{ ++ if (nfds == 0) ++ return 0; ++ if (nfds < 0) { ++ errno = EINVAL; ++ return -1; ++ } ++ ++ // Retry on ret == 0 if the deadline has not yet passed because ++ // Linux can return early from the syscall, without setting EINTR. ++ if (timeout_ms < 0) { ++ forever { ++ int ret = ::poll(fds, nfds, -1); ++ if (ret > 0) ++ return ret; ++ if (retry_eintr) { ++ if (ret == 0 || ret == -1 && errno == EINTR) { ++ continue; ++ } else { ++ return -1; ++ } ++ } ++ if (ret == 0) { ++ errno = EINTR; ++ return -1; ++ } ++ return ret; ++ } ++ } ++ ++ timeval previous = qt_gettime(); ++ timeval deadline = previous; ++ deadline.tv_sec += timeout_ms / 1000; ++ deadline.tv_usec += (timeout_ms % 1000) * 1000; ++ if (deadline.tv_usec >= 1000000) { ++ ++deadline.tv_sec; ++ deadline.tv_usec -= 1000000; ++ } ++ int remaining = timeout_ms; ++ ++ forever { ++ int ret = ::poll(fds, nfds, remaining); ++ if (ret > 0) ++ return ret; ++ timeval now = qt_gettime(); ++ if ((now.tv_sec > deadline.tv_sec // past deadline ++ || (now.tv_sec == deadline.tv_sec ++ && now.tv_usec >= deadline.tv_usec)) ++ || (now.tv_sec < previous.tv_sec // time warp ++ || (now.tv_sec == previous.tv_sec ++ && now.tv_usec < previous.tv_usec)) ++ || (ret < 0 && (errno != EINTR || !retry_eintr))) // other error ++ return ret; ++ if (ret == 0 && !retry_eintr) { ++ errno = EINTR; ++ return -1; ++ } ++ remaining = (deadline.tv_sec - now.tv_sec) * 1000 ++ + (deadline.tv_usec - now.tv_usec) / 1000; ++ previous = now; ++ } ++} ++ ++#else ++ ++// Poll emulation for VxWorks. ++ ++static int mark_bad_descriptors(pollfd *fds, int nfds) ++{ ++ fd_set r; ++ FD_ZERO(&r); ++ struct timeval tv; ++ tv.tv_sec = 0; ++ tv.tv_usec = 0; ++ int ret = 0; ++ ++ // Check each descriptor invidually for badness. ++ for (int i = 0; i < nfds; ++i) { ++ pollfd &fd(fds[i]); ++ if (fd.fd >= 0) { ++ FD_SET(fd.fd, &r); ++ int ret = qt_safe_select(fd.fd + 1, &r, NULL, NULL, &tv); ++ FD_CLR(fd.fd, &r); ++ if (ret < 0 && errno == EBADF) { ++ fd.revents = POLLNVAL; ++ ++ret; ++ } ++ } ++ } ++ Q_ASSERT(ret > 0); ++ return ret; ++} ++ ++int qt_safe_poll(pollfd *fds, int nfds, int timeout, bool retry_eintr) ++{ ++ fd_set r, w; ++ FD_ZERO(&r); ++ FD_ZERO(&w); ++ int maxfd = -1; ++ ++ // Extract the watched descriptors. ++ for (int i = 0; i < nfds; ++i) { ++ pollfd &fd(fds[i]); ++ if (fd.fd >= 0 && fd.fd < FD_SETSIZE) { ++ if (fd.events & POLLIN) { ++ FD_SET(fd.fd, &r); ++ if (fd.fd > maxfd) ++ maxfd = fd.fd; ++ } ++ if (fd.events & POLLOUT) { ++ FD_SET(fd.fd, &w); ++ if (fd.fd > maxfd) ++ maxfd = fd.fd; ++ } ++ } ++ } ++ ++ // If timeout is negative, wait indefinitely for activity. ++ timeval tv; ++ timeval *ptv; ++ if (timeout >= 0) { ++ tv.tv_sec = timeout / 1000; ++ tv.tv_usec = (timeout % 1000) * 1000; ++ ptv = &tv; ++ } else ++ ptv = NULL; ++ ++ int ret; ++ if (retry_eintr) ++ ret = qt_safe_select(maxfd + 1, &r, &w, NULL, ptv); ++ else ++ ret = ::select(maxfd + 1, &r, &w, NULL, ptv); ++ if (ret < 0 && errno == EBADF) { ++ return mark_bad_descriptors(fds, nfds); ++ } ++ if (ret <= 0) ++ return ret; ++ ++ // Set the revents flags. ++ ret = 0; ++ for (int i = 0; i < nfds; ++i) { ++ pollfd &fd(fds[i]); ++ fd.revents = 0; ++ if (fd.fd >= 0 && fd.fd < FD_SETSIZE) { ++ if ((fd.events & POLLIN) && FD_ISSET(fd.fd, &r)) ++ fd.revents |= POLLIN; ++ if ((fd.events & POLLOUT) && FD_ISSET(fd.fd, &w)) ++ fd.revents |= POLLOUT; ++ if (fd.revents) ++ ++ret; ++ } ++ } ++ Q_ASSERT(ret > 0); ++ return ret; ++} ++ ++#endif ++ + QT_END_NAMESPACE +--- a/src/corelib/kernel/qcore_unix_p.h ++++ a/src/corelib/kernel/qcore_unix_p.h +@@ -316,9 +316,42 @@ static inline pid_t qt_safe_waitpid(pid_t pid, int *status, int options) + + timeval qt_gettime(); // in qelapsedtimer_mac.cpp or qtimestamp_unix.cpp + ++// Deprecated due to FD_SETSIZE limitation, use qt_safe_poll instead. + Q_CORE_EXPORT int qt_safe_select(int nfds, fd_set *fdread, fd_set *fdwrite, fd_set *fdexcept, + const struct timeval *tv); + ++#ifndef Q_OS_VXWORKS ++#include ++#else ++ ++// Poll emulation for VxWorks. ++ ++struct pollfd { ++ int fd; ++ short events; ++ short revents; ++}; ++ ++#define POLLIN 1 ++#define POLLOUT 2 ++#define POLLERR 4 ++#define POLLHUP 8 ++#define POLLNVAL 16 ++#endif ++ ++inline bool qt_readable(const pollfd &fd) ++{ ++ return fd.fd >= 0 && (fd.revents & (POLLIN | POLLHUP | POLLERR | POLLNVAL)) != 0; ++} ++ ++inline bool qt_writable(const pollfd &fd) ++{ ++ return fd.fd >= 0 && (fd.revents & (POLLOUT | POLLHUP | POLLERR | POLLNVAL)) != 0; ++} ++ ++Q_CORE_EXPORT int qt_safe_poll(pollfd *fds, int nfds, int timeout, ++ bool retry_eintr = true); ++ + // according to X/OPEN we have to define semun ourselves + // we use prefix as on some systems sem.h will have it + struct semid_ds; +--- a/src/network/socket/qlocalserver_unix.cpp ++++ a/src/network/socket/qlocalserver_unix.cpp +@@ -208,16 +208,11 @@ void QLocalServerPrivate::_q_onNewConnection() + + void QLocalServerPrivate::waitForNewConnection(int msec, bool *timedOut) + { +- fd_set readfds; +- FD_ZERO(&readfds); +- FD_SET(listenSocket, &readfds); ++ struct pollfd fd; ++ fd.fd = listenSocket; ++ fd.events = POLLIN; + +- timeval timeout; +- timeout.tv_sec = msec / 1000; +- timeout.tv_usec = (msec % 1000) * 1000; +- +- int result = -1; +- result = qt_safe_select(listenSocket + 1, &readfds, 0, 0, (msec == -1) ? 0 : &timeout); ++ int result = qt_safe_poll(&fd, 1, msec); + if (-1 == result) { + setError(QLatin1String("QLocalServer::waitForNewConnection")); + closeServer(); +--- a/src/network/socket/qlocalsocket_unix.cpp ++++ a/src/network/socket/qlocalsocket_unix.cpp +@@ -56,10 +56,6 @@ + #include + #include + +-#ifdef Q_OS_VXWORKS +-# include +-#endif +- + #define QT_CONNECT_TIMEOUT 30000 + + QT_BEGIN_NAMESPACE +@@ -520,32 +516,17 @@ bool QLocalSocket::waitForConnected(int msec) + if (state() != ConnectingState) + return (state() == ConnectedState); + +- fd_set fds; +- FD_ZERO(&fds); +- FD_SET(d->connectingSocket, &fds); +- +- timeval timeout; +- timeout.tv_sec = msec / 1000; +- timeout.tv_usec = (msec % 1000) * 1000; +- +- // timeout can not be 0 or else select will return an error. +- if (0 == msec) +- timeout.tv_usec = 1000; ++ pollfd fd; ++ fd.fd = d->connectingSocket; ++ fd.events = POLLIN | POLLOUT; + + int result = -1; + // on Linux timeout will be updated by select, but _not_ on other systems. + QElapsedTimer timer; ++ int remaining = msec; + timer.start(); +- while (state() == ConnectingState +- && (-1 == msec || timer.elapsed() < msec)) { +-#ifdef Q_OS_SYMBIAN +- // On Symbian, ready-to-write is signaled when non-blocking socket +- // connect is finised. Is ready-to-read really used on other +- // UNIX paltforms when using non-blocking AF_UNIX socket? +- result = ::select(d->connectingSocket + 1, 0, &fds, 0, &timeout); +-#else +- result = ::select(d->connectingSocket + 1, &fds, 0, 0, &timeout); +-#endif ++ while (state() == ConnectingState) { ++ result = qt_safe_poll(&fd, 1, remaining, /* retry_eintr */ false); + if (-1 == result && errno != EINTR) { + d->errorOccurred( QLocalSocket::UnknownSocketError, + QLatin1String("QLocalSocket::waitForConnected")); +@@ -553,6 +534,11 @@ bool QLocalSocket::waitForConnected(int msec) + } + if (result > 0) + d->_q_connectToSocket(); ++ if (msec >= 0) { ++ remaining = timer.elapsed() - msec; ++ if (remaining < 0) ++ break; ++ } + } + + return (state() == ConnectedState); +--- a/src/network/socket/qnativesocketengine_unix.cpp ++++ a/src/network/socket/qnativesocketengine_unix.cpp +@@ -1090,48 +1090,40 @@ qint64 QNativeSocketEnginePrivate::nativeRead(char *data, qint64 maxSize) + + int QNativeSocketEnginePrivate::nativeSelect(int timeout, bool selectForRead) const + { +- fd_set fds; +- FD_ZERO(&fds); +- FD_SET(socketDescriptor, &fds); +- +- struct timeval tv; +- tv.tv_sec = timeout / 1000; +- tv.tv_usec = (timeout % 1000) * 1000; +- +- int retval; +- if (selectForRead) +- retval = qt_safe_select(socketDescriptor + 1, &fds, 0, 0, timeout < 0 ? 0 : &tv); +- else +- retval = qt_safe_select(socketDescriptor + 1, 0, &fds, 0, timeout < 0 ? 0 : &tv); +- +- return retval; ++ struct pollfd fd; ++ fd.fd = socketDescriptor; ++ if (selectForRead) { ++ fd.events = POLLIN; ++ } else { ++ fd.events = POLLOUT; ++ } ++ return qt_safe_poll(&fd, 1, timeout); + } + + int QNativeSocketEnginePrivate::nativeSelect(int timeout, bool checkRead, bool checkWrite, + bool *selectForRead, bool *selectForWrite) const + { +- fd_set fdread; +- FD_ZERO(&fdread); ++ struct pollfd fd; ++ fd.fd = socketDescriptor; + if (checkRead) +- FD_SET(socketDescriptor, &fdread); +- +- fd_set fdwrite; +- FD_ZERO(&fdwrite); ++ fd.events = POLLIN; ++ else ++ fd.events = 0; + if (checkWrite) +- FD_SET(socketDescriptor, &fdwrite); +- +- struct timeval tv; +- tv.tv_sec = timeout / 1000; +- tv.tv_usec = (timeout % 1000) * 1000; +- +- int ret; +- ret = qt_safe_select(socketDescriptor + 1, &fdread, &fdwrite, 0, timeout < 0 ? 0 : &tv); +- ++ fd.events |= POLLOUT; ++ int ret = qt_safe_poll(&fd, 1, timeout); + if (ret <= 0) +- return ret; +- *selectForRead = FD_ISSET(socketDescriptor, &fdread); +- *selectForWrite = FD_ISSET(socketDescriptor, &fdwrite); +- ++ return ret; ++ bool r = (fd.revents & (POLLIN | POLLHUP | POLLERR)) != 0; ++ bool w = (fd.revents & (POLLOUT | POLLHUP | POLLERR)) != 0; ++ // Emulate the return value from select(2). ++ ret = 0; ++ if (r) ++ ++ret; ++ if (w) ++ ++ret; ++ *selectForRead = r; ++ *selectForWrite = w; + return ret; + } + +--- a/src/qt3support/network/q3socketdevice_unix.cpp ++++ a/src/qt3support/network/q3socketdevice_unix.cpp +@@ -68,6 +68,7 @@ static inline int qt_socket_socket(int domain, int type, int protocol) + #endif + + #include "q3socketdevice.h" ++#include "private/qcore_unix_p.h" + + #ifndef QT_NO_NETWORK + +@@ -588,19 +589,10 @@ Q_LONG Q3SocketDevice::waitForMore( int msecs, bool *timeout ) const + { + if ( !isValid() ) + return -1; +- if ( fd >= FD_SETSIZE ) +- return -1; +- +- fd_set fds; +- struct timeval tv; +- +- FD_ZERO( &fds ); +- FD_SET( fd, &fds ); +- +- tv.tv_sec = msecs / 1000; +- tv.tv_usec = (msecs % 1000) * 1000; + +- int rv = select( fd+1, &fds, 0, 0, msecs < 0 ? 0 : &tv ); ++ pollfd pfd; ++ pfd.fd = fd; ++ int rv = qt_safe_poll(&pfd, 1, msecs, /* retry_eintr */ false); + + if ( rv < 0 ) + return -1; +--- a/src/qt3support/other/q3process_unix.cpp ++++ a/src/qt3support/other/q3process_unix.cpp +@@ -981,13 +981,10 @@ bool Q3Process::isRunning() const + // On heavy processing, the socket notifier for the sigchild might not + // have found time to fire yet. + if ( d->procManager && d->procManager->sigchldFd[1] < FD_SETSIZE ) { +- fd_set fds; +- struct timeval tv; +- FD_ZERO( &fds ); +- FD_SET( d->procManager->sigchldFd[1], &fds ); +- tv.tv_sec = 0; +- tv.tv_usec = 0; +- if ( ::select( d->procManager->sigchldFd[1]+1, &fds, 0, 0, &tv ) > 0 ) ++ pollfd fd; ++ fd.fd = d->procManager->sigchldFd[1]; ++ fd.events = POLLIN; ++ if ( qt_safe_poll(&fd, 1, 0, /* retry_eintr */ false) > 0 ) + d->procManager->sigchldHnd( d->procManager->sigchldFd[1] ); + } + +@@ -1124,29 +1121,21 @@ void Q3Process::socketRead( int fd ) + } + } + +- if ( fd < FD_SETSIZE ) { +- fd_set fds; +- struct timeval tv; +- FD_ZERO( &fds ); +- FD_SET( fd, &fds ); +- tv.tv_sec = 0; +- tv.tv_usec = 0; +- while ( ::select( fd+1, &fds, 0, 0, &tv ) > 0 ) { +- // prepare for the next round +- FD_ZERO( &fds ); +- FD_SET( fd, &fds ); +- // read data +- ba = new QByteArray( basize ); +- n = ::read( fd, ba->data(), basize ); +- if ( n > 0 ) { +- ba->resize( n ); +- buffer->append( ba ); +- ba = 0; +- } else { +- delete ba; +- ba = 0; +- break; +- } ++ pollfd pfd; ++ pfd.fd = fd; ++ pfd.events = POLLIN; ++ while (qt_safe_poll(&pfd, 1, 0)) { ++ // read data ++ ba = new QByteArray( basize ); ++ n = ::read( fd, ba->data(), basize ); ++ if ( n > 0 ) { ++ ba->resize( n ); ++ buffer->append( ba ); ++ ba = 0; ++ } else { ++ delete ba; ++ ba = 0; ++ break; + } + } + diff --git a/SOURCES/qt-everywhere-opensource-src-4.6.2-cups.patch b/SOURCES/qt-everywhere-opensource-src-4.6.2-cups.patch new file mode 100644 index 0000000..e0305e1 --- /dev/null +++ b/SOURCES/qt-everywhere-opensource-src-4.6.2-cups.patch @@ -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/SOURCES/qt-everywhere-opensource-src-4.6.3-glib_eventloop_nullcheck.patch b/SOURCES/qt-everywhere-opensource-src-4.6.3-glib_eventloop_nullcheck.patch new file mode 100644 index 0000000..d4e5924 --- /dev/null +++ b/SOURCES/qt-everywhere-opensource-src-4.6.3-glib_eventloop_nullcheck.patch @@ -0,0 +1,69 @@ +diff -ur qt-everywhere-opensource-src-4.6.3/src/gui/kernel/qguieventdispatcher_glib.cpp qt-everywhere-opensource-src-4.6.3-glib_eventloop_nullcheck/src/gui/kernel/qguieventdispatcher_glib.cpp +--- qt-everywhere-opensource-src-4.6.3/src/gui/kernel/qguieventdispatcher_glib.cpp 2010-06-02 04:03:15.000000000 +0200 ++++ qt-everywhere-opensource-src-4.6.3-glib_eventloop_nullcheck/src/gui/kernel/qguieventdispatcher_glib.cpp 2010-12-08 22:22:38.000000000 +0100 +@@ -76,7 +76,7 @@ + GX11EventSource *source = reinterpret_cast(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 @@ + GX11EventSource *source = reinterpret_cast(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) +@@ -95,7 +95,7 @@ + do { + XEvent event; + if (!(source->flags & QEventLoop::ExcludeUserInputEvents) +- && !source->d->queuedUserInputEvents.isEmpty()) { ++ && source->d && !source->d->queuedUserInputEvents.isEmpty()) { + // process a pending user input event + event = source->d->queuedUserInputEvents.takeFirst(); + } else if (XEventsQueued(X11->display, QueuedAlready)) { +@@ -112,7 +112,8 @@ + case XKeyRelease: + case EnterNotify: + case LeaveNotify: +- source->d->queuedUserInputEvents.append(event); ++ if (source->d) ++ source->d->queuedUserInputEvents.append(event); + continue; + + case ClientMessage: +@@ -127,7 +128,8 @@ + break; + } + } +- source->d->queuedUserInputEvents.append(event); ++ if (source->d) ++ source->d->queuedUserInputEvents.append(event); + continue; + + default: +@@ -140,7 +142,7 @@ + } + + // send through event filter +- if (source->q->filterEvent(&event)) ++ if (source->q && source->q->filterEvent(&event)) + continue; + + if (qApp->x11ProcessEvent(&event) == 1) +@@ -152,7 +154,8 @@ + + out: + +- source->d->runTimersOnceWithNormalPriority(); ++ if (source->d) ++ source->d->runTimersOnceWithNormalPriority(); + + if (callback) + callback(user_data); diff --git a/SOURCES/qt-everywhere-opensource-src-4.7.0-beta2-mysql_config.patch b/SOURCES/qt-everywhere-opensource-src-4.7.0-beta2-mysql_config.patch new file mode 100644 index 0000000..f599738 --- /dev/null +++ b/SOURCES/qt-everywhere-opensource-src-4.7.0-beta2-mysql_config.patch @@ -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 --variable=pkglibdir &>/dev/null && \ ++ QT_MYSQL_PKGLIBDIR=`$CFG_MYSQL_CONFIG --variable=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/SOURCES/qt-everywhere-opensource-src-4.8-ppc64le_support.patch b/SOURCES/qt-everywhere-opensource-src-4.8-ppc64le_support.patch new file mode 100644 index 0000000..3438e25 --- /dev/null +++ b/SOURCES/qt-everywhere-opensource-src-4.8-ppc64le_support.patch @@ -0,0 +1,25 @@ +--- qt-everywhere-opensource-src-4.8.5/configure 2013-10-10 00:40:17.000000000 +0200 ++++ qt-everywhere-opensource-src-4.8.5/configure 2013-10-10 13:47:49.000000000 +0200 +@@ -3235,6 +3235,12 @@ if [ -z "${CFG_HOST_ARCH}" ]; then + fi + CFG_HOST_ARCH=powerpc + ;; ++ ppc64le:*:*|*:ppc64le:*|*:*:ppc64le) ++ if [ "$OPT_VERBOSE" = "yes" ]; then ++ echo " 64-bit PowerPC little endian (ppc64le)" ++ fi ++ CFG_HOST_ARCH=powerpc ++ ;; + *:*:s390*) + if [ "$OPT_VERBOSE" = "yes" ]; then + echo " IBM S/390 (s390)" +@@ -3299,6 +3305,9 @@ if [ "$PLATFORM" != "$XPLATFORM" -a "$CF + arm*) + CFG_ARCH=arm + ;; ++ ppc64le) ++ CFG_ARCH=powerpc ++ ;; + *) + CFG_ARCH="$CFG_EMBEDDED" + ;; diff --git a/SOURCES/qt-everywhere-opensource-src-4.8.0-QTBUG-22037.patch b/SOURCES/qt-everywhere-opensource-src-4.8.0-QTBUG-22037.patch new file mode 100644 index 0000000..4279ce2 --- /dev/null +++ b/SOURCES/qt-everywhere-opensource-src-4.8.0-QTBUG-22037.patch @@ -0,0 +1,41 @@ +diff -up qt-everywhere-opensource-src-4.8.0/src/corelib/tools/qlist.h.QTBUG-22037 qt-everywhere-opensource-src-4.8.0/src/corelib/tools/qlist.h +--- qt-everywhere-opensource-src-4.8.0/src/corelib/tools/qlist.h.QTBUG-22037 2011-10-03 22:44:32.000000000 -0500 ++++ qt-everywhere-opensource-src-4.8.0/src/corelib/tools/qlist.h 2011-10-15 14:25:52.238694974 -0500 +@@ -769,26 +769,18 @@ Q_OUTOFLINE_TEMPLATE void QList::clea + template + Q_OUTOFLINE_TEMPLATE int QList::removeAll(const T &_t) + { +- int index = indexOf(_t); +- if (index == -1) +- return 0; +- ++ detachShared(); + const T t = _t; +- detach(); +- +- Node *i = reinterpret_cast(p.at(index)); +- Node *e = reinterpret_cast(p.end()); +- Node *n = i; +- node_destruct(i); +- while (++i != e) { +- if (i->t() == t) +- node_destruct(i); +- else +- *n++ = *i; +- } +- +- int removedCount = e - n; +- d->end -= removedCount; ++ int removedCount=0, i=0; ++ Node *n; ++ while (i < p.size()) ++ if ((n = reinterpret_cast(p.at(i)))->t() == t) { ++ node_destruct(n); ++ p.remove(i); ++ ++removedCount; ++ } else { ++ ++i; ++ } + return removedCount; + } + diff --git a/SOURCES/qt-everywhere-opensource-src-4.8.0-beta1-s390.patch b/SOURCES/qt-everywhere-opensource-src-4.8.0-beta1-s390.patch new file mode 100644 index 0000000..5f0bbf8 --- /dev/null +++ b/SOURCES/qt-everywhere-opensource-src-4.8.0-beta1-s390.patch @@ -0,0 +1,31 @@ +diff -up qt-everywhere-opensource-src-4.8.0/src/3rdparty/javascriptcore/JavaScriptCore/wtf/Platform.h.s390 qt-everywhere-opensource-src-4.8.0/src/3rdparty/javascriptcore/JavaScriptCore/wtf/Platform.h +--- qt-everywhere-opensource-src-4.8.0/src/3rdparty/javascriptcore/JavaScriptCore/wtf/Platform.h.s390 2011-07-28 11:12:48.000000000 +0200 ++++ qt-everywhere-opensource-src-4.8.0/src/3rdparty/javascriptcore/JavaScriptCore/wtf/Platform.h 2011-07-28 11:13:56.000000000 +0200 +@@ -189,6 +189,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) \ +@@ -873,7 +885,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 --git a/SOURCES/qt-everywhere-opensource-src-4.8.0-ld-gold.patch b/SOURCES/qt-everywhere-opensource-src-4.8.0-ld-gold.patch new file mode 100644 index 0000000..0e3897e --- /dev/null +++ b/SOURCES/qt-everywhere-opensource-src-4.8.0-ld-gold.patch @@ -0,0 +1,22 @@ +diff -up qt-everywhere-opensource-src-4.8.0/src/3rdparty/webkit/Source/common.pri.me qt-everywhere-opensource-src-4.8.0/src/3rdparty/webkit/Source/common.pri +--- qt-everywhere-opensource-src-4.8.0/src/3rdparty/webkit/Source/common.pri.me 2012-01-24 13:05:50.460890750 +0100 ++++ qt-everywhere-opensource-src-4.8.0/src/3rdparty/webkit/Source/common.pri 2012-01-24 13:19:08.836799974 +0100 +@@ -3,12 +3,12 @@ + contains(JAVASCRIPTCORE_JIT,yes): DEFINES+=ENABLE_JIT=1 + contains(JAVASCRIPTCORE_JIT,no): DEFINES+=ENABLE_JIT=0 + +-linux-g++ { +-isEmpty($$(SBOX_DPKG_INST_ARCH)):exists(/usr/bin/ld.gold) { +- message(Using gold linker) +- QMAKE_LFLAGS+=-fuse-ld=gold +-} +-} ++#linux-g++ { ++#isEmpty($$(SBOX_DPKG_INST_ARCH)):exists(/usr/bin/ld.gold) { ++# message(Using gold linker) ++# QMAKE_LFLAGS+=-fuse-ld=gold ++#} ++#} + + # We use this flag on production branches + # See https://bugs.webkit.org/show_bug.cgi?id=60824 diff --git a/SOURCES/qt-everywhere-opensource-src-4.8.0-s390-atomic.patch b/SOURCES/qt-everywhere-opensource-src-4.8.0-s390-atomic.patch new file mode 100644 index 0000000..6fedcc8 --- /dev/null +++ b/SOURCES/qt-everywhere-opensource-src-4.8.0-s390-atomic.patch @@ -0,0 +1,20 @@ +diff -up qt-everywhere-opensource-src-4.8.0/src/corelib/arch/qatomic_s390.h.s390-atomic qt-everywhere-opensource-src-4.8.0/src/corelib/arch/qatomic_s390.h +--- qt-everywhere-opensource-src-4.8.0/src/corelib/arch/qatomic_s390.h.s390-atomic 2011-12-18 16:15:20.000000000 +0100 ++++ qt-everywhere-opensource-src-4.8.0/src/corelib/arch/qatomic_s390.h 2011-12-18 16:17:34.000000000 +0100 +@@ -400,6 +400,16 @@ Q_INLINE_TEMPLATE T* QBasicAtomicPointer + + + template ++Q_INLINE_TEMPLATE T *QBasicAtomicPointer::fetchAndAddOrdered(qptrdiff valueToAdd) ++{ ++#ifndef __s390x__ ++ return (T *)__CS_OLD_LOOP(&_q_value, valueToAdd * sizeof(T), "ar", "", "bcr 15,0\n"); ++#else ++ return (T *)__CSG_OLD_LOOP(&_q_value, valueToAdd * sizeof(T), "agr", "", "bcr 15,0\n"); ++#endif ++} ++ ++template + Q_INLINE_TEMPLATE T *QBasicAtomicPointer::fetchAndAddRelaxed(qptrdiff valueToAdd) + { + return fetchAndAddOrdered(valueToAdd); diff --git a/SOURCES/qt-everywhere-opensource-src-4.8.0-tp-multilib-optflags.patch b/SOURCES/qt-everywhere-opensource-src-4.8.0-tp-multilib-optflags.patch new file mode 100644 index 0000000..5c8b5a1 --- /dev/null +++ b/SOURCES/qt-everywhere-opensource-src-4.8.0-tp-multilib-optflags.patch @@ -0,0 +1,36 @@ +diff -up qt-everywhere-opensource-src-4.8.0-tp/mkspecs/linux-g++-32/qmake.conf.multilib qt-everywhere-opensource-src-4.8.0-tp/mkspecs/linux-g++-32/qmake.conf +--- qt-everywhere-opensource-src-4.8.0-tp/mkspecs/linux-g++-32/qmake.conf.multilib 2011-05-23 12:26:21.000000000 +0200 ++++ qt-everywhere-opensource-src-4.8.0-tp/mkspecs/linux-g++-32/qmake.conf 2011-05-25 13:39:38.789054074 +0200 +@@ -12,6 +12,8 @@ QMAKE_INCREMENTAL_STYLE = sublib + QMAKE_CFLAGS = -m32 + QMAKE_LFLAGS = -m32 + ++QMAKE_CFLAGS_RELEASE += -O2 ++ + include(../common/linux.conf) + include(../common/gcc-base-unix.conf) + include(../common/g++-unix.conf) +diff -up qt-everywhere-opensource-src-4.8.0-tp/mkspecs/linux-g++-64/qmake.conf.multilib qt-everywhere-opensource-src-4.8.0-tp/mkspecs/linux-g++-64/qmake.conf +--- qt-everywhere-opensource-src-4.8.0-tp/mkspecs/linux-g++-64/qmake.conf.multilib 2011-05-23 12:26:21.000000000 +0200 ++++ qt-everywhere-opensource-src-4.8.0-tp/mkspecs/linux-g++-64/qmake.conf 2011-05-25 13:39:47.460747770 +0200 +@@ -15,6 +15,8 @@ QMAKE_INCREMENTAL_STYLE = sublib + QMAKE_CFLAGS = -m64 + QMAKE_LFLAGS = -m64 + ++QMAKE_CFLAGS_RELEASE += -O2 ++ + include(../common/linux.conf) + include(../common/gcc-base-unix.conf) + include(../common/g++-unix.conf) +diff -up qt-everywhere-opensource-src-4.8.0-tp/mkspecs/linux-g++/qmake.conf.multilib qt-everywhere-opensource-src-4.8.0-tp/mkspecs/linux-g++/qmake.conf +--- qt-everywhere-opensource-src-4.8.0-tp/mkspecs/linux-g++/qmake.conf.multilib 2011-05-23 12:26:21.000000000 +0200 ++++ qt-everywhere-opensource-src-4.8.0-tp/mkspecs/linux-g++/qmake.conf 2011-05-25 13:39:26.630088814 +0200 +@@ -9,6 +9,8 @@ CONFIG += qt warn_on release increment + QT += core gui + QMAKE_INCREMENTAL_STYLE = sublib + ++QMAKE_CFLAGS_RELEASE += -O2 ++ + include(../common/linux.conf) + include(../common/gcc-base-unix.conf) + include(../common/g++-unix.conf) diff --git a/SOURCES/qt-everywhere-opensource-src-4.8.0-tp-qtreeview-kpackagekit-crash.patch b/SOURCES/qt-everywhere-opensource-src-4.8.0-tp-qtreeview-kpackagekit-crash.patch new file mode 100644 index 0000000..947f758 --- /dev/null +++ b/SOURCES/qt-everywhere-opensource-src-4.8.0-tp-qtreeview-kpackagekit-crash.patch @@ -0,0 +1,12 @@ +diff -up qt-everywhere-opensource-src-4.8.0-tp/src/gui/itemviews/qtreeview.cpp.qtreeview-kpackagekit-crash qt-everywhere-opensource-src-4.8.0-tp/src/gui/itemviews/qtreeview.cpp +--- qt-everywhere-opensource-src-4.8.0-tp/src/gui/itemviews/qtreeview.cpp.qtreeview-kpackagekit-crash 2011-05-23 12:26:21.000000000 +0200 ++++ qt-everywhere-opensource-src-4.8.0-tp/src/gui/itemviews/qtreeview.cpp 2011-05-25 13:24:33.137315194 +0200 +@@ -3215,7 +3215,7 @@ int QTreeViewPrivate::itemHeight(int ite + return defaultItemHeight; + if (viewItems.isEmpty()) + return 0; +- const QModelIndex &index = viewItems.at(item).index; ++ QModelIndex index = viewItems.at(item).index; + if (!index.isValid()) + return 0; + int height = viewItems.at(item).height; diff --git a/SOURCES/qt-everywhere-opensource-src-4.8.1-linguist_qmake-qt4.patch b/SOURCES/qt-everywhere-opensource-src-4.8.1-linguist_qmake-qt4.patch new file mode 100644 index 0000000..e84446c --- /dev/null +++ b/SOURCES/qt-everywhere-opensource-src-4.8.1-linguist_qmake-qt4.patch @@ -0,0 +1,27 @@ +diff -up qt-everywhere-opensource-src-4.8.2/tools/linguist/lrelease/main.cpp.linguist_qtmake-qt4 qt-everywhere-opensource-src-4.8.2/tools/linguist/lrelease/main.cpp +--- qt-everywhere-opensource-src-4.8.2/tools/linguist/lrelease/main.cpp.linguist_qtmake-qt4 2012-04-26 21:45:50.000000000 +0200 ++++ qt-everywhere-opensource-src-4.8.2/tools/linguist/lrelease/main.cpp 2012-05-29 12:17:03.416561535 +0200 +@@ -314,9 +314,9 @@ int main(int argc, char **argv) + parseHandler.verbose = evalHandler.verbose = cd.isVerbose(); + ProFileOption option; + #ifdef QT_BOOTSTRAPPED +- option.initProperties(binDir + QLatin1String("/qmake")); ++ option.initProperties(binDir + QLatin1String("/qmake-qt4")); + #else +- option.initProperties(app.applicationDirPath() + QLatin1String("/qmake")); ++ option.initProperties(app.applicationDirPath() + QLatin1String("/qmake-qt4")); + #endif + ProFileParser parser(0, &parseHandler); + ProFileEvaluator visitor(&option, &parser, &evalHandler); +diff -up qt-everywhere-opensource-src-4.8.2/tools/linguist/lupdate/main.cpp.linguist_qtmake-qt4 qt-everywhere-opensource-src-4.8.2/tools/linguist/lupdate/main.cpp +--- qt-everywhere-opensource-src-4.8.2/tools/linguist/lupdate/main.cpp.linguist_qtmake-qt4 2012-04-26 21:45:50.000000000 +0200 ++++ qt-everywhere-opensource-src-4.8.2/tools/linguist/lupdate/main.cpp 2012-05-29 11:46:48.811134546 +0200 +@@ -765,7 +765,7 @@ int main(int argc, char **argv) + + parseHandler.verbose = evalHandler.verbose = !!(options & Verbose); + ProFileOption option; +- option.initProperties(app.applicationDirPath() + QLatin1String("/qmake")); ++ option.initProperties(app.applicationDirPath() + QLatin1String("/qmake-qt4")); + option.setCommandLineArguments(QStringList() << QLatin1String("CONFIG+=lupdate_run")); + ProFileParser parser(0, &parseHandler); + diff --git a/SOURCES/qt-everywhere-opensource-src-4.8.1-qt3support_debuginfo.patch b/SOURCES/qt-everywhere-opensource-src-4.8.1-qt3support_debuginfo.patch new file mode 100644 index 0000000..7458314 --- /dev/null +++ b/SOURCES/qt-everywhere-opensource-src-4.8.1-qt3support_debuginfo.patch @@ -0,0 +1,10 @@ +diff -up qt-everywhere-opensource-src-4.8.1/src/qt3support/qt3support.pro.debuginfo qt-everywhere-opensource-src-4.8.1/src/qt3support/qt3support.pro +--- qt-everywhere-opensource-src-4.8.1/src/qt3support/qt3support.pro.debuginfo 2012-03-14 09:01:17.000000000 -0500 ++++ qt-everywhere-opensource-src-4.8.1/src/qt3support/qt3support.pro 2012-05-11 11:55:37.780070386 -0500 +@@ -34,6 +34,3 @@ MOCDIR = .moc + + *-g++*: QMAKE_CXXFLAGS += -fno-strict-aliasing + +-CONFIG -= separate_debug_info +-CONFIG += no_debug_info +- diff --git a/SOURCES/qt-everywhere-opensource-src-4.8.1-qtgahandle.patch b/SOURCES/qt-everywhere-opensource-src-4.8.1-qtgahandle.patch new file mode 100644 index 0000000..64ffef3 --- /dev/null +++ b/SOURCES/qt-everywhere-opensource-src-4.8.1-qtgahandle.patch @@ -0,0 +1,53 @@ +diff -up qt-everywhere-opensource-src-4.8.1/src/plugins/imageformats/tga/qtgafile.cpp.me qt-everywhere-opensource-src-4.8.1/src/plugins/imageformats/tga/qtgafile.cpp +--- qt-everywhere-opensource-src-4.8.1/src/plugins/imageformats/tga/qtgafile.cpp.me 2012-03-30 21:54:59.921331145 +0200 ++++ qt-everywhere-opensource-src-4.8.1/src/plugins/imageformats/tga/qtgafile.cpp 2012-03-30 21:58:14.516042067 +0200 +@@ -41,6 +41,7 @@ + + #include "qtgafile.h" + ++#include + #include + #include + #include +@@ -264,3 +265,16 @@ QImage QTgaFile::readImage() + // TODO: add processing of TGA extension information - ie TGA 2.0 files + return im; + } ++/** ++ * Checks if device contains a valid tga image, *without* changing device ++ * position. ++ */ ++bool QTgaFile::canRead(QIODevice *device) ++{ ++ QByteArray header = device->peek(HeaderSize); ++ if (header.size() < HeaderSize) ++ return false; ++ QBuffer buffer(&header); ++ QTgaFile tga(&buffer); ++ return tga.isValid(); ++} +diff -up qt-everywhere-opensource-src-4.8.1/src/plugins/imageformats/tga/qtgafile.h.me qt-everywhere-opensource-src-4.8.1/src/plugins/imageformats/tga/qtgafile.h +--- qt-everywhere-opensource-src-4.8.1/src/plugins/imageformats/tga/qtgafile.h.me 2012-03-30 21:58:39.670023189 +0200 ++++ qt-everywhere-opensource-src-4.8.1/src/plugins/imageformats/tga/qtgafile.h 2012-03-30 21:59:06.202317384 +0200 +@@ -93,6 +93,8 @@ public: + inline QSize size() const; + inline Compression compression() const; + ++ static bool canRead(QIODevice *device); ++ + private: + static inline quint16 littleEndianInt(const unsigned char *d); + +diff -up qt-everywhere-opensource-src-4.8.1/src/plugins/imageformats/tga/qtgahandler.cpp.me qt-everywhere-opensource-src-4.8.1/src/plugins/imageformats/tga/qtgahandler.cpp +--- qt-everywhere-opensource-src-4.8.1/src/plugins/imageformats/tga/qtgahandler.cpp.me 2012-03-30 21:59:17.373303356 +0200 ++++ qt-everywhere-opensource-src-4.8.1/src/plugins/imageformats/tga/qtgahandler.cpp 2012-03-30 22:00:13.817226439 +0200 +@@ -77,8 +77,7 @@ bool QTgaHandler::canRead(QIODevice *dev + qWarning("QTgaHandler::canRead() called with no device"); + return false; + } +- QTgaFile tga(device); +- return tga.isValid(); ++ return QTgaFile::canRead(device); + } + + bool QTgaHandler::read(QImage *image) diff --git a/SOURCES/qt-everywhere-opensource-src-4.8.2--assistant-crash.patch b/SOURCES/qt-everywhere-opensource-src-4.8.2--assistant-crash.patch new file mode 100644 index 0000000..f0a41a4 --- /dev/null +++ b/SOURCES/qt-everywhere-opensource-src-4.8.2--assistant-crash.patch @@ -0,0 +1,13 @@ +diff -up qt-everywhere-opensource-src-4.8.2/tools/assistant/tools/assistant/mainwindow.cpp.me qt-everywhere-opensource-src-4.8.2/tools/assistant/tools/assistant/mainwindow.cpp +--- qt-everywhere-opensource-src-4.8.2/tools/assistant/tools/assistant/mainwindow.cpp.me 2012-06-19 12:52:22.740180410 +0200 ++++ qt-everywhere-opensource-src-4.8.2/tools/assistant/tools/assistant/mainwindow.cpp 2012-06-19 12:52:51.953194103 +0200 +@@ -944,8 +944,7 @@ void MainWindow::updateApplicationFont() + if (helpEngine.usesAppFont()) + font = helpEngine.appFont(); + +- const QWidgetList &widgets = qApp->allWidgets(); +- foreach (QWidget* widget, widgets) ++ foreach (QWidget* widget, QApplication::allWidgets()) + widget->setFont(font); + } + diff --git a/SOURCES/qt-everywhere-opensource-src-4.8.3-icu_no_debug.patch b/SOURCES/qt-everywhere-opensource-src-4.8.3-icu_no_debug.patch new file mode 100644 index 0000000..9c53f3c --- /dev/null +++ b/SOURCES/qt-everywhere-opensource-src-4.8.3-icu_no_debug.patch @@ -0,0 +1,23 @@ +diff -up qt-everywhere-opensource-src-4.8.3/src/corelib/tools/qlocale_icu.cpp.icu_no_debug qt-everywhere-opensource-src-4.8.3/src/corelib/tools/qlocale_icu.cpp +--- qt-everywhere-opensource-src-4.8.3/src/corelib/tools/qlocale_icu.cpp.icu_no_debug 2012-09-06 02:33:45.000000000 -0500 ++++ qt-everywhere-opensource-src-4.8.3/src/corelib/tools/qlocale_icu.cpp 2012-09-11 09:04:21.542379795 -0500 +@@ -84,7 +84,9 @@ bool qt_initIcu(const QString &localeStr + QLibrary lib(QLatin1String("icui18n"), QLatin1String(U_ICU_VERSION_SHORT)); + lib.setLoadHints(QLibrary::ImprovedSearchHeuristics); + if (!lib.load()) { ++#ifndef QT_NO_DEBUG + qWarning() << "Unable to load library icui18n" << lib.errorString(); ++#endif + status = ErrorLoading; + return false; + } +@@ -114,7 +116,9 @@ bool qt_initIcu(const QString &localeStr + QLibrary ucLib(QLatin1String("icuuc"), QLatin1String(U_ICU_VERSION_SHORT)); + ucLib.setLoadHints(QLibrary::ImprovedSearchHeuristics); + if (!ucLib.load()) { ++#ifndef QT_NO_DEBUG + qWarning() << "Unable to load library icuuc" << ucLib.errorString(); ++#endif + status = ErrorLoading; + return false; + } diff --git a/SOURCES/qt-everywhere-opensource-src-4.8.3-no_Werror.patch b/SOURCES/qt-everywhere-opensource-src-4.8.3-no_Werror.patch new file mode 100644 index 0000000..86dcc28 --- /dev/null +++ b/SOURCES/qt-everywhere-opensource-src-4.8.3-no_Werror.patch @@ -0,0 +1,12 @@ +diff -up qt-everywhere-opensource-src-4.8.3/src/3rdparty/webkit/Source/WebKit.pri.no_Werror qt-everywhere-opensource-src-4.8.3/src/3rdparty/webkit/Source/WebKit.pri +--- qt-everywhere-opensource-src-4.8.3/src/3rdparty/webkit/Source/WebKit.pri.no_Werror 2012-09-06 02:33:50.000000000 -0500 ++++ qt-everywhere-opensource-src-4.8.3/src/3rdparty/webkit/Source/WebKit.pri 2012-09-11 09:03:19.152159783 -0500 +@@ -102,7 +102,7 @@ CONFIG -= warn_on + + # Treat warnings as errors on x86/Linux/GCC + linux-g++* { +- !CONFIG(standalone_package):if(isEqual(QT_ARCH,x86_64)|isEqual(QT_ARCH,i386)): QMAKE_CXXFLAGS += -Werror ++ #!CONFIG(standalone_package):if(isEqual(QT_ARCH,x86_64)|isEqual(QT_ARCH,i386)): QMAKE_CXXFLAGS += -Werror + + greaterThan(QT_GCC_MAJOR_VERSION, 3):greaterThan(QT_GCC_MINOR_VERSION, 5) { + if (!contains(QMAKE_CXXFLAGS, -std=c++0x) && !contains(QMAKE_CXXFLAGS, -std=gnu++0x)) { diff --git a/SOURCES/qt-everywhere-opensource-src-4.8.3-qdbusconnection_no_debug.patch b/SOURCES/qt-everywhere-opensource-src-4.8.3-qdbusconnection_no_debug.patch new file mode 100644 index 0000000..dd3a5a0 --- /dev/null +++ b/SOURCES/qt-everywhere-opensource-src-4.8.3-qdbusconnection_no_debug.patch @@ -0,0 +1,14 @@ +diff -up qt-everywhere-opensource-src-4.8.3/src/dbus/qdbusconnection.cpp.qdbusconnection_no_debug.patch qt-everywhere-opensource-src-4.8.3/src/dbus/qdbusconnection.cpp +--- qt-everywhere-opensource-src-4.8.3/src/dbus/qdbusconnection.cpp.qdbusconnection_no_debug.patch 2012-09-06 02:33:44.000000000 -0500 ++++ qt-everywhere-opensource-src-4.8.3/src/dbus/qdbusconnection.cpp 2012-09-11 08:55:29.854026815 -0500 +@@ -1109,8 +1109,10 @@ public: + // make sure this connection is running on the main thread + QCoreApplication *instance = QCoreApplication::instance(); + if (!instance) { ++#ifndef QT_NO_DEBUG + qWarning("QDBusConnection: %s D-Bus connection created before QCoreApplication. Application may misbehave.", + type == SessionBus ? "session" : type == SystemBus ? "system" : "generic"); ++#endif + } else if (QDBusConnectionPrivate::d(*this)) { + QDBusConnectionPrivate::d(*this)->moveToThread(instance->thread()); + } diff --git a/SOURCES/qt-everywhere-opensource-src-4.8.4-qmake_pkgconfig_requires_private.patch b/SOURCES/qt-everywhere-opensource-src-4.8.4-qmake_pkgconfig_requires_private.patch new file mode 100644 index 0000000..0494c81 --- /dev/null +++ b/SOURCES/qt-everywhere-opensource-src-4.8.4-qmake_pkgconfig_requires_private.patch @@ -0,0 +1,16 @@ +diff -up qt-everywhere-opensource-src-4.8.4/qmake/generators/makefile.cpp.qmake_pkgconfig_requires_private qt-everywhere-opensource-src-4.8.4/qmake/generators/makefile.cpp +--- qt-everywhere-opensource-src-4.8.4/qmake/generators/makefile.cpp.qmake_pkgconfig_requires_private 2012-11-23 04:11:21.000000000 -0600 ++++ qt-everywhere-opensource-src-4.8.4/qmake/generators/makefile.cpp 2013-02-11 07:36:36.192779528 -0600 +@@ -3293,6 +3293,12 @@ MakefileGenerator::writePkgConfigFile() + t << "Requires: " << requires << endl; + } + ++ // requires.private ++ const QString requires_private = project->values("QMAKE_PKGCONFIG_REQUIRES_PRIVATE").join(" "); ++ if (!requires_private.isEmpty()) { ++ t << "Requires.private: " << requires_private << endl; ++ } ++ + t << endl; + } + diff --git a/SOURCES/qt-everywhere-opensource-src-4.8.5-QTBUG-14467.patch b/SOURCES/qt-everywhere-opensource-src-4.8.5-QTBUG-14467.patch new file mode 100644 index 0000000..81d74ff --- /dev/null +++ b/SOURCES/qt-everywhere-opensource-src-4.8.5-QTBUG-14467.patch @@ -0,0 +1,24 @@ +diff -up qt-everywhere-opensource-src-4.8.5/mkspecs/features/qt_functions.prf.QTBUG-14467 qt-everywhere-opensource-src-4.8.5/mkspecs/features/qt_functions.prf +--- qt-everywhere-opensource-src-4.8.5/mkspecs/features/qt_functions.prf.QTBUG-14467 2013-05-30 16:19:17.000000000 -0500 ++++ qt-everywhere-opensource-src-4.8.5/mkspecs/features/qt_functions.prf 2013-06-09 11:53:45.709773603 -0500 +@@ -72,7 +72,7 @@ defineTest(qtAddLibrary) { + } + isEmpty(LINKAGE) { + if(!debug_and_release|build_pass):CONFIG(debug, debug|release) { +- win32:LINKAGE = -l$${LIB_NAME}$${QT_LIBINFIX}d ++ win32:LINKAGE = -l$${LIB_NAME}d$${QT_LIBINFIX} + mac:LINKAGE = -l$${LIB_NAME}$${QT_LIBINFIX}_debug + } + isEmpty(LINKAGE):LINKAGE = -l$${LIB_NAME}$${QT_LIBINFIX} +diff -up qt-everywhere-opensource-src-4.8.5/mkspecs/features/win32/windows.prf.QTBUG-14467 qt-everywhere-opensource-src-4.8.5/mkspecs/features/win32/windows.prf +--- qt-everywhere-opensource-src-4.8.5/mkspecs/features/win32/windows.prf.QTBUG-14467 2013-05-30 16:19:17.000000000 -0500 ++++ qt-everywhere-opensource-src-4.8.5/mkspecs/features/win32/windows.prf 2013-06-09 11:53:45.710773593 -0500 +@@ -6,7 +6,7 @@ contains(TEMPLATE, ".*app"){ + + qt:for(entryLib, $$list($$unique(QMAKE_LIBS_QT_ENTRY))) { + isEqual(entryLib, -lqtmain): { +- CONFIG(debug, debug|release): QMAKE_LIBS += $${entryLib}$${QT_LIBINFIX}d ++ CONFIG(debug, debug|release): QMAKE_LIBS += $${entryLib}d$${QT_LIBINFIX} + else: QMAKE_LIBS += $${entryLib}$${QT_LIBINFIX} + } else { + QMAKE_LIBS += $${entryLib} diff --git a/SOURCES/qt-everywhere-opensource-src-4.8.5-QTBUG-21900.patch b/SOURCES/qt-everywhere-opensource-src-4.8.5-QTBUG-21900.patch new file mode 100644 index 0000000..018872f --- /dev/null +++ b/SOURCES/qt-everywhere-opensource-src-4.8.5-QTBUG-21900.patch @@ -0,0 +1,84 @@ +diff -up qt-everywhere-opensource-src-4.8.5/src/gui/kernel/qapplication_x11.cpp.QTBUG-21900 qt-everywhere-opensource-src-4.8.5/src/gui/kernel/qapplication_x11.cpp +--- qt-everywhere-opensource-src-4.8.5/src/gui/kernel/qapplication_x11.cpp.QTBUG-21900 2013-05-30 16:18:05.000000000 -0500 ++++ qt-everywhere-opensource-src-4.8.5/src/gui/kernel/qapplication_x11.cpp 2013-06-09 11:53:45.891771748 -0500 +@@ -818,6 +818,27 @@ static Bool qt_sync_request_scanner(Disp + #endif + #endif // QT_NO_XSYNC + ++struct qt_configure_event_data ++{ ++ WId window; ++ WId parent; ++}; ++ ++static Bool qt_configure_event_scanner(Display*, XEvent *event, XPointer arg) ++{ ++ qt_configure_event_data *data = ++ reinterpret_cast(arg); ++ if (event->type == ConfigureNotify && ++ event->xconfigure.window == data->window) { ++ return true; ++ } else if (event->type == ReparentNotify && ++ event->xreparent.window == data->window) { ++ data->parent = event->xreparent.parent; ++ } ++ ++ return false; ++} ++ + static void qt_x11_create_intern_atoms() + { + const char *names[QX11Data::NAtoms]; +@@ -5302,8 +5323,11 @@ bool QETWidget::translateConfigEvent(con + if (d->extra->compress_events) { + // ConfigureNotify compression for faster opaque resizing + XEvent otherEvent; +- while (XCheckTypedWindowEvent(X11->display, internalWinId(), ConfigureNotify, +- &otherEvent)) { ++ qt_configure_event_data configureData; ++ configureData.window = internalWinId(); ++ configureData.parent = d->topData()->parentWinId; ++ while (XCheckIfEvent(X11->display, &otherEvent, ++ &qt_configure_event_scanner, (XPointer)&configureData)) { + if (qt_x11EventFilter(&otherEvent)) + continue; + +@@ -5316,13 +5340,19 @@ bool QETWidget::translateConfigEvent(con + newSize.setWidth(otherEvent.xconfigure.width); + newSize.setHeight(otherEvent.xconfigure.height); + ++ trust = isVisible() ++ && (configureData.parent == XNone || ++ configureData.parent == QX11Info::appRootWindow()); ++ + if (otherEvent.xconfigure.send_event || trust) { + newCPos.rx() = otherEvent.xconfigure.x + + otherEvent.xconfigure.border_width; + newCPos.ry() = otherEvent.xconfigure.y + + otherEvent.xconfigure.border_width; + isCPos = true; +- } ++ } else { ++ isCPos = false; ++ } + } + #ifndef QT_NO_XSYNC + qt_sync_request_event_data sync_event; +@@ -5335,9 +5365,14 @@ bool QETWidget::translateConfigEvent(con + } + + if (!isCPos) { +- // we didn't get an updated position of the toplevel. +- // either we haven't moved or there is a bug in the window manager. +- // anyway, let's query the position to be certain. ++ // If the last configure event didn't have a trustable position, ++ // it's necessary to query, see ICCCM 4.24: ++ // ++ // Any real ConfigureNotify event on a top-level window implies ++ // that the window’s position on the root may have changed, even ++ // though the event reports that the window’s position in its ++ // parent is unchanged because the window may have been reparented. ++ + int x, y; + Window child; + XTranslateCoordinates(X11->display, internalWinId(), diff --git a/SOURCES/qt-everywhere-opensource-src-4.8.5-QTBUG-22829.patch b/SOURCES/qt-everywhere-opensource-src-4.8.5-QTBUG-22829.patch new file mode 100644 index 0000000..78b78b0 --- /dev/null +++ b/SOURCES/qt-everywhere-opensource-src-4.8.5-QTBUG-22829.patch @@ -0,0 +1,14 @@ +diff -up qt-everywhere-opensource-src-4.8.5/src/tools/moc/main.cpp.QTBUG-22829 qt-everywhere-opensource-src-4.8.5/src/tools/moc/main.cpp +--- qt-everywhere-opensource-src-4.8.5/src/tools/moc/main.cpp.QTBUG-22829 2013-06-09 17:04:02.762459323 -0500 ++++ qt-everywhere-opensource-src-4.8.5/src/tools/moc/main.cpp 2013-06-09 17:08:20.409680813 -0500 +@@ -188,8 +188,9 @@ int runMoc(int _argc, char **_argv) + pp.macros["Q_MOC_RUN"]; + pp.macros["__cplusplus"]; + +- // Workaround a bug while parsing the boost/type_traits/has_operator.hpp header. See QTBUG-22829 ++ // Workaround a bugs while parsing some boost headers. See QTBUG-22829 + pp.macros["BOOST_TT_HAS_OPERATOR_HPP_INCLUDED"]; ++ pp.macros["BOOST_LEXICAL_CAST_INCLUDED"]; + + QByteArray filename; + QByteArray output; diff --git a/SOURCES/qt-everywhere-opensource-src-4.8.5-QTBUG-30076.patch b/SOURCES/qt-everywhere-opensource-src-4.8.5-QTBUG-30076.patch new file mode 100644 index 0000000..dc0dc52 --- /dev/null +++ b/SOURCES/qt-everywhere-opensource-src-4.8.5-QTBUG-30076.patch @@ -0,0 +1,115 @@ +From 8053ae4030b4342f73a08b9870ccd19189ae401d Mon Sep 17 00:00:00 2001 +From: Mark Brand +Date: Thu, 7 Mar 2013 11:52:52 +0100 +Subject: [PATCH 4/4] postgresql driver: escape backslashes only when server + requires it + +Task-number: QTBUG-30076 + +Change-Id: I408cda941884f01484d0edfa82c91fc19cb8718c +Reviewed-by: Israel Lins Albuquerque +Reviewed-by: Sergey Blagodarin +Reviewed-by: Andy Shaw +Reviewed-by: Andras Mantia +(cherry picked from qtbase/e3c5351d06ce8a12f035cd0627356bc64d8c334a) +Reviewed-by: Mark Brand +--- + src/sql/drivers/psql/qsql_psql.cpp | 38 +++++++++++++++++++++++++++++++++----- + 1 file changed, 33 insertions(+), 5 deletions(-) + +diff --git a/src/sql/drivers/psql/qsql_psql.cpp b/src/sql/drivers/psql/qsql_psql.cpp +index 51ddce0..c2a127c 100644 +--- a/src/sql/drivers/psql/qsql_psql.cpp ++++ b/src/sql/drivers/psql/qsql_psql.cpp +@@ -120,7 +120,16 @@ inline void qPQfreemem(void *buffer) + class QPSQLDriverPrivate + { + public: +- QPSQLDriverPrivate(QPSQLDriver *qq) : q(qq), connection(0), isUtf8(false), pro(QPSQLDriver::Version6), sn(0), pendingNotifyCheck(false) {} ++ QPSQLDriverPrivate(QPSQLDriver *qq) ++ : q(qq), ++ connection(0), ++ isUtf8(false), ++ pro(QPSQLDriver::Version6), ++ sn(0), ++ pendingNotifyCheck(false), ++ hasBackslashEscape(false) ++ { } ++ + QPSQLDriver *q; + PGconn *connection; + bool isUtf8; +@@ -128,6 +137,7 @@ public: + QSocketNotifier *sn; + QStringList seid; + mutable bool pendingNotifyCheck; ++ bool hasBackslashEscape; + + void appendTables(QStringList &tl, QSqlQuery &t, QChar type); + PGresult * exec(const char * stmt) const; +@@ -135,6 +145,7 @@ public: + QPSQLDriver::Protocol getPSQLVersion(); + bool setEncodingUtf8(); + void setDatestyle(); ++ void detectBackslashEscape(); + }; + + void QPSQLDriverPrivate::appendTables(QStringList &tl, QSqlQuery &t, QChar type) +@@ -636,6 +647,23 @@ void QPSQLDriverPrivate::setDatestyle() + PQclear(result); + } + ++void QPSQLDriverPrivate::detectBackslashEscape() ++{ ++ // standard_conforming_strings option introduced in 8.2 ++ // http://www.postgresql.org/docs/8.2/static/runtime-config-compatible.html ++ if (pro < QPSQLDriver::Version82) { ++ hasBackslashEscape = true; ++ } else { ++ hasBackslashEscape = false; ++ PGresult* result = exec(QLatin1String("SELECT '\\\\' x")); ++ int status = PQresultStatus(result); ++ if (status == PGRES_COMMAND_OK || status == PGRES_TUPLES_OK) ++ if (QString::fromLatin1(PQgetvalue(result, 0, 0)) == QLatin1String("\\")) ++ hasBackslashEscape = true; ++ PQclear(result); ++ } ++} ++ + static QPSQLDriver::Protocol qMakePSQLVersion(int vMaj, int vMin) + { + switch (vMaj) { +@@ -742,6 +770,7 @@ QPSQLDriver::QPSQLDriver(PGconn *conn, QObject *parent) + d->connection = conn; + if (conn) { + d->pro = d->getPSQLVersion(); ++ d->detectBackslashEscape(); + setOpen(true); + setOpenError(false); + } +@@ -842,6 +871,7 @@ bool QPSQLDriver::open(const QString & db, + } + + d->pro = d->getPSQLVersion(); ++ d->detectBackslashEscape(); + d->isUtf8 = d->setEncodingUtf8(); + d->setDatestyle(); + +@@ -1228,12 +1258,10 @@ QString QPSQLDriver::formatValue(const QSqlField &field, bool trimStrings) const + } + break; + case QVariant::String: +- { +- // Escape '\' characters + r = QSqlDriver::formatValue(field, trimStrings); +- r.replace(QLatin1String("\\"), QLatin1String("\\\\")); ++ if (d->hasBackslashEscape) ++ r.replace(QLatin1String("\\"), QLatin1String("\\\\")); + break; +- } + case QVariant::Bool: + if (field.value().toBool()) + r = QLatin1String("TRUE"); +-- +1.8.3.1 + diff --git a/SOURCES/qt-everywhere-opensource-src-4.8.5-QTBUG-4862.patch b/SOURCES/qt-everywhere-opensource-src-4.8.5-QTBUG-4862.patch new file mode 100644 index 0000000..ee1d191 --- /dev/null +++ b/SOURCES/qt-everywhere-opensource-src-4.8.5-QTBUG-4862.patch @@ -0,0 +1,29 @@ +diff -up qt-everywhere-opensource-src-4.8.5/src/corelib/io/qfilesystemengine_unix.cpp.QTBUG-4862 qt-everywhere-opensource-src-4.8.5/src/corelib/io/qfilesystemengine_unix.cpp +--- qt-everywhere-opensource-src-4.8.5/src/corelib/io/qfilesystemengine_unix.cpp.QTBUG-4862 2013-06-09 12:02:50.323221694 -0500 ++++ qt-everywhere-opensource-src-4.8.5/src/corelib/io/qfilesystemengine_unix.cpp 2013-06-09 12:38:53.140804742 -0500 +@@ -624,6 +624,25 @@ QString QFileSystemEngine::homePath() + { + QString home = QFile::decodeName(qgetenv("HOME")); + if (home.isEmpty()) ++ { ++#if !defined(QT_NO_THREAD) && defined(_POSIX_THREAD_SAFE_FUNCTIONS) && !defined(Q_OS_OPENBSD) ++ int size_max = sysconf(_SC_GETPW_R_SIZE_MAX); ++ if (size_max == -1) ++ size_max = 1024; ++ QVarLengthArray buf(size_max); ++#endif ++ struct passwd *pw = 0; ++ uid_t user_id = getuid(); ++ pw = getpwuid(user_id); ++#if !defined(QT_NO_THREAD) && defined(_POSIX_THREAD_SAFE_FUNCTIONS) && !defined(Q_OS_OPENBSD) ++ struct passwd entry; ++ getpwuid_r(user_id, &entry, buf.data(), buf.size(), &pw); ++#else ++ pw = getpwuid(user_id); ++#endif ++ home = QFile::decodeName(QByteArray(pw->pw_dir)); ++ } ++ if (home.isEmpty()) + home = rootPath(); + return QDir::cleanPath(home); + } diff --git a/SOURCES/qt-everywhere-opensource-src-4.8.5-qgtkstyle_disable_gtk_theme_check.patch b/SOURCES/qt-everywhere-opensource-src-4.8.5-qgtkstyle_disable_gtk_theme_check.patch new file mode 100644 index 0000000..9a9f773 --- /dev/null +++ b/SOURCES/qt-everywhere-opensource-src-4.8.5-qgtkstyle_disable_gtk_theme_check.patch @@ -0,0 +1,22 @@ +diff -up qt-everywhere-opensource-src-4.8.5/src/gui/styles/qgtkstyle_p.cpp.qgtkstyle_disable_gtk_theme_check qt-everywhere-opensource-src-4.8.5/src/gui/styles/qgtkstyle_p.cpp +--- qt-everywhere-opensource-src-4.8.5/src/gui/styles/qgtkstyle_p.cpp.qgtkstyle_disable_gtk_theme_check 2013-06-09 16:28:22.938840346 -0500 ++++ qt-everywhere-opensource-src-4.8.5/src/gui/styles/qgtkstyle_p.cpp 2013-06-09 17:03:01.781125479 -0500 +@@ -503,18 +503,6 @@ void QGtkStylePrivate::initGtkWidgets() + return; + } + +- static QString themeName; +- if (!gtkWidgetMap()->contains("GtkWindow") && themeName.isEmpty()) { +- themeName = getThemeName(); +- +- if (themeName == QLS("Qt") || themeName == QLS("Qt4")) { +- // Due to namespace conflicts with Qt3 and obvious recursion with Qt4, +- // we cannot support the GTK_Qt Gtk engine +- qWarning("QGtkStyle cannot be used together with the GTK_Qt engine."); +- return; +- } +- } +- + if (QGtkStylePrivate::gtk_init) { + // Gtk will set the Qt error handler so we have to reset it afterwards + x11ErrorHandler qt_x_errhandler = XSetErrorHandler(0); diff --git a/SOURCES/qt-everywhere-opensource-src-4.8.5-qt_plugin_path.patch b/SOURCES/qt-everywhere-opensource-src-4.8.5-qt_plugin_path.patch new file mode 100644 index 0000000..6a87783 --- /dev/null +++ b/SOURCES/qt-everywhere-opensource-src-4.8.5-qt_plugin_path.patch @@ -0,0 +1,19 @@ +diff -up qt-everywhere-opensource-src-4.8.5/src/corelib/kernel/qcoreapplication.cpp.qt_plugin_path qt-everywhere-opensource-src-4.8.5/src/corelib/kernel/qcoreapplication.cpp +--- qt-everywhere-opensource-src-4.8.5/src/corelib/kernel/qcoreapplication.cpp.qt_plugin_path 2013-06-07 00:16:52.000000000 -0500 ++++ qt-everywhere-opensource-src-4.8.5/src/corelib/kernel/qcoreapplication.cpp 2013-06-21 07:14:10.045039936 -0500 +@@ -2511,6 +2511,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/SOURCES/qt-everywhere-opensource-src-4.8.5-tds_no_strict_aliasing.patch b/SOURCES/qt-everywhere-opensource-src-4.8.5-tds_no_strict_aliasing.patch new file mode 100644 index 0000000..2deeb51 --- /dev/null +++ b/SOURCES/qt-everywhere-opensource-src-4.8.5-tds_no_strict_aliasing.patch @@ -0,0 +1,12 @@ +diff -up qt-everywhere-opensource-src-4.8.5/src/sql/drivers/tds/qsql_tds.pri.tds_no_strict_aliasing qt-everywhere-opensource-src-4.8.5/src/sql/drivers/tds/qsql_tds.pri +--- qt-everywhere-opensource-src-4.8.5/src/sql/drivers/tds/qsql_tds.pri.tds_no_strict_aliasing 2013-06-09 11:57:49.198291245 -0500 ++++ qt-everywhere-opensource-src-4.8.5/src/sql/drivers/tds/qsql_tds.pri 2013-06-09 12:01:24.120100371 -0500 +@@ -1,6 +1,8 @@ + HEADERS += $$PWD/qsql_tds.h + SOURCES += $$PWD/qsql_tds.cpp + ++*-g++*: QMAKE_CXXFLAGS += -fno-strict-aliasing ++ + unix|win32-g++*: { + LIBS += $$QT_LFLAGS_TDS + !contains(LIBS, .*sybdb.*):LIBS += -lsybdb diff --git a/SOURCES/qt-everywhere-opensource-src-4.8.5-uic_multilib.patch b/SOURCES/qt-everywhere-opensource-src-4.8.5-uic_multilib.patch new file mode 100644 index 0000000..d04d1be --- /dev/null +++ b/SOURCES/qt-everywhere-opensource-src-4.8.5-uic_multilib.patch @@ -0,0 +1,28 @@ +diff -up qt-everywhere-opensource-src-4.8.5/src/tools/moc/moc.cpp.uic_multilib qt-everywhere-opensource-src-4.8.5/src/tools/moc/moc.cpp +diff -up qt-everywhere-opensource-src-4.8.5/src/tools/uic3/embed.cpp.uic_multilib qt-everywhere-opensource-src-4.8.5/src/tools/uic3/embed.cpp +--- qt-everywhere-opensource-src-4.8.5/src/tools/uic3/embed.cpp.uic_multilib 2013-05-30 16:18:04.000000000 -0500 ++++ qt-everywhere-opensource-src-4.8.5/src/tools/uic3/embed.cpp 2013-06-09 11:50:25.597813974 -0500 +@@ -152,8 +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 << "** by: The User Interface Compiler for Qt version " << QT_VERSION_STR << "\n"; ++ out << "** Created: 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"; + out << "****************************************************************************/\n"; +diff -up qt-everywhere-opensource-src-4.8.5/src/tools/uic3/uic.cpp.uic_multilib qt-everywhere-opensource-src-4.8.5/src/tools/uic3/uic.cpp +--- qt-everywhere-opensource-src-4.8.5/src/tools/uic3/uic.cpp.uic_multilib 2013-05-30 16:18:04.000000000 -0500 ++++ qt-everywhere-opensource-src-4.8.5/src/tools/uic3/uic.cpp 2013-06-09 11:51:28.310174526 -0500 +@@ -146,8 +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 << "** " << QString::fromLatin1("by: Qt User Interface Compiler version %1\n").arg(QLatin1String(QT_VERSION_STR)); ++ out << "** Created by: " << QString::fromLatin1("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"; + out << "********************************************************************************/\n\n"; +diff -up qt-everywhere-opensource-src-4.8.5/src/tools/uic/uic.cpp.uic_multilib qt-everywhere-opensource-src-4.8.5/src/tools/uic/uic.cpp diff --git a/SOURCES/qt-gcc-warning-overflow.patch b/SOURCES/qt-gcc-warning-overflow.patch new file mode 100644 index 0000000..fe3fc70 --- /dev/null +++ b/SOURCES/qt-gcc-warning-overflow.patch @@ -0,0 +1,13 @@ +diff -up qt-everywhere-opensource-src-4.8.5/src/corelib/tools/qstring.h.than qt-everywhere-opensource-src-4.8.5/src/corelib/tools/qstring.h +diff -up qt-everywhere-opensource-src-4.8.5/src/sql/kernel/qsqldriver.cpp.than qt-everywhere-opensource-src-4.8.5/src/sql/kernel/qsqldriver.cpp +--- qt-everywhere-opensource-src-4.8.5/src/sql/kernel/qsqldriver.cpp.than 2013-11-21 10:51:56.200161500 +0100 ++++ qt-everywhere-opensource-src-4.8.5/src/sql/kernel/qsqldriver.cpp 2013-11-21 12:51:32.594269183 +0100 +@@ -530,7 +530,7 @@ QString QSqlDriver::sqlStatement(Stateme + s.clear(); + } else { + vals.chop(2); // remove trailing comma +- s[s.length() - 2] = QLatin1Char(')'); ++ s[uint(s.length()) - 2] = QLatin1Char(')'); + s.append(QLatin1String("VALUES (")).append(vals).append(QLatin1Char(')')); + } + break; } diff --git a/SOURCES/qt-x11-opensource-src-4.5.0-fix-qatomic-inline-asm.patch b/SOURCES/qt-x11-opensource-src-4.5.0-fix-qatomic-inline-asm.patch new file mode 100644 index 0000000..e5ab4ba --- /dev/null +++ b/SOURCES/qt-x11-opensource-src-4.5.0-fix-qatomic-inline-asm.patch @@ -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/SOURCES/qt-x11-opensource-src-4.5.1-enable_ft_lcdfilter.patch b/SOURCES/qt-x11-opensource-src-4.5.1-enable_ft_lcdfilter.patch new file mode 100644 index 0000000..4ab3ea4 --- /dev/null +++ b/SOURCES/qt-x11-opensource-src-4.5.1-enable_ft_lcdfilter.patch @@ -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 + diff --git a/SOURCES/qtconfig.desktop b/SOURCES/qtconfig.desktop new file mode 100644 index 0000000..efc4d4a --- /dev/null +++ b/SOURCES/qtconfig.desktop @@ -0,0 +1,8 @@ +[Desktop Entry] +Name=Qt4 Config +Comment=Configure Qt4 behavior, styles, fonts +Exec=qtconfig-qt4 +Icon=qt4-logo +Terminal=false +Type=Application +Categories=Qt;Settings; diff --git a/SOURCES/qtdemo.desktop b/SOURCES/qtdemo.desktop new file mode 100644 index 0000000..9bcbf1b --- /dev/null +++ b/SOURCES/qtdemo.desktop @@ -0,0 +1,8 @@ +[Desktop Entry] +Name=Qt4 Demo +Comment=Show Qt4 demos and programming examples +Exec=qtdemo-qt4 +Icon=qt4-logo +Terminal=false +Type=Application +Categories=Qt;Development; diff --git a/SPECS/qt.spec b/SPECS/qt.spec new file mode 100644 index 0000000..253e2b7 --- /dev/null +++ b/SPECS/qt.spec @@ -0,0 +1,2197 @@ +# Fedora Review: http://bugzilla.redhat.com/188180 + +# configure options +# -no-pch disables precompiled headers, make ccache-friendly +%define no_pch -no-pch + +# See http://bugzilla.redhat.com/223663 +%define multilib_archs x86_64 %{ix86} ppc64 ppc s390x s390 sparc64 sparcv9 aarch64 ppc64le +%define multilib_basearchs x86_64 ppc64 s390x sparc64 aarch64 ppc64le + +%if 0%{?fedora} > 16 || 0%{?rhel} > 6 +# use external qt_settings pkg +%define qt_settings 1 +%endif + +%if 0%{?_rpmconfigdir:1} +%define rpm_macros_dir %{_rpmconfigdir}/macros.d +%else +%define rpm_macros_dir %{_sysconfdir}/rpm +%endif + +# trim changelog included in binary rpms +%global _changelog_trimtime %(date +%s -d "1 year ago") + +Summary: Qt toolkit +Name: qt +Epoch: 1 +Version: 4.8.5 +Release: 10%{?dist} + +# See LGPL_EXCEPTIONS.txt, LICENSE.GPL3, respectively, for exception details +License: (LGPLv2 with exceptions or GPLv3 with exceptions) and ASL 2.0 and BSD and FTL and MIT +Group: System Environment/Libraries +Url: http://qt-project.org/ +%if 0%{?pre:1} +Source0: http://download.qt-project.org/snapshots/qt/4.8/%{version}-%{pre}/qt-everywhere-opensource-src-%{version}-%{pre}.tar.gz +%else +Source0: http://download.qt-project.org/official_releases/qt/4.8/%{version}/qt-everywhere-opensource-src-%{version}.tar.gz +%endif +BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n) + +Obsoletes: qt4 < %{version}-%{release} +Provides: qt4 = %{version}-%{release} +%{?_isa:Provides: qt4%{?_isa} = %{version}-%{release}} + +# default Qt config file +Source4: Trolltech.conf + +# header file to workaround multilib issue +Source5: qconfig-multilib.h + +# set default QMAKE_CFLAGS_RELEASE +Patch2: qt-everywhere-opensource-src-4.8.0-tp-multilib-optflags.patch + +# get rid of timestamp which causes multilib problem +Patch4: qt-everywhere-opensource-src-4.8.5-uic_multilib.patch + +# enable ft lcdfilter +Patch15: qt-x11-opensource-src-4.5.1-enable_ft_lcdfilter.patch + +# may be upstreamable, not sure yet +# workaround for gdal/grass crashers wrt glib_eventloop null deref's +Patch23: qt-everywhere-opensource-src-4.6.3-glib_eventloop_nullcheck.patch + +# hack out largely useless (to users) warnings about qdbusconnection +# (often in kde apps), keep an eye on https://git.reviewboard.kde.org/r/103699/ +Patch25: qt-everywhere-opensource-src-4.8.3-qdbusconnection_no_debug.patch + +# lrelease-qt4 tries to run qmake not qmake-qt4 (http://bugzilla.redhat.com/820767) +Patch26: qt-everywhere-opensource-src-4.8.1-linguist_qmake-qt4.patch + +# enable debuginfo in libQt3Support +Patch27: qt-everywhere-opensource-src-4.8.1-qt3support_debuginfo.patch + +# kde4/multilib QT_PLUGIN_PATH +Patch28: qt-everywhere-opensource-src-4.8.5-qt_plugin_path.patch + +## upstreamable bits +# add support for pkgconfig's Requires.private to qmake +Patch50: qt-everywhere-opensource-src-4.8.4-qmake_pkgconfig_requires_private.patch + +# fix invalid inline assembly in qatomic_{i386,x86_64}.h (de)ref implementations +Patch53: qt-x11-opensource-src-4.5.0-fix-qatomic-inline-asm.patch + +# fix invalid assumptions about mysql_config --libs +# http://bugzilla.redhat.com/440673 +Patch54: qt-everywhere-opensource-src-4.7.0-beta2-mysql_config.patch + +# http://bugs.kde.org/show_bug.cgi?id=180051#c22 +Patch55: qt-everywhere-opensource-src-4.6.2-cups.patch + +# Fails to create debug build of Qt projects on mingw (rhbz#653674) +Patch64: qt-everywhere-opensource-src-4.8.5-QTBUG-14467.patch + +# fix QTreeView crash triggered by KPackageKit (patch by David Faure) +Patch65: qt-everywhere-opensource-src-4.8.0-tp-qtreeview-kpackagekit-crash.patch + +# fix the outdated standalone copy of JavaScriptCore +Patch67: qt-everywhere-opensource-src-4.8.0-beta1-s390.patch + +# https://bugs.webkit.org/show_bug.cgi?id=63941 +# -Wall + -Werror = fail +Patch68: qt-everywhere-opensource-src-4.8.3-no_Werror.patch + +# revert qlist.h commit that seems to induce crashes in qDeleteAll to disable +# set to -qt-sql- to enable *in* qt library +%define mysql -plugin-sql-mysql +%define odbc -plugin-sql-odbc +%define psql -plugin-sql-psql +%define sqlite -plugin-sql-sqlite +%define phonon -phonon +%define phonon_backend -phonon-backend +%define dbus -dbus-linked +%define graphicssystem -graphicssystem raster +%define gtkstyle -gtkstyle +%if 0%{?fedora} +# FIXME/TODO: use system webkit for assistant, examples/webkit, demos/browser +%define webkit -webkit +%define ibase -plugin-sql-ibase +%define tds -plugin-sql-tds +%endif +%if 0%{?rhel} +%define no_javascript_jit -no-javascript-jit +%define ibase -no-sql-ibase +%define tds -no-sql-tds +%endif +%ifarch aarch64 +%define no_javascript_jit -no-javascript-jit +%endif + +# See http://bugzilla.redhat.com/196901 +%define _qt4 %{name} +%define _qt4_prefix %{_libdir}/qt4 +%define _qt4_bindir %{_qt4_prefix}/bin +# _qt4_datadir is not multilib clean, and hacks to workaround that breaks stuff. +#define _qt4_datadir %{_datadir}/qt4 +%define _qt4_datadir %{_qt4_prefix} +%define _qt4_demosdir %{_qt4_prefix}/demos +%define _qt4_docdir %{_docdir}/qt4 +%define _qt4_examplesdir %{_qt4_prefix}/examples +%define _qt4_headerdir %{_includedir} +%define _qt4_importdir %{_qt4_prefix}/imports +%define _qt4_libdir %{_libdir} +%define _qt4_plugindir %{_qt4_prefix}/plugins +%define _qt4_sysconfdir %{_sysconfdir} +%define _qt4_translationdir %{_datadir}/qt4/translations + +BuildRequires: cups-devel +BuildRequires: desktop-file-utils +BuildRequires: findutils +BuildRequires: libjpeg-devel +BuildRequires: libmng-devel +BuildRequires: libtiff-devel +BuildRequires: pkgconfig +BuildRequires: pkgconfig(alsa) +BuildRequires: pkgconfig(dbus-1) +BuildRequires: pkgconfig(fontconfig) +BuildRequires: pkgconfig(glib-2.0) +BuildRequires: pkgconfig(icu-i18n) +BuildRequires: pkgconfig(NetworkManager) +BuildRequires: pkgconfig(openssl) +BuildRequires: pkgconfig(libpng) +BuildRequires: pkgconfig(libpulse) +BuildRequires: pkgconfig(xtst) +BuildRequires: pkgconfig(zlib) +BuildRequires: rsync + +%define gl_deps pkgconfig(gl) pkgconfig(glu) +%define x_deps pkgconfig(ice) pkgconfig(sm) pkgconfig(xcursor) pkgconfig(xext) pkgconfig(xfixes) pkgconfig(xft) pkgconfig(xi) pkgconfig(xinerama) pkgconfig(xrandr) pkgconfig(xrender) pkgconfig(xt) pkgconfig(xv) pkgconfig(x11) pkgconfig(xproto) +BuildRequires: %{gl_deps} +BuildRequires: %{x_deps} + +%if "%{?ibase}" != "-no-sql-ibase" +BuildRequires: firebird-devel +%endif + +%if "%{?mysql}" != "-no-sql-mysql" +BuildRequires: mysql-devel >= 4.0 +%endif + +%if "%{?phonon_backend}" == "-phonon-backend" +BuildRequires: pkgconfig(gstreamer-0.10) +BuildRequires: pkgconfig(gstreamer-plugins-base-0.10) +%endif + +%if "%{?gtkstyle}" == "-gtkstyle" +BuildRequires: pkgconfig(gtk+-2.0) +%endif + +%if "%{?psql}" != "-no-sql-psql" +BuildRequires: postgresql-devel +%endif + +%if "%{?odbc}" != "-no-sql-odbc" +BuildRequires: unixODBC-devel +%endif + +%if "%{?sqlite}" != "-no-sql-sqlite" +%define _system_sqlite -system-sqlite +BuildRequires: pkgconfig(sqlite3) +%endif + +Provides: qt4-sqlite = %{version}-%{release} +%{?_isa:Provides: qt4-sqlite%{?_isa} = %{version}-%{release}} +Obsoletes: qt-sqlite < 1:4.7.1-16 +Provides: qt-sqlite = %{?epoch:%{epoch}:}%{version}-%{release} +%{?_isa:Provides: qt-sqlite%{?_isa} = %{?epoch:%{epoch}:}%{version}-%{release}} + +%if "%{?tds}" != "-no-sql-tds" +BuildRequires: freetds-devel +%endif + +Obsoletes: qgtkstyle < 0.1 +Provides: qgtkstyle = 0.1-1 +Requires: ca-certificates +%if 0%{?qt_settings} +Requires: qt-settings +%endif + +%description +Qt is a software toolkit for developing applications. + +This package contains base tools, like string, xml, and network +handling. + +%package assistant +Summary: Documentation browser for Qt 4 +Group: Documentation +Requires: %{name}-sqlite%{?_isa} = %{?epoch:%{epoch}:}%{version}-%{release} +Provides: qt4-assistant = %{version}-%{release} +Requires: %{name}-x11%{?_isa} = %{?epoch:%{epoch}:}%{version}-%{release} +%description assistant +%{summary}. + +%package config +Summary: Graphical configuration tool for programs using Qt 4 +Group: User Interface/Desktops +# -config introduced in 4.7.1-10 , for upgrade path +# seems to tickle a pk bug, https://bugzilla.redhat.com/674326 +#Obsoletes: %{name}-x11 < 1:4.7.1-10 +Obsoletes: qt4-config < 4.5.0 +Provides: qt4-config = %{version}-%{release} +Requires: %{name}-x11%{?_isa} = %{?epoch:%{epoch}:}%{version}-%{release} +%description config +%{summary}. + +%define demos 1 +%package demos +Summary: Demonstration applications for %{name} +Group: Documentation +Requires: %{name} = %{?epoch:%{epoch}:}%{version}-%{release} +Requires: %{name}-doc +%description demos +%{summary}. + +%define docs 1 +%package doc +Summary: API documentation for %{name} +Group: Documentation +Requires: %{name} = %{?epoch:%{epoch}:}%{version}-%{release} +Requires: %{name}-assistant +Obsoletes: qt4-doc < %{version}-%{release} +Provides: qt4-doc = %{version}-%{release} +# help workaround yum bug http://bugzilla.redhat.com/502401 +Obsoletes: qt-doc < 1:4.5.1-4 +BuildArch: noarch +%description doc +%{summary}. Includes: +Qt Assistant + +%package designer-plugin-webkit +Summary: Qt designer plugin for WebKit +Group: Development/Libraries +Requires: %{name}-x11%{?_isa} = %{?epoch:%{epoch}:}%{version}-%{release} +%description designer-plugin-webkit +%{summary}. + +%package devel +Summary: Development files for the Qt toolkit +Group: Development/Libraries +Requires: %{name}%{?_isa} = %{?epoch:%{epoch}:}%{version}-%{release} +Requires: %{name}-x11%{?_isa} +Requires: %{name}-sqlite%{?_isa} = %{?epoch:%{epoch}:}%{version}-%{release} +Requires: %{gl_deps} +Requires: %{x_deps} +Requires: pkgconfig +%if 0%{?phonon:1} +Provides: qt4-phonon-devel = %{version}-%{release} +%endif +Obsoletes: qt4-designer < %{version}-%{release} +Provides: qt4-designer = %{version}-%{release} +# as long as libQtUiTools.a is included +Provides: %{name}-static = %{version}-%{release} +Obsoletes: qt4-devel < %{version}-%{release} +Provides: qt4-devel = %{version}-%{release} +%{?_isa:Provides: qt4-devel%{?_isa} = %{version}-%{release}} +Provides: qt4-static = %{version}-%{release} + +%description devel +This package contains the files necessary to develop +applications using the Qt toolkit. Includes: +Qt Linguist + +# make a devel private subpkg or not? +%define private 1 +%package devel-private +Summary: Private headers for Qt toolkit +Group: Development/Libraries +Provides: qt4-devel-private = %{version}-%{release} +Requires: %{name}-devel = %{?epoch:%{epoch}:}%{version}-%{release} +BuildArch: noarch +%description devel-private +%{summary}. + +%define examples 1 +%package examples +Summary: Programming examples for %{name} +Group: Documentation +Requires: %{name}%{?_isa} = %{?epoch:%{epoch}:}%{version}-%{release} +%description examples +%{summary}. + +%define qvfb 1 +%package qvfb +Summary: Virtual frame buffer for Qt for Embedded Linux +Group: Applications/Emulators +Requires: %{name}%{?_isa} = %{?epoch:%{epoch}:}%{version}-%{release} +%description qvfb +%{summary}. + +%package ibase +Summary: IBase driver for Qt's SQL classes +Group: System Environment/Libraries +Requires: %{name}%{?_isa} = %{?epoch:%{epoch}:}%{version}-%{release} +Provides: qt4-ibase = %{version}-%{release} +%{?_isa:Provides: qt4-ibase%{?_isa} = %{version}-%{release}} +%description ibase +%{summary}. + +%package mysql +Summary: MySQL driver for Qt's SQL classes +Group: System Environment/Libraries +Requires: %{name}%{?_isa} = %{?epoch:%{epoch}:}%{version}-%{release} +Obsoletes: qt4-MySQL < %{version}-%{release} +Provides: qt4-MySQL = %{version}-%{release} +Obsoletes: qt4-mysql < %{version}-%{release} +Provides: qt4-mysql = %{version}-%{release} +%{?_isa:Provides: qt4-mysql%{?_isa} = %{version}-%{release}} +%description mysql +%{summary}. + +%package odbc +Summary: ODBC driver for Qt's SQL classes +Group: System Environment/Libraries +Requires: %{name}%{?_isa} = %{?epoch:%{epoch}:}%{version}-%{release} +Obsoletes: qt4-ODBC < %{version}-%{release} +Provides: qt4-ODBC = %{version}-%{release} +Obsoletes: qt4-odbc < %{version}-%{release} +Provides: qt4-odbc = %{version}-%{release} +%{?_isa:Provides: qt4-odbc%{?_isa} = %{version}-%{release}} +%description odbc +%{summary}. + +%package postgresql +Summary: PostgreSQL driver for Qt's SQL classes +Group: System Environment/Libraries +Requires: %{name}%{?_isa} = %{?epoch:%{epoch}:}%{version}-%{release} +Obsoletes: qt4-PostgreSQL < %{version}-%{release} +Provides: qt4-PostgreSQL = %{version}-%{release} +Obsoletes: qt4-postgresql < %{version}-%{release} +Provides: qt4-postgresql = %{version}-%{release} +%{?_isa:Provides: qt4-postgresql%{?_isa} = %{version}-%{release}} +%description postgresql +%{summary}. + +%package tds +Summary: TDS driver for Qt's SQL classes +Group: System Environment/Libraries +Requires: %{name}%{?_isa} = %{?epoch:%{epoch}:}%{version}-%{release} +Provides: qt4-tds = %{version}-%{release} +%{?_isa:Provides: qt4-tds%{?_isa} = %{version}-%{release}} +%description tds +%{summary}. + +%package x11 +Summary: Qt GUI-related libraries +Group: System Environment/Libraries +# include Obsoletes here to be safe(r) bootstrap-wise with phonon-4.5.0 +# that will Provides: it -- Rex +Obsoletes: qt-designer-plugin-phonon < 1:4.7.2-6 +Requires: %{name}%{?_isa} = %{?epoch:%{epoch}:}%{version}-%{release} +Obsoletes: qt4-x11 < %{version}-%{release} +Provides: qt4-x11 = %{version}-%{release} +%{?_isa:Provides: qt4-x11%{?_isa} = %{version}-%{release}} +%description x11 +Qt libraries used for drawing widgets and OpenGL items. + +%package qdbusviewer +Summary: D-Bus debugger and viewer +# When split out from qt-x11 +Obsoletes: qt-x11 < 1:4.8.5-2 +Requires: %{name}-x11%{?_isa} = %{?epoch:%{epoch}:}%{version}-%{release} +%description qdbusviewer +QDbusviewer can be used to inspect D-Bus objects of running programs +and invoke methods on those objects. + + +%prep +%setup -q -n qt-everywhere-opensource-src-%{version} + +%patch2 -p1 -b .multilib-optflags +# drop backup file(s), else they get installed too, http://bugzilla.redhat.com/639463 +rm -fv mkspecs/linux-g++*/qmake.conf.multilib-optflags +%patch4 -p1 -b .uic_multilib +%patch15 -p1 -b .enable_ft_lcdfilter +%patch23 -p1 -b .glib_eventloop_nullcheck +%patch25 -p1 -b .qdbusconnection_no_debug +%patch26 -p1 -b .linguist_qtmake-qt4 +%patch27 -p1 -b .qt3support_debuginfo +%patch28 -p1 -b .qt_plugin_path +%patch50 -p1 -b .qmake_pkgconfig_requires_private +## TODO: still worth carrying? if so, upstream it. +%patch53 -p1 -b .qatomic-inline-asm +## TODO: upstream me +%patch54 -p1 -b .mysql_config +%patch55 -p1 -b .cups-1 +%patch64 -p1 -b .QTBUG-14467 +%patch65 -p1 -b .qtreeview-kpackagekit-crash +%patch67 -p1 -b .s390 +%patch68 -p1 -b .no_Werror +%patch69 -p1 -b .QTBUG-22037 +%patch71 -p1 -b .QTBUG-21900 +%patch74 -p1 -b .tds_no_strict_aliasing +%patch76 -p1 -b .s390-atomic +%patch77 -p1 -b .icu_no_debug +%patch80 -p1 -b .ld.gold +%patch81 -p1 -b .assistant-crash +%patch82 -p1 -b .QTBUG-4862 +%patch83 -p1 -b .poll +%patch84 -p1 -b .aarch64 +%patch85 -p1 -b .aarch64_fix_atomic_set.patch +%patch86 -p1 -b .gcc-overflow-warning +%patch87 -p1 -b .ppc64le + +# upstream patches +%patch100 -p1 -b .QTgaHandler +%patch101 -p1 -R -b .QTBUG-30076 +%patch102 -p1 -b .qgtkstyle_disable_gtk_theme_check +%patch113 -p1 -b .QTBUG-22829 + +# upstream git + +# security fixes + +# drop -fexceptions from $RPM_OPT_FLAGS +RPM_OPT_FLAGS=`echo $RPM_OPT_FLAGS | sed 's|-fexceptions||g'` + +%define platform linux-g++ + +# some 64bit platforms assume -64 suffix, https://bugzilla.redhat.com/569542 +%if "%{?__isa_bits}" == "64" +%define platform linux-g++-64 +%endif + +# https://bugzilla.redhat.com/478481 +%ifarch x86_64 +%define platform linux-g++ +%endif + +%ifarch aarch64 +# aarch64 gcc does not support -m64 +%define platform linux-g++-aarch64 +%endif + +sed -i -e "s|-O2|$RPM_OPT_FLAGS|g" \ + mkspecs/%{platform}/qmake.conf + +sed -i -e "s|^\(QMAKE_LFLAGS_RELEASE.*\)|\1 $RPM_LD_FLAGS|" \ + mkspecs/common/g++-unix.conf + +# undefine QMAKE_STRIP, so we get useful -debuginfo pkgs +sed -i -e "s|^QMAKE_STRIP.*=.*|QMAKE_STRIP =|" \ + mkspecs/common/linux.conf + +# set correct lib path +if [ "%{_lib}" == "lib64" ] ; then + sed -i -e "s,/usr/lib /lib,/usr/%{_lib} /%{_lib},g" config.tests/{unix,x11}/*.test + sed -i -e "s,/lib /usr/lib,/%{_lib} /usr/%{_lib},g" config.tests/{unix,x11}/*.test +fi + +# let makefile create missing .qm files, the .qm files should be included in qt upstream +for f in translations/*.ts ; do + touch ${f%.ts}.qm +done + + +%build + +# build shared, threaded (default) libraries +./configure -v \ + -confirm-license \ + -opensource \ + -optimized-qmake \ + -prefix %{_qt4_prefix} \ + -bindir %{_qt4_bindir} \ + -datadir %{_qt4_datadir} \ + -demosdir %{_qt4_demosdir} \ + -docdir %{_qt4_docdir} \ + -examplesdir %{_qt4_examplesdir} \ + -headerdir %{_qt4_headerdir} \ + -importdir %{_qt4_importdir} \ + -libdir %{_qt4_libdir} \ + -plugindir %{_qt4_plugindir} \ + -sysconfdir %{_qt4_sysconfdir} \ + -translationdir %{_qt4_translationdir} \ + -platform %{platform} \ + -release \ + -shared \ + -cups \ + -fontconfig \ + -largefile \ + -gtkstyle \ + -no-rpath \ + -reduce-relocations \ + -no-separate-debug-info \ + %{?phonon} %{!?phonon:-no-phonon} \ + %{?phonon_backend} \ + %{?no_pch} \ + %{?no_javascript_jit} \ + -sm \ + -stl \ + -system-libmng \ + -system-libpng \ + -system-libjpeg \ + -system-libtiff \ + -system-zlib \ + -xinput \ + -xcursor \ + -xfixes \ + -xinerama \ + -xshape \ + -xrandr \ + -xrender \ + -xkb \ + -glib \ + -icu \ + -openssl-linked \ + -xmlpatterns \ + %{?dbus} %{!?dbus:-no-dbus} \ + %{?graphicssystem} \ + %{?webkit} %{!?webkit:-no-webkit } \ + %{?ibase} \ + %{?mysql} \ + %{?psql} \ + %{?odbc} \ + %{?sqlite} %{?_system_sqlite} \ + %{?tds} \ + %{!?docs:-nomake docs} \ + %{!?demos:-nomake demos} \ + %{!?examples:-nomake examples} + +# create Makefile correctly +qtbuilddir=%{_builddir}/qt-everywhere-opensource-src-%{version} +for d in complexpingpong pingpong ; do + pushd examples/dbus/$d + $qtbuilddir/bin/qmake -spec $qtbuilddir/mkspecs/%{platform}/ + popd +done + +make %{?_smp_mflags} + +# TODO: consider patching tools/tools.pro to enable building this by default +%{?qvfb:make %{?_smp_mflags} -C tools/qvfb} + +# recreate .qm files +LD_LIBRARY_PATH=`pwd`/lib bin/lrelease translations/*.ts + + +%install +rm -rf %{buildroot} + +make install INSTALL_ROOT=%{buildroot} + +install -m 0644 src/corelib/arch/qatomic_aarch64.h %{buildroot}%{_qt4_headerdir}/QtCore/qatomic_aarch64.h + +%if 0%{?qvfb} +make install INSTALL_ROOT=%{buildroot} -C tools/qvfb +%find_lang qvfb --with-qt --without-mo +%else +rm -f %{buildroot}%{_qt4_translationdir}/qvfb*.qm +%endif + +%if 0%{?private} +# install private headers +# using rsync -R as easy way to preserve relative path names +# we're cheating and using %%_prefix (/usr) directly here +rsync -aR \ + include/Qt{Core,Declarative,Gui,Script}/private \ + src/{corelib,declarative,gui,script}/*/*_p.h \ + %{buildroot}%{_prefix}/ +%endif + +# Add desktop files, --vendor=qt4 helps avoid possible conflicts with qt3/qt5 +desktop-file-install \ + --dir=%{buildroot}%{_datadir}/applications \ + --vendor="qt4" \ + %{SOURCE20} %{SOURCE21} %{SOURCE22} %{?dbus:%{SOURCE23}} %{?demos:%{SOURCE24}} %{SOURCE25} + +## pkg-config +# strip extraneous dirs/libraries +# safe ones +glib2_libs=$(pkg-config --libs glib-2.0 gobject-2.0 gthread-2.0) +ssl_libs=$(pkg-config --libs openssl) +for dep in \ + -laudio -ldbus-1 -lfreetype -lfontconfig ${glib2_libs} \ + -ljpeg -lm -lmng -lpng -lpulse -lpulse-mainloop-glib ${ssl_libs} -lsqlite3 -lz \ + -L/usr/X11R6/lib -L/usr/X11R6/%{_lib} -L%{_libdir} ; do + sed -i -e "s|$dep ||g" %{buildroot}%{_qt4_libdir}/lib*.la +# sed -i -e "s|$dep ||g" %{buildroot}%{_qt4_libdir}/pkgconfig/*.pc + sed -i -e "s|$dep ||g" %{buildroot}%{_qt4_libdir}/*.prl +done +# riskier +for dep in -ldl -lphonon -lpthread -lICE -lSM -lX11 -lXcursor -lXext -lXfixes -lXft -lXinerama -lXi -lXrandr -lXrender -lXt ; do + sed -i -e "s|$dep ||g" %{buildroot}%{_qt4_libdir}/lib*.la +# sed -i -e "s|$dep ||g" %{buildroot}%{_qt4_libdir}/pkgconfig/*.pc + sed -i -e "s|$dep ||g" %{buildroot}%{_qt4_libdir}/*.prl +done + +# nuke dangling reference(s) to %buildroot +sed -i -e "/^QMAKE_PRL_BUILD_DIR/d" %{buildroot}%{_qt4_libdir}/*.prl +sed -i -e "s|-L%{_builddir}/qt-everywhere-opensource-src-%{version}%{?pre:-%{pre}}/lib||g" \ + %{buildroot}%{_qt4_libdir}/pkgconfig/*.pc \ + %{buildroot}%{_qt4_libdir}/*.prl + +# nuke QMAKE_PRL_LIBS, seems similar to static linking and .la files (#520323) +# don't nuke, just drop -lphonon (above) +#sed -i -e "s|^QMAKE_PRL_LIBS|#QMAKE_PRL_LIBS|" %{buildroot}%{_qt4_libdir}/*.prl + +# .la files, die, die, die. +rm -f %{buildroot}%{_qt4_libdir}/lib*.la + +%if 0 +#if "%{_qt4_docdir}" != "%{_qt4_prefix}/doc" +# -doc make symbolic link to _qt4_docdir +rm -rf %{buildroot}%{_qt4_prefix}/doc +ln -s ../../share/doc/qt4 %{buildroot}%{_qt4_prefix}/doc +%endif + +# let rpm handle binaries conflicts +mkdir %{buildroot}%{_bindir} +pushd %{buildroot}%{_qt4_bindir} +for i in * ; do + case "${i}" in + assistant|designer|linguist|lrelease|lupdate|moc|qmake|qtconfig|qtdemo|uic) + mv $i ../../../bin/${i}-qt4 + ln -s ../../../bin/${i}-qt4 . + ln -s ../../../bin/${i}-qt4 $i + ;; + *) + mv $i ../../../bin/ + ln -s ../../../bin/$i . + ;; + esac +done +popd + +# _debug targets (see bug #196513) +pushd %{buildroot}%{_qt4_libdir} +for lib in libQt*.so ; do + libbase=`basename $lib .so | sed -e 's/^lib//'` +# ln -s $lib lib${libbase}_debug.so + echo "INPUT(-l${libbase})" > lib${libbase}_debug.so +done +for lib in libQt*.a ; do + libbase=`basename $lib .a | sed -e 's/^lib//' ` +# ln -s $lib lib${libbase}_debug.a + echo "INPUT(-l${libbase})" > lib${libbase}_debug.a +done +popd + +%ifarch %{multilib_archs} +# multilib: qconfig.h + mv %{buildroot}%{_qt4_headerdir}/Qt/qconfig.h %{buildroot}%{_qt4_headerdir}/QtCore/qconfig-%{__isa_bits}.h + install -p -m644 -D %{SOURCE5} %{buildroot}%{_qt4_headerdir}/QtCore/qconfig-multilib.h + ln -sf qconfig-multilib.h %{buildroot}%{_qt4_headerdir}/QtCore/qconfig.h + ln -sf ../QtCore/qconfig.h %{buildroot}%{_qt4_headerdir}/Qt/qconfig.h +%endif + +%if "%{_qt4_libdir}" != "%{_libdir}" + mkdir -p %{buildroot}/etc/ld.so.conf.d + echo "%{_qt4_libdir}" > %{buildroot}/etc/ld.so.conf.d/qt4-%{__isa_bits}.conf +%endif + +%if ! 0%{?qt_settings} +# Trolltech.conf +install -p -m644 -D %{SOURCE4} %{buildroot}%{_qt4_sysconfdir}/Trolltech.conf +%endif + +# qt4-logo (generic) icons +install -p -m644 -D %{SOURCE30} %{buildroot}%{_datadir}/icons/hicolor/128x128/apps/qt4-logo.png +install -p -m644 -D %{SOURCE31} %{buildroot}%{_datadir}/icons/hicolor/48x48/apps/qt4-logo.png + +# assistant icons +install -p -m644 -D tools/assistant/tools/assistant/images/assistant.png %{buildroot}%{_datadir}/icons/hicolor/32x32/apps/assistant.png +install -p -m644 -D tools/assistant/tools/assistant/images/assistant-128.png %{buildroot}%{_datadir}/icons/hicolor/128x128/apps/assistant.png + +# designer icons +install -p -m644 -D tools/designer/src/designer/images/designer.png %{buildroot}%{_datadir}/icons/hicolor/128x128/apps/designer.png + +# linguist icons +for icon in tools/linguist/linguist/images/icons/linguist-*-32.png ; do + size=$(echo $(basename ${icon}) | cut -d- -f2) + install -p -m644 -D ${icon} %{buildroot}%{_datadir}/icons/hicolor/${size}x${size}/apps/linguist.png +done + +# qdbusviewer icons +install -p -m644 -D tools/qdbus/qdbusviewer/images/qdbusviewer.png %{buildroot}%{_datadir}/icons/hicolor/32x32/apps/qdbusviewer.png +install -p -m644 -D tools/qdbus/qdbusviewer/images/qdbusviewer-128.png %{buildroot}%{_datadir}/icons/hicolor/128x128/apps/qdbusviewer.png + +# Qt.pc +cat >%{buildroot}%{_libdir}/pkgconfig/Qt.pc<%{buildroot}%{rpm_macros_dir}/macros.qt4<qt-x11.lang + +%find_lang designer --with-qt --without-mo +%find_lang linguist --with-qt --without-mo +cat designer.lang linguist.lang >qt-devel.lang + + +%clean +rm -rf %{buildroot} + + +%post -p /sbin/ldconfig +%postun -p /sbin/ldconfig + +%files -f qt.lang +%defattr(-,root,root,-) +%doc README LICENSE.GPL3 LICENSE.LGPL LGPL_EXCEPTION.txt +%if "%{_qt4_libdir}" != "%{_libdir}" +/etc/ld.so.conf.d/* +%dir %{_qt4_libdir} +%endif +%dir %{_qt4_prefix} +%if "%{_qt4_bindir}" == "%{_bindir}" +%{_qt4_prefix}/bin +%else +%dir %{_qt4_bindir} +%endif +%if "%{_qt4_datadir}" != "%{_datadir}/qt4" +%dir %{_datadir}/qt4 +%else +%dir %{_qt4_datadir} +%endif +%dir %{_qt4_docdir} +%dir %{_qt4_docdir}/html/ +%dir %{_qt4_docdir}/qch/ +%dir %{_qt4_docdir}/src/ + +%if "%{_qt4_sysconfdir}" != "%{_sysconfdir}" +%dir %{_qt4_sysconfdir} +%endif +%if ! 0%{?qt_settings} +%config(noreplace) %{_qt4_sysconfdir}/Trolltech.conf +%endif +%{_qt4_datadir}/phrasebooks/ +%{_qt4_libdir}/libQtCore.so.4* +%if 0%{?dbus:1} +%if "%{_qt4_bindir}" != "%{_bindir}" +%{_bindir}/qdbus +%endif +%{_qt4_bindir}/qdbus +%{_qt4_libdir}/libQtDBus.so.4* +%endif +%{_qt4_libdir}/libQtNetwork.so.4* +%{_qt4_libdir}/libQtScript.so.4* +%{_qt4_libdir}/libQtSql.so.4* +%{_qt4_libdir}/libQtTest.so.4* +%{_qt4_libdir}/libQtXml.so.4* +%{_qt4_libdir}/libQtXmlPatterns.so.4* +%dir %{_qt4_plugindir} +%dir %{_qt4_plugindir}/crypto/ +%dir %{_qt4_plugindir}/sqldrivers/ +%dir %{_qt4_translationdir}/ +%{_qt4_plugindir}/sqldrivers/libqsqlite* + +%post assistant +touch --no-create %{_datadir}/icons/hicolor ||: + +%posttrans assistant +gtk-update-icon-cache -q %{_datadir}/icons/hicolor 2> /dev/null ||: + +%postun assistant +if [ $1 -eq 0 ] ; then +touch --no-create %{_datadir}/icons/hicolor ||: +gtk-update-icon-cache -q %{_datadir}/icons/hicolor 2> /dev/null ||: +fi + +%files assistant +%defattr(-,root,root,-) +%if "%{_qt4_bindir}" != "%{_bindir}" +%{_bindir}/assistant* +%endif +%{_qt4_bindir}/assistant* +%{_datadir}/applications/*assistant.desktop +%{_datadir}/icons/hicolor/*/apps/assistant* + +%files config +%defattr(-,root,root,-) +%if "%{_qt4_bindir}" != "%{_bindir}" +%{_bindir}/qt*config* +%endif +%{_qt4_bindir}/qt*config* +%{_datadir}/applications/*qtconfig.desktop + +%if 0%{?demos} +%files demos +%defattr(-,root,root,-) +%{_qt4_bindir}/qt*demo* +%if "%{_qt4_bindir}" != "%{_bindir}" +%{_bindir}/qt*demo* +%endif +%{_datadir}/applications/*qtdemo.desktop +%{_qt4_demosdir}/ +%endif + +%if "%{?webkit}" == "-webkit" +%files designer-plugin-webkit +%defattr(-,root,root,-) +%{_qt4_plugindir}/designer/libqwebview.so +%endif + +%post devel +touch --no-create %{_datadir}/icons/hicolor ||: + +%posttrans devel +gtk-update-icon-cache -q %{_datadir}/icons/hicolor 2> /dev/null ||: +update-desktop-database -q &> /dev/null ||: + +%postun devel +if [ $1 -eq 0 ] ; then +touch --no-create %{_datadir}/icons/hicolor ||: +gtk-update-icon-cache -q %{_datadir}/icons/hicolor 2> /dev/null ||: +update-desktop-database -q &> /dev/null ||: +fi + +%files devel -f qt-devel.lang +%defattr(-,root,root,-) +%{rpm_macros_dir}/macros.qt4 +%{_qt4_bindir}/lconvert +%{_qt4_bindir}/lrelease* +%{_qt4_bindir}/lupdate* +%{_qt4_bindir}/moc* +%{_qt4_bindir}/pixeltool* +%{_qt4_bindir}/qdoc3* +%{_qt4_bindir}/qmake* +%{_qt4_bindir}/qmlplugindump +%{_qt4_bindir}/qt3to4 +%{_qt4_bindir}/qttracereplay +%{_qt4_bindir}/rcc* +%{_qt4_bindir}/uic* +%{_qt4_bindir}/qcollectiongenerator +%if 0%{?dbus:1} +%{_qt4_bindir}/qdbuscpp2xml +%{_qt4_bindir}/qdbusxml2cpp +%endif +%{_qt4_bindir}/qhelpconverter +%{_qt4_bindir}/qhelpgenerator +%{_qt4_bindir}/xmlpatterns +%{_qt4_bindir}/xmlpatternsvalidator +%if "%{_qt4_bindir}" != "%{_bindir}" +%{_bindir}/lrelease* +%{_bindir}/lupdate* +%{_bindir}/moc* +%{_bindir}/qmake* +%{_bindir}/uic* +%{_bindir}/designer* +%{_bindir}/linguist* +%{_bindir}/lconvert +%{_bindir}/pixeltool +%{_bindir}/qdoc3 +%{_bindir}/qt3to4 +%{_bindir}/qttracereplay +%{_bindir}/qcollectiongenerator +%if 0%{?dbus:1} +%{_bindir}/qdbuscpp2xml +%{_bindir}/qdbusxml2cpp +%endif +%{_bindir}/qhelpconverter +%{_bindir}/qhelpgenerator +%{_bindir}/qmlplugindump +%{_bindir}/rcc +%{_bindir}/xmlpatterns +%{_bindir}/xmlpatternsvalidator +%endif +%if "%{_qt4_headerdir}" != "%{_includedir}" +%dir %{_qt4_headerdir}/ +%endif +%{_qt4_headerdir}/* +%{_qt4_datadir}/mkspecs/ +%if "%{_qt4_datadir}" != "%{_qt4_prefix}" +%{_qt4_prefix}/mkspecs/ +%endif +%{_qt4_datadir}/q3porting.xml +%if 0%{?phonon:1} +## nuke this one too? -- Rex +%{_qt4_libdir}/libphonon.prl +%endif +%{_qt4_libdir}/libQt*.so +%{_qt4_libdir}/libQtUiTools*.a +%{_qt4_libdir}/libQt*.prl +%{_libdir}/pkgconfig/*.pc +# Qt designer +%{_qt4_bindir}/designer* +%{_datadir}/applications/*designer.desktop +%{_datadir}/icons/hicolor/*/apps/designer* +%{?docs:%{_qt4_docdir}/qch/designer.qch} +# Qt Linguist +%{_qt4_bindir}/linguist* +%{_datadir}/applications/*linguist.desktop +%{_datadir}/icons/hicolor/*/apps/linguist* +%{?docs:%{_qt4_docdir}/qch/linguist.qch} +%if 0%{?private} +%exclude %{_qt4_headerdir}/*/private/ + +%files devel-private +%defattr(-,root,root,-) +%{_qt4_headerdir}/QtCore/private/ +%{_qt4_headerdir}/QtDeclarative/private/ +%{_qt4_headerdir}/QtGui/private/ +%{_qt4_headerdir}/QtScript/private/ +%{_qt4_headerdir}/../src/corelib/ +%{_qt4_headerdir}/../src/declarative/ +%{_qt4_headerdir}/../src/gui/ +%{_qt4_headerdir}/../src/script/ +%endif + +%if 0%{?docs} +%files doc +%defattr(-,root,root,-) +%{_qt4_docdir}/html/* +%{_qt4_docdir}/qch/*.qch +%exclude %{_qt4_docdir}/qch/designer.qch +%exclude %{_qt4_docdir}/qch/linguist.qch +%{_qt4_docdir}/src/* +#{_qt4_prefix}/doc +%endif + +%if 0%{?examples} +%files examples +%defattr(-,root,root,-) +%{_qt4_examplesdir}/ +%endif + +%if 0%{?qvfb} +%files qvfb -f qvfb.lang +%defattr(-,root,root,-) +%{_bindir}/qvfb +%{_qt4_bindir}/qvfb +%endif + +%if "%{?ibase}" == "-plugin-sql-ibase" +%files ibase +%defattr(-,root,root,-) +%{_qt4_plugindir}/sqldrivers/libqsqlibase* +%endif + +%if "%{?mysql}" == "-plugin-sql-mysql" +%files mysql +%defattr(-,root,root,-) +%{_qt4_plugindir}/sqldrivers/libqsqlmysql* +%endif + +%if "%{?odbc}" == "-plugin-sql-odbc" +%files odbc +%defattr(-,root,root,-) +%{_qt4_plugindir}/sqldrivers/libqsqlodbc* +%endif + +%if "%{?psql}" == "-plugin-sql-psql" +%files postgresql +%defattr(-,root,root,-) +%{_qt4_plugindir}/sqldrivers/libqsqlpsql* +%endif + +%if "%{?tds}" == "-plugin-sql-tds" +%files tds +%defattr(-,root,root,-) +%{_qt4_plugindir}/sqldrivers/libqsqltds* +%endif + +%post x11 +/sbin/ldconfig +touch --no-create %{_datadir}/icons/hicolor ||: + +%posttrans x11 +gtk-update-icon-cache -q %{_datadir}/icons/hicolor 2> /dev/null ||: + +%postun x11 +/sbin/ldconfig +if [ $1 -eq 0 ] ; then +touch --no-create %{_datadir}/icons/hicolor ||: +gtk-update-icon-cache -q %{_datadir}/icons/hicolor 2> /dev/null ||: +fi + +%files x11 -f qt-x11.lang +%defattr(-,root,root,-) +%dir %{_qt4_importdir}/ +%{_qt4_importdir}/Qt/ +%{_qt4_libdir}/libQt3Support.so.4* +%{_qt4_libdir}/libQtCLucene.so.4* +%{_qt4_libdir}/libQtDesigner.so.4* +%{_qt4_libdir}/libQtDeclarative.so.4* +%{_qt4_libdir}/libQtDesignerComponents.so.4* +%{_qt4_libdir}/libQtGui.so.4* +%{_qt4_libdir}/libQtHelp.so.4* +%{_qt4_libdir}/libQtMultimedia.so.4* +%{_qt4_libdir}/libQtOpenGL.so.4* +%{_qt4_libdir}/libQtScriptTools.so.4* +%{_qt4_libdir}/libQtSvg.so.4* +%{_qt4_plugindir}/* +%exclude %{_qt4_plugindir}/crypto +%if "%{?webkit}" == "-webkit" +%exclude %{_qt4_plugindir}/designer/libqwebview.so +%endif +%exclude %{_qt4_plugindir}/sqldrivers +%if "%{_qt4_bindir}" != "%{_bindir}" +%{_bindir}/qmlviewer +%endif +%{_qt4_bindir}/qmlviewer +%{_datadir}/icons/hicolor/*/apps/qt4-logo.* + +%if 0%{?dbus:1} +%post qdbusviewer +touch --no-create %{_datadir}/icons/hicolor ||: + +%posttrans qdbusviewer +gtk-update-icon-cache -q %{_datadir}/icons/hicolor 2> /dev/null ||: + +%postun qdbusviewer +if [ $1 -eq 0 ] ; then +touch --no-create %{_datadir}/icons/hicolor ||: +gtk-update-icon-cache -q %{_datadir}/icons/hicolor 2> /dev/null ||: +fi + +%files qdbusviewer +%if "%{_qt4_bindir}" != "%{_bindir}" +%{_bindir}/qdbusviewer +%endif +%{_qt4_bindir}/qdbusviewer +%{_datadir}/applications/*qdbusviewer.desktop +%{_datadir}/icons/hicolor/*/apps/qdbusviewer.* +%endif + + +%changelog +* Thu Aug 21 2014 Than Ngo - 1:4.8.5-10 +- Resolves: bz#1125662, add support ppc64le arch + +* Wed Aug 20 2014 Than Ngo - 1:4.8.5-9 +- Resolves: bz#1125662 + +* Fri Jan 24 2014 Daniel Mach - 1:4.8.5-8 +- Mass rebuild 2014-01-24 + +* Wed Jan 15 2014 Honza Horak - 1:4.8.5-7 +- Rebuild for mariadb-libs + Related: #1045013 + +* Fri Dec 27 2013 Daniel Mach - 1:4.8.5-6 +- Mass rebuild 2013-12-27 + +* Wed Nov 20 2013 Than Ngo - 1:4.8.5-5 +- add fix to prevent overflow warning + +* Wed Nov 20 2013 Than Ngo - 1:4.8.5-4 +- add AArch64 support, patches from Ubuntu + +* Wed Jul 31 2013 Than Ngo - 1:4.8.5-3 +- revert upstream postgresql driver changes wrt escaping (QTBUG-30076) + +* Tue Jul 02 2013 Rex Dieter 4.8.5-2 +- qdbusviewer subpkg (#968336) + +* Tue Jul 02 2013 Rex Dieter 4.8.5-1 +- 4.8.5 (final) + +* Wed Jun 26 2013 Rex Dieter 4.8.5-0.6.rc2 +- trim changelog +- cleaner rpm_macros_dir handling + +* Fri Jun 21 2013 Rex Dieter 4.8.5-0.5.rc2 +- drop multilib portion from qt_plugin_path.patch + +* Tue Jun 18 2013 Rex Dieter 4.8.5-0.4.rc2 +- (re)add kde4/multilib QT_PLUGIN_PATH + +* Mon Jun 10 2013 Rex Dieter 4.8.5-0.3.rc2 +- 4.8.5-rc2 + +* Mon Jun 10 2013 Rex Dieter 4.8.5-0.2.rc +- RFE: Add %%qmake_qt4 macro (#870199) + +* Sun Jun 09 2013 Rex Dieter 4.8.5-0.1.rc +- 4.8.5-RC + +* Thu May 30 2013 Rex Dieter 4.8.4-19 +- drop QTBUG-27809 candidate fix, causes regressions (#968794) + +* Tue May 28 2013 Than Ngo - 4.8.4-18 +- QTBUG-27809, fix multiple calls to QDBusPendingReply::waitForFinished on separate objects + +* Thu Apr 25 2013 Than Ngo - 4.8.4-17 +- Desktop file sanity, drop key "Encoding", it's deprecated + +* Fri Apr 19 2013 Rex Dieter 4.8.4-16 +- update URL (#859286) +- include qdbusviewer .desktop/icon +- .desktop files: +mime scriptlets, +GenericName keys + +* Wed Mar 20 2013 Rex Dieter 4.8.4-15 +- pull in a few more upstream fixes + +* Mon Feb 11 2013 Rex Dieter 4.8.4-14 +- SIGSEGV when called from QMetaObject::metaCall (QTBUG-29082, kde#311751) + +* Mon Feb 11 2013 Rex Dieter 4.8.4-13 +- qmake: add support for pkgconfig Requires.private + +* Mon Feb 11 2013 Rex Dieter 4.8.4-12 +- add more moc/boost workarounds, thanks boost-1.53 (QTBUG-22829) + +* Mon Feb 04 2013 Than Ngo - 4.8.4-11 +- backport: fix security flaw was found in the way QSharedMemory class, CVE-2013-0254 + +* Sat Jan 26 2013 Rex Dieter 1:4.8.4-10 +- rebuild (icu) + +* Thu Jan 24 2013 Rex Dieter 1:4.8.4-9 +- make qtchooser support non-conflicting + +* Mon Jan 21 2013 Adam Tkac - 1:4.8.4-8 +- rebuild due to "jpeg8-ABI" feature drop + +* Wed Jan 09 2013 Rex Dieter 4.8.4-7 +- add qtchooser support (disabled by default) + +* Mon Jan 07 2013 Rex Dieter 4.8.4-6 +- blacklist unauthorized SSL certificates by Türktrust + +* Fri Jan 04 2013 Rex Dieter 1:4.8.4-5 +- QGtkStyle was unable to detect the current GTK+ theme (#702493, QTBUG-5545)) + +* Fri Jan 04 2013 Rex Dieter 1:4.8.4-4 +- QSslSocket may report incorrect errors when certificate verification fails + +* Thu Jan 03 2013 Rex Dieter 1:4.8.4-3 +- -x11: %%exclude %%{_qt4_plugindir}/designer/libqwebview.so + +* Sun Dec 16 2012 Rex Dieter 1:4.8.4-2 +- -designer-plugin-webkit subpkg (#887501) +- fix/prune/changelog + +* Thu Nov 29 2012 Rex Dieter 1:4.8.4-1 +- 4.8.4 + +* Wed Oct 31 2012 Than Ngo - 1:4.8.3-8 +- add poll support to fix QAbstractSocket errors with more than + 1024 file descriptors, thanks Florian for the patch + +* Wed Oct 24 2012 Rex Dieter 1:4.8.3-7 +- Crash in Qt script (QTBUG-27322) + +* Tue Oct 23 2012 Rex Dieter 1:4.8.3-6 +- fix/respin qdevice_pri patch + +* Mon Oct 22 2012 Rex Dieter 1:4.8.3-5 +- QDir::homePath() should account for an empty $HOME (QTBUG-4862, kde#249217, #694385) + +* Sat Oct 20 2012 Rex Dieter 1:4.8.3-4 +- $RPM_LD_FLAGS should be propagated to qmake's defaults (#868554) + +* Fri Sep 28 2012 Rex Dieter 1:4.8.3-3 +- find qdevice.pri even for installed qt builds + +* Thu Sep 27 2012 Rex Dieter 1:4.8.3-2 +- upstream disable-SSL-compression patch + +* Thu Sep 13 2012 Rex Dieter - 1:4.8.3-1 +- qt-4.8.3 final +- revert QtScript-JIT commit + +* Tue Sep 04 2012 Rex Dieter 4.8.2-6 +- revert "fix QtScript JIT crash" patch, causes frequent segmentation faults (#853587) + +* Mon Aug 13 2012 Rex Dieter 4.8.2-5 +- fix QtScript JIT crash (QTBUG-23871, kde#297661) + +* Thu Jul 05 2012 Rex Dieter 4.8.2-4 +- text cursor blinks not in the current cell (kde#296490) + +* Tue Jun 19 2012 Than Ngo - 4.8.2-3 +- fix bz#810500, fix crash in assistant + +* Tue May 29 2012 Than Ngo - 4.8.2-2 +- fix bz#820767, lrelease-qt4 tries to run qmake not qmake-qt4 + +* Tue May 22 2012 Than Ngo - 4.8.2-1 +- 4.8.2 + +* Fri May 18 2012 Than Ngo - 4.8.1-15 +- add rhel/fedora condition + +* Thu May 17 2012 Rex Dieter 4.8.1-14 +- Can't build 32bit Qt release application on 64bit (#822710) + +* Wed May 16 2012 Than Ngo - 4.8.1-13 +- add upstream patch to fix crash on big endian machine + +* Fri May 11 2012 Rex Dieter 4.8.1-12 +- enable debuginfo in libQt3Support + +* Fri May 11 2012 Rex Dieter 4.8.1-11 +- lrelease-qt4 tries to run qmake not qmake-qt4 (#820767) + +* Thu May 10 2012 Rex Dieter 4.8.1-10 +- Requires: qt-settings (f17+) + +* Tue May 08 2012 Rex Dieter 4.8.1-9 +- rebuild (libtiff) + +* Thu May 03 2012 Than Ngo - 4.8.1-8 +- add rhel/fedora condition + +* Wed Apr 18 2012 Than Ngo - 4.8.1-7 +- add rhel condition + +* Tue Apr 17 2012 Rex Dieter 4.8.1-6 +- omit qdbusconnection warnings in release/no-debug mode + +* Tue Apr 03 2012 Jaroslav Reznik - 4.8.1-5 +- Fix a crash in cursorToX() when new block is added (QTBUG-24718) + +* Fri Mar 30 2012 Than Ngo - 4.8.1-4 +- Fix QTgaHandler::canRead() not obeying image plugin specs + +* Thu Mar 29 2012 Rex Dieter 4.8.1-3 +- Header file name mismatch in qt-devel i686 (#808087) + +* Thu Mar 29 2012 Than Ngo - 4.8.1-2 +- add correct flags + +* Wed Mar 28 2012 Than Ngo - 4.8.1-1 +- 4.8.1 + +* Wed Feb 22 2012 Rex Dieter 4.8.0-10 +- -demos: Requires: -doc (#795859) + +* Mon Feb 20 2012 Than Ngo - 4.8.0-9 +- get rid of timestamp which causes multilib problem + +* Tue Jan 24 2012 Than Ngo - 4.8.0-8 +- disable Using gold linker, g++ doesn't support flags gold linker +- fix gcc-4.7 issue + +* Tue Jan 10 2012 Rex Dieter 4.8.0-7 +- improved filter_event patch (kde#275469) + +* Mon Jan 09 2012 Than Ngo - 4.8.0-6 +- bz#772128, CVE-2011-3922, Stack-based buffer overflow in embedded harfbuzz code + +* Tue Dec 27 2011 Rex Dieter 4.8.0-5 +- fix qvfb + +* Tue Dec 27 2011 Rex Dieter 4.8.0-4 +- filter event patch, avoid "ghost entries in kde taskbar" problem (kde#275469) + +* Tue Dec 20 2011 Rex Dieter 4.8.0-3 +- don't spam if libicu is not present at runtime (#759923) + +* Mon Dec 19 2011 Dan Horák 4.8.0-2 +- add missing method for QBasicAtomicPointer on s390(x) + +* Thu Dec 15 2011 Jaroslav Reznik 4.8.0-1 +- 4.8.0 + +* Mon Dec 12 2011 Jaroslav Reznik 4.8.0-0.29.rc1 +- Fixes the position of misplaced mouse input (QTBUG-22420) + +* Sun Dec 04 2011 Rex Dieter 4.8.0-0.28.rc1 +- Control whether icu support is built (#759923) + +* Sat Dec 03 2011 Kevin Kofler 4.8.0-0.27.rc1 +- work around a MOC issue with Boost 1.48 headers (#756395) + +* Wed Nov 30 2011 Than Ngo - 4.8.0-0.26.rc1 +- workaround crash on ppc64 + +* Mon Nov 14 2011 Rex Dieter 4.8.0-0.25.rc1 +- BuildRequires: pkgconfig(libpng) +- -devel: drop Requires: libpng-devel libjpeg-devel +- qt4.macros: +%%_qt4_epoch, %%_qt4_evr + +* Thu Nov 03 2011 Rex Dieter 4.8.0-0.24.rc1 +- build tds sql driver with -fno-strict-aliasing + +* Fri Oct 28 2011 Rex Dieter 4.8.0-0.23.rc1 +- crash when using a visual with 24 bits per pixel (#749647,QTBUG-21754) + +* Fri Oct 28 2011 Kevin Kofler 4.8.0-0.22.rc1 +- fix FTBFS in QtWebKit's wtf library with GLib 2.31 + +* Thu Oct 27 2011 Kevin Kofler 4.8.0-0.21.rc1 +- fix missing NULL check in the toLocalFile patch (fixes Digikam segfault) + +* Thu Oct 27 2011 Rex Dieter 4.8.0-0.20.rc1 +- restore qt-4.7-compatible behavior to QUrl.toLocalFile (#749213) + +* Wed Oct 26 2011 Fedora Release Engineering - 1:4.8.0-0.19.rc1 +- Rebuilt for glibc bug#747377 + +* Mon Oct 24 2011 Than Ngo 4.8.0-0.18.rc1 +- bz#748297, update the URL of qt packages + +* Tue Oct 18 2011 Rex Dieter 4.8.0-0.17.rc1 +- Buttons in Qt applications not clickable when run under gnome-shell (#742658, QTBUG-21900) + +* Mon Oct 17 2011 Rex Dieter 4.8.0-0.16.rc1 +- Qt doesn't close orphaned file descriptors after printing (#746601, QTBUG-14724) + +* Sat Oct 15 2011 Rex Dieter 4.8.0-0.15.rc1 +- revert qlist.h commit that seems to induce crashes in qDeleteAll 4.8.0-0.14.rc1 +- pkgconfig-style deps + +* Thu Oct 13 2011 Rex Dieter 4.8.0-0.13.rc1 +- 4.8.0-rc1 + +* Mon Oct 03 2011 Rex Dieter 4.8.0-0.12.20111002 +- 20111002 4.8 branch snapshot + +* Sat Sep 17 2011 Rex Dieter 4.8.0-0.11.beta1 +- ./configure -webkit + +* Wed Sep 14 2011 Lukas Tinkl 1:4.8.0-0.10.beta1 +- fix missing CSS styles and JS functions in the generated HTML + documentation, omitted from the upstream tarball + +* Wed Aug 17 2011 Rex Dieter 1:4.8.0-0.9.beta1 +- -graphicssystem raster (#712617) +- drop sqlite_pkg option + +* Sun Jul 31 2011 Rex Dieter 1:4.8.0-0.8.beta1 +- macros.qt4: s|_qt47|_qt48| + +* Thu Jul 28 2011 Dan Horák 1:4.8.0-0.7.beta1 +- fix the outdated standalone copy of JavaScriptCore (s390) + +* Sat Jul 23 2011 Rex Dieter 1:4.8.0-0.6.beta1 +- fix QMAKE_LIBDIR_QT, for missing QT_SHARED define (#725183) + +* Wed Jul 20 2011 Rex Dieter 1:4.8.0-0.5.beta1 +- 4.8.0-beta1 +- drop webkit_packaged conditional +- drop old patches +- drop qvfb (for now, ftbfs) + +* Wed Jul 13 2011 Than Ngo - 1:4.8.0-0.4.tp +- move macros.* to -devel + +* Tue Jul 05 2011 Rex Dieter 1:4.8.0-0.3.tp +- Adding qt-sql-ibase driver for qt (#719002) +- qvfb subpackage (#718416) + +* Tue Jun 21 2011 Rex Dieter 1:4.8.0-0.2.tp +- fontconfig patch (#705348, QTBUG-19947) + +* Wed May 25 2011 Jaroslav Reznik 1:4.8.0-0.1.tp +- 4.8.0-tp +- drop phonon_internal, phonon_backend_packaged build options + +* Thu May 19 2011 Rex Dieter 1:4.7.3-3 +- omit %%{_qt4_plugindir}/designer/libqwebview.so too + +* Thu May 19 2011 Rex Dieter 1:4.7.3-2 +- omit bundled webkit on f16+ (in favor of separately packaged qtwebkit) + +* Thu May 05 2011 Jaroslav Reznik 1:4.7.3-1 +- 4.7.3 + +* Thu Apr 21 2011 Rex Dieter 1:4.7.2-9 +- -webkit-devel: move qt_webkit_version.pri here + +* Fri Apr 01 2011 Rex Dieter 1:4.7.2-8 +- -devel-private: qt-creator/QmlDesigner requires qt private headers (#657498) + +* Fri Mar 25 2011 Rex Dieter 1:4.7.2-7 +- followup patch for QTBUG-18338, blacklist fraudulent SSL certifcates + +* Fri Mar 25 2011 Rex Dieter 1:4.7.2-6 +- drop qt-designer-plugin-phonon + +* Fri Mar 25 2011 Than Ngo - 1:4.7.2-5 +- apply patch to fix QTBUG-18338, blacklist fraudulent SSL certifcates + +* Tue Mar 22 2011 Jaroslav Reznik 1:4.7.2-4 +- rebuild (mysql) + +* Fri Mar 11 2011 Dan Horák 1:4.7.2-3 +- workaround memory exhaustion during linking of libQtWebKit on s390 + +* Mon Mar 07 2011 Jaroslav Reznik 1:4.7.2-2 +- Fix QNetworkConfigurationManager crash due to null private pointer (#682656) + +* Tue Mar 01 2011 Jaroslav Reznik 1:4.7.2-1 +- 4.7.2 + +* Wed Feb 23 2011 Rex Dieter 1:4.7.1-18 +- libQtWebKit.so has no debug info (#667175) + +* Wed Feb 16 2011 Rex Dieter 1:4.7.1-17 +- Obsoletes: qt-sqlite < 1:4.7.1-16 + +* Tue Feb 15 2011 Rex Dieter 1:4.7.1-16 +- drop -sqlite subpkg, move into main (#677418) + +* Wed Feb 09 2011 Rex Dieter 1:4.7.1-15 +- -assistant subpkg (#660287) +- -config drop Obsoletes: qt-x11 (avoid/workaround #674326) +- -config unconditionally drop NoDisplay (since we're dropping the Obsoletes too) +- -designer-plugin-phonon subpkg (#672088) + +* Tue Feb 08 2011 Fedora Release Engineering - 1:4.7.1-14 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_15_Mass_Rebuild + +* Wed Jan 26 2011 Rex Dieter 4.7.1-13 +- -config: fix Obsoletes for real this time + +* Wed Jan 26 2011 Rex Dieter 4.7.1-12 +- fix qt-config related Obsoletes/Provides + +* Wed Jan 26 2011 Rex Dieter 4.7.1-11 +- upstream fix for QTextCursor regression (QTBUG-15857, kde#249373) + +* Tue Jan 25 2011 Rex Dieter 4.7.1-10 +- -config subpkg +- qt-x11 pulls in phonon (#672088) +- qtconfig.desktop: drop NoDisplay (f15+ only, for now) + +* Thu Jan 20 2011 Rex Dieter 4.7.1-9.1 +- apply the Assistant QtWebKit dependency removal (#660287) everywhere + +* Thu Jan 06 2011 Rex Dieter 4.7.1-9 +- qsortfilterproxymodel fix (merge_request/934) + +* Tue Jan 04 2011 Rex Dieter 4.7.1-8 +- only do Requires: phonon-backend if using qt's phonon + +* Fri Dec 24 2010 Kevin Kofler 4.7.1-7 +- fix QTreeView crash triggered by KPackageKit (patch by David Faure) + +* Fri Dec 24 2010 Rex Dieter 4.7.1-6 +- rebuild (mysql) + +* Wed Dec 08 2010 Kevin Kofler 4.7.1-5 +- make the Assistant QtWebKit dependency removal (#660287) F15+ only for now +- fix QTextCursor crash in Lokalize and Psi (QTBUG-15857, kde#249373, #660028) +- add some more NULL checks to the glib_eventloop_nullcheck patch (#622164) + +* Mon Dec 06 2010 Than Ngo 4.7.1-4 +- bz#660287, using QTextBrowser in assistant to drop qtwebkit dependency + +* Tue Nov 23 2010 Rex Dieter - 4.7.1-3 +- Fails to create debug build of Qt projects on mingw (#653674, QTBUG-14467) + +* Mon Nov 22 2010 Than Ngo - 4.7.1-2 +- bz#528303, Reordering of Malayalam Rakar not working properly + +* Thu Nov 11 2010 Than Ngo - 4.7.1-1 +- 4.7.1 + +* Mon Oct 25 2010 Jaroslav Reznik - 4.7.0-8 +- QtWebKit, CVE-2010-1822: crash by processing certain SVG images (#640290) + +* Mon Oct 18 2010 Rex Dieter - 4.7.0-7 +- qt-devel contains residues from patch run (#639463) + +* Fri Oct 15 2010 Than Ngo - 4.7.0-6 +- apply patch to fix the color issue in 24bit mode (cirrus driver) + +* Thu Sep 30 2010 Rex Dieter - 4.7.0-5 +- Wrong Cursor when widget become native on X11 (QTBUG-6185) + +* Mon Sep 27 2010 Than Ngo - 4.7.0-4 +- apply upstream patch to fix QTreeView-regression (QTBUG-13567) + +* Thu Sep 23 2010 Than Ngo - 4.7.0-3 +- fix typo in license + +* Thu Sep 23 2010 Than Ngo - 4.7.0-2 +- fix bz#562049, bn-IN Incorrect rendering +- fix bz#562058, bn_IN init feature is not applied properly +- fix bz#631732, indic invalid syllable's are not recognized properly +- fix bz#636399, oriya script open type features are not applied properly + +* Tue Sep 21 2010 Than Ngo - 4.7.0-1 +- 4.7.0 + +* Thu Sep 09 2010 Rex Dieter - 4.7.0-0.31.rc1 +- -webkit-devel: add missing %%defattr +- -webkit: move qml/webkit bits here + +* Wed Sep 08 2010 Rex Dieter - 4.7.0-0.30.rc1 +- Crash in drawPixmap in Qt 4.7rc1 (#631845, QTBUG-12826) + +* Mon Aug 30 2010 Than Ngo - 4.7.0-0.29.rc1 +- drop the patch, it's already fixed in upstream + +* Thu Aug 26 2010 Than Ngo - 4.7.0-0.28.rc1 +- 4.7.0 rc1 + +* Thu Jul 08 2010 Rex Dieter - 4.7.0-0.26.beta2 +- rebase patches, avoiding use of patch fuzz +- omit old qt-copy/kde-qt patches, pending review +- omit kde4_plugin patch +- ftbfs:s/qml/qmlviewer, libQtMediaServices no longer included + +* Thu Jul 08 2010 Rex Dieter - 4.7.0-0.25.beta2 +- 4.7.0-beta2 + +* Thu Jul 01 2010 Rex Dieter - 4.7.0-0.24.beta1 +- X11Embed broken (rh#609757, QTBUG-10809) + +* Thu Jul 01 2010 Kevin Kofler - 4.7.0-0.23.beta1 +- use find_lang to package the qm files (#609749) +- put the qm files into the correct subpackages +- remove qvfb translations, we don't ship qvfb + +* Tue Jun 29 2010 Rex Dieter 4.7.0-0.20.beta1 +- avoid timestamps in uic-generated files to be multilib-friendly + +* Fri Jun 18 2010 Rex Dieter 4.7.0-0.19.beta1 +- revert -no-javascript-jit change, false-alarm (#604003) +- QtWebKit does not search correct plugin path(s) (#568860) +- QtWebKit browsers crash with flash-plugin (rh#605677,webkit#40567) +- drop qt-x11-opensource-src-4.5.0-gcc_hack.patch + +* Wed Jun 16 2010 Rex Dieter 4.7.0-0.18.beta1 +- -no-javascript-jit on i686 (#604003) + +* Wed Jun 16 2010 Karsten Hopp 4.7.0-0.17.beta1 +- add s390 and s390x to 3rdparty/webkit/JavaScriptCore/wtf/Platform.h and + 3rdparty/javascriptcore/JavaScriptCore/wtf/Platform.h + +* Fri Jun 11 2010 Rex Dieter - 4.7.0-0.16.beta1 +- scrub -lpulse-mainloop-glib from .prl files (#599844) +- scrub references to %%buildroot in .pc, .prl files + +* Thu May 27 2010 Rex Dieter - 4.7.0-0.15.beta1 +- Unsafe use of rand() in X11 (QTBUG-9793) + +* Fri May 21 2010 Rex Dieter - 4.7.0-0.14.beta1 +- drop -no-javascript-jit (webkit#35154) + +* Mon May 17 2010 Rex Dieter - 4.7.0-0.13.beta1 +- QT_GRAPHICSSYSTEM env support + +* Sun May 16 2010 Rex Dieter - 4.7.0-0.12.beta1 +- -webkit-devel: move Qt/qweb*.h here (#592680) + +* Fri May 07 2010 Rex Dieter - 4.7.0-0.11.beta1 +- -webkit-devel: Obsoletes: qt-devel ... (upgrade path) + +* Thu May 06 2010 Rex Dieter - 4.7.0-0.10.beta1 +- -webkit-devel: Provides: qt4-webkit-devel , Requires: %%name-devel + +* Thu May 06 2010 Rex Dieter - 4.7.0-0.9.beta1 +- 4.7.0-beta1 +- -webkit-devel : it lives! brainz! + +* Fri Apr 30 2010 Rex Dieter - 4.7.0-0.8.tp +- prepping for separate QtWebKit(-2.0) +- -webkit subpkg, Provides: QtWebKit ... +- -devel: Provides: QtWebKit-devel ... +- TODO: -webkit-devel (and see what breaks) + +* Wed Apr 28 2010 Rex Dieter - 4.7.0-0.7.tp +- own %%{_qt4_plugindir}/crypto + +* Sat Apr 03 2010 Kevin Kofler - 4.7.0-0.6.tp +- backport fix for QTBUG-9354 which breaks kdeutils build + +* Fri Apr 02 2010 Rex Dieter - 4.7.0-0.5.tp +- Associate text/vnd.trolltech.linguist with linguist (#579082) + +* Tue Mar 23 2010 Tom "spot" Callaway - 4.7.0-0.4.tp +- fix type cast issue on sparc64 + +* Sun Mar 21 2010 Kevin Kofler - 4.7.0-0.3.tp +- also strip -lpulse from .prl files (fixes PyQt4 QtMultimedia binding build) + +* Tue Mar 16 2010 Rex Dieter - 4.7.0-0.2.tp +- qt-4.7.0-tp +- macros.qt4 : +%%_qt4_importdir +- don't strip libs from pkgconfig files, Libs.private is now used properly +- add -lphonon to stripped libs instead of brutally hacking out + QMAKE_PRL_LIBS altogether (#520323) +- qt-assistant-adp packaged separately now, not included here + +* Sat Mar 13 2010 Kevin Kofler - 4.6.2-7 +- BR alsa-lib-devel (for QtMultimedia) + +* Sat Mar 13 2010 Kevin Kofler - 4.6.2-6 +- Provides: qt-assistant-adp(-devel) + +* Fri Mar 05 2010 Than Ngo - 4.6.2-5 +- Make tablet detection work with new wacom drivers (#569132) + +* Mon Mar 01 2010 Rex Dieter - 4.6.2-4 +- fix 64bit platform logic, use linux-g++-64 everywhere except x86_64 (#569542) + +* Sun Feb 28 2010 Kevin Kofler - 4.6.2-3 +- fix CUPS patch not to crash if currentPPD is NULL (#566304) + +* Tue Feb 16 2010 Rex Dieter - 4.6.2-2 +- macros.qt4: s/qt45/qt46/ + +* Mon Feb 15 2010 Rex Dieter - 4.6.2-1 +- 4.6.2 + +* Fri Feb 05 2010 Rex Dieter - 4.6.1-3 +- improve cups support (#523846, kde#180051#c22) + +* Tue Jan 19 2010 Rex Dieter - 4.6.1-2 +- drop bitmap_font_speed patch, rejected upstream + +* Tue Jan 19 2010 Than Ngo - 4.6.1-1 +- 4.6.1 + +* Mon Jan 11 2010 Rex Dieter - 4.6.0-5 +- bitmap_font_speed patch (QTBUG-7255) + +* Sat Jan 09 2010 Rex Dieter - 4.6.0-4 +- Fix crash when QGraphicsItem destructor deletes other QGraphicsItem (kde-qt cec34b01) +- Fix a crash in KDE/Plasma with QGraphicsView. TopLevel list of items (kde-qt 63839f0c) + +* Wed Dec 23 2009 Kevin Kofler - 4.6.0-3 +- disable QtWebKit JavaScript JIT again, incompatible with SELinux (#549994) + +* Sat Dec 05 2009 Kevin Kofler - 4.6.0-2 +- own %%{_qt4_plugindir}/gui_platform + +* Tue Dec 01 2009 Than Ngo - 4.6.0-1 +- 4.6.0 + +* Tue Nov 17 2009 Rex Dieter - 4.6.0-0.6.rc1 +- qt-4.6.0-rc1 + +* Sat Nov 14 2009 Rex Dieter - 4.6.0-0.5.beta1 +- -tds: Add package with TDS sqldriver (#537586) +- add arch'd provides for sql drivers + +* Sun Nov 08 2009 Rex Dieter - 4.6.0-0.4.beta1 +- -x11: Requires: %%{name}-sqlite%{?_isa} + +* Mon Oct 26 2009 Rex Dieter - 4.6.0-0.3.beta1 +- kde-qt patches (as of 20091026) + +* Fri Oct 16 2009 Than Ngo - 4.6.0-0.2.beta1 +- subpackage sqlite plugin, add Require on qt-sqlite in qt-x11 + for assistant +- build/install qdoc3 again + +* Wed Oct 14 2009 Rex Dieter - 4.6.0-0.1.beta1 +- qt-4.6.0-beta1 +- no kde-qt patches (yet) + +* Sat Oct 10 2009 Than Ngo - 4.5.3-4 +- fix translation build issue +- rhel cleanup + +* Tue Oct 06 2009 Jaroslav Reznik - 4.5.3-3 +- disable JavaScriptCore JIT, SE Linux crashes (#527079) + +* Fri Oct 02 2009 Than Ngo - 4.5.3-2 +- cleanup patches +- if ! phonon_internal, exclude more/all phonon headers +- qt-devel must Requires: phonon-devel (#520323) + +* Thu Oct 01 2009 Rex Dieter - 4.5.3-1 +- qt-4.5.3 + +* Tue Sep 29 2009 Rex Dieter - 4.5.2-21 +- switch to external/kde phonon + +* Mon Sep 28 2009 Rex Dieter - 4.5.2-20 +- use internal Qt Assistant/Designer icons +- -devel: move designer.qch,linguist.qch here +- move ownership of %%_qt4_docdir, %%_qt4_docdir/qch to main pkg + +* Sun Sep 20 2009 Rex Dieter - 4.5.2-19 +- Missing Qt Designer icon (#476605) + +* Fri Sep 11 2009 Rex Dieter - 4.5.2-18 +- drop gcc -fno-var-tracking-assignments hack (#522576) + +* Fri Sep 11 2009 Than Ngo - 4.5.2-17 +- drop useless check for ossl patch, the patch works fine with old ossl + +* Wed Sep 09 2009 Than Ngo - 4.5.2-16 +- add a correct system_ca_certificates patch + +* Tue Sep 08 2009 Rex Dieter - 4.5.2-15 +- use system ca-certificates (#521911) + +* Tue Sep 01 2009 Than Ngo - 4.5.2-14 +- drop fedora < 9 support +- only apply ossl patch for fedora > 11 + +* Mon Aug 31 2009 Than Ngo - 4.5.2-13 +- fix for CVE-2009-2700 + +* Thu Aug 27 2009 Rex Dieter 4.5.2-12 +- use platform linux-g++ everywhere (ie, drop linux-g++-64 on 64 bit), + avoids plugin/linker weirdness (bug #478481) + +* Wed Aug 26 2009 Tomas Mraz - 1:4.5.2-11 +- rebuilt with new openssl + +* Thu Aug 20 2009 Than Ngo - 4.5.2-10 +- switch to kde-qt branch + +* Tue Aug 18 2009 Than Ngo - 4.5.2-9 +- security fix for CVE-2009-1725 (bz#513813) + +* Sun Aug 16 2009 Than Ngo - 4.5.2-8 +- fix phonon-backend-gstreamer for using pulsaudio (#513421) + +* Fri Aug 14 2009 Rex Dieter 4.5.2-7 +- kde-qt: 287-qmenu-respect-minwidth +- kde-qt: 0288-more-x-keycodes (#475247) + +* Wed Aug 05 2009 Rex Dieter 4.5.2-6 +- use linker scripts for _debug targets (#510246) +- tighten deps using %%{?_isa} +- -x11: Requires(post,postun): /sbin/ldconfig + +* Thu Jul 30 2009 Than Ngo - 4.5.2-5 +- apply upstream patch to fix issue in Copy and paste + +* Sun Jul 26 2009 Fedora Release Engineering - 1:4.5.2-4 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_12_Mass_Rebuild + +* Thu Jul 02 2009 Than Ngo - 4.5.2-3 +- pregenerate PNG, drop BR on GraphicsMagick (bz#509244) + +* Fri Jun 26 2009 Kevin Kofler - 4.5.2-2 +- take current qt-copy-patches snapshot (20090626) +- disable patches which are already in 4.5.2 +- fix the qt-copy patch 0274-shm-native-image-fix.diff to apply against 4.5.2 + +* Thu Jun 25 2009 Lukáš Tinkl - 4.5.2-1 +- Qt 4.5.2 + +* Sun Jun 07 2009 Rex Dieter - 4.5.1-18 +- phonon-backend-gstreamer pkg, with icons +- optimize (icon-mostly) scriptlets + +* Sun Jun 07 2009 Than Ngo - 4.5.1-17 +- drop the hack, apply patch to install Global header, gstreamer.desktop + and dbus services file + +* Sat Jun 06 2009 Rex Dieter - 4.5.1-16 +- install awol Phonon/Global header + +* Fri Jun 05 2009 Kevin Kofler - 4.5.1-15 +- apply Phonon PulseAudio patch (needed for the xine-lib backend) + +* Fri Jun 05 2009 Than Ngo - 4.5.1-14 +- enable phonon and gstreamer-backend + +* Sat May 30 2009 Rex Dieter - 4.5.1-13 +- -doc: Obsoletes: qt-doc < 1:4.5.1-4 (workaround bug #502401) + +* Sat May 23 2009 Rex Dieter - 4.5.1-12 +- +phonon_internal macro to toggle packaging of qt's phonon (default off) + +* Fri May 22 2009 Rex Dieter - 4.5.1-11 +- qt-copy-patches-20090522 + +* Wed May 20 2009 Rex Dieter - 4.5.1-10.2 +- full (non-bootstrap) build + +* Wed May 20 2009 Rex Dieter - 4.5.1-10.1 +- allow for minimal bootstrap build (*cough* arm *cough*) + +* Wed May 06 2009 Rex Dieter - 4.5.1-10 +- improved kde4_plugins patch, skip expensive/unneeded canonicalPath + +* Wed May 06 2009 Rex Dieter - 4.5.1-9 +- include kde4 plugin path by default (#498809) + +* Mon May 04 2009 Rex Dieter - 4.5.1-8 +- fix invalid assumptions about mysql_config --libs (bug #440673) +- fix %%files breakage from 4.5.1-5 + +* Wed Apr 29 2009 Rex Dieter - 4.5.1-7 +- -devel: Provides: qt4-devel%%{?_isa} ... + +* Mon Apr 27 2009 Than Ngo - 4.5.1-6 +- drop useless hunk of qt-x11-opensource-src-4.5.1-enable_ft_lcdfilter.patch + +* Mon Apr 27 2009 Rex Dieter - 4.5.1-5 +- -devel: Provides: *-static for libQtUiTools.a + +* Fri Apr 24 2009 Rex Dieter - 4.5.1-4 +- qt-doc noarch +- qt-demos, qt-examples (split from -doc) +- (cosmetic) re-order subpkgs in alphabetical order +- drop unused profile.d bits + +* Fri Apr 24 2009 Rex Dieter - 4.5.1-3 +- enable FT_LCD_FILTER (uses freetype subpixel filters if available at runtime) + +* Fri Apr 24 2009 Than Ngo - 4.5.1-2 +- apply upstream patch to fix the svg rendering regression + +* Thu Apr 23 2009 Than Ngo - 4.5.1-1 +- 4.5.1 + +* Tue Apr 14 2009 Rex Dieter - 4.5.0-14 +- fix vrgb/vgbr corruption, disable QT_USE_FREETYPE_LCDFILTER (#490377) + +* Fri Apr 10 2009 Than Ngo - 4.5.0-13 +- unneeded executable permissions for profile.d scripts + +* Wed Apr 01 2009 Kevin Kofler - 4.5.0-12 +- fix inline asm in qatomic (de)ref (i386/x86_64), should fix Kolourpaint crash + +* Mon Mar 30 2009 Rex Dieter - 4.5.0-11 +- qt fails to build on ia64 (#492174) + +* Wed Mar 25 2009 Rex Dieter - 4.5.0-10 +- qt-copy-patches-20090325 + +* Tue Mar 24 2009 Than Ngo - 4.5.0-9 +- lrelease only shows warning when duplicate messages found in *.ts( #491514) + +* Fri Mar 20 2009 Rex Dieter - 4.5.0-8 +- qt-copy-patches-20090319 + +* Thu Mar 19 2009 Rex Dieter - 4.5.0-7 +- include more phonon bits, attempt to fix/provide phonon bindings + for qtscriptgenerator, PyQt, ... + +* Tue Mar 17 2009 Than Ngo - 4.5.0-6 +- fix lupdate segfault (#486866) + +* Sat Mar 14 2009 Dennis Gilmore - 4.5.0-5 +- add patch for sparc64. +- _Atomic_word is not always an int + +* Tue Mar 10 2009 Rex Dieter - 4.5.0-4 +- macros.qt4: %%_qt45 +- cleanup more phonon-related left-overs + +* Wed Mar 04 2009 Rex Dieter - 4.5.0-3 +- -no-phonon-backend +- include qdoc3 +- move designer plugins to runtime (#487622) + +* Tue Mar 03 2009 Rex Dieter - 4.5.0-2 +- License: LGPLv2 with exceptions or GPLv3 with exceptions +- BR: gstreamer-devel +- drop qgtkstyle patch (no longer needed) +- -x11: move libQtScriptTools here (linked with libQtGui) + +* Tue Mar 03 2009 Than Ngo - 4.5.0-1 +- 4.5.0 + +* Fri Feb 27 2009 Rex Dieter - 1:4.5.0-0.8.20090224 +- 20090224 snapshot +- adjust pkgconfig hackery + +* Wed Feb 25 2009 Fedora Release Engineering - 1:4.5.0-0.7.rc1 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_11_Mass_Rebuild + +* Sun Feb 22 2009 Rex Dieter 4.5.0-0.5.rc1 +- revert license, change won't land until official 4.5.0 release +- workaround broken qhostaddress.h (#485677) +- Provides: qgtkstyle = 0.1 + +* Fri Feb 20 2009 Rex Dieter 4.5.0-0.4.rc1 +- saner versioned Obsoletes +- -gtkstyle, Obsoletes: qgtkstyle < 0.1 +- enable phonon support and associated hackery + +* Mon Feb 16 2009 Than Ngo 4.5.0-0.3.rc1 +- fix callgrindChildExitCode is uninitialzed + +* Sun Feb 15 2009 Rex Dieter - 4.5.0-0.2.rc1 +- qt-copy-patches-20090215 +- License: +LGPLv2 + +* Wed Feb 11 2009 Than Ngo - 4.5.0-0.rc1.0 +- 4.5.0 rc1 + +* Thu Feb 05 2009 Rex Dieter 4.4.3-16 +- track branches/qt-copy/4.4, and backout previous trunk(qt45) ones + +* Mon Feb 02 2009 Than Ngo 4.4.3-15 +- disable 0269,0270,0271 patches, it causes issue in systray + +* Thu Jan 29 2009 Rex Dieter - 4.4.3-14 +- qt-copy-patches-20090129 + +* Mon Jan 26 2009 Rex Dieter - 4.4.3-13 +- Provides: qt4%%{?_isa} = %%version-%%release +- add %%_qt4 to macros.qt4 + +* Thu Jan 22 2009 Rex Dieter - 4.4.3-12 +- respin (mysql) + +* Fri Jan 16 2009 Kevin Kofler - 4.4.3-11 +- rebuild for new OpenSSL + +* Mon Jan 12 2009 Rex Dieter - 4.4.3-10 +- drop qt-x11-opensource-src-4.3.4-no-hardcoded-font-aliases.patch (#447298), + in favor of qt-copy's 0263-fix-fontconfig-handling.diff + +* Mon Jan 12 2009 Than Ngo - 4.4.3-9 +- qt-copy-patches-20090112 + +* Tue Dec 30 2008 Rex Dieter 4.4.3-8 +- qt-copy-patches-20081225 + +* Fri Dec 12 2008 Rex Dieter 4.4.3-7 +- rebuild for pkgconfig deps + +* Wed Nov 12 2008 Rex Dieter 4.4.3-6 +- qt-copy-patches-20081112 + +* Tue Nov 11 2008 Than Ngo 4.4.3-5 +- drop 0256-fix-recursive-backingstore-sync-crash.diff, it's + included in qt-copy-pathes-20081110 + +* Mon Nov 10 2008 Rex Dieter 4.4.3-4 +- qt-copy-patches-20081110 + +* Mon Nov 10 2008 Than Ngo 4.4.3-3 +- apply 0256-fix-recursive-backingstore-sync-crash.diff + +* Thu Nov 06 2008 Than Ngo 4.4.3-2 +- bz#468814, immodule selection behavior is unpredictable without QT_IM_MODULE, + patch from Peng Wu +- backport fix from 4.5 + +* Sun Sep 28 2008 Rex Dieter 4.4.3-1 +- 4.4.3 + +* Wed Sep 24 2008 Rex Dieter 4.4.2-2 +- omit systray patch (for now) + +* Sat Sep 20 2008 Than Ngo 4.4.2-1 +- 4.4.2 + +* Mon Sep 08 2008 Rex Dieter - 4.4.1-3 +- apply QMAKEPATH portion of multilib patch only if needed +- qt-copy-patches-20080908 + +* Wed Aug 06 2008 Than Ngo - 4.4.1-2 +- fix license tag +- fix Obsoletes: qt-sqlite (missing epoch) + +* Tue Aug 05 2008 Than Ngo - 4.4.1-1 +- 4.4.1 + +* Tue Aug 05 2008 Rex Dieter 4.4.0-17 +- fold -sqlite subpkg into main (#454930) + +* Wed Jul 23 2008 Rex Dieter 4.4.0-16 +- qt-copy-patches-20080723 (kde#162793) +- omit deprecated phonon bits + +* Sat Jul 19 2008 Rex Dieter 4.4.0-15 +- fix/workaround spec syntax + +* Sat Jul 19 2008 Rex Dieter 4.4.0-14 +- macros.qt4: fix %%_qt4_datadir, %%_qt4_translationdir + +* Thu Jul 17 2008 Rex Dieter 4.4.0-13 +- (re)fix qconfig-multilib.h for sparc64 + +* Fri Jul 11 2008 Rex Dieter 4.4.0-12 +- qt-copy-patches-20080711 + +* Mon Jun 23 2008 Rex Dieter 4.4.0-11 +- fix dbus conditional (#452487) + +* Sat Jun 14 2008 Rex Dieter 4.4.0-10 +- strip -lsqlite3 from .pc files (#451490) + +* Sat Jun 14 2008 Kevin Kofler 4.4.0-9 +- restore -qt4 suffixes + +* Fri Jun 13 2008 Than Ngo 4.4.0-8 +- drop qt wrapper, make symlinks to /usr/bin + +* Tue Jun 10 2008 Than Ngo 4.4.0-7 +- fix #450310, multilib issue + +* Fri Jun 06 2008 Rex Dieter 4.4.0-6 +- qt-copy-patches-20080606 +- drop BR: libungif-devel (not used) +- move libQtXmlPatters, -x11 -> main +- move qdbuscpp2xml, qdbusxml2cpp, xmlpatters, -x11 -> -devel + +* Tue May 27 2008 Kevin Kofler 4.4.0-5 +- under GNOME, default to QGtkStyle if available + +* Mon May 19 2008 Kevin Kofler 4.4.0-4 +- don't hardcode incorrect font substitutions (#447298) + +* Fri May 16 2008 Rex Dieter 4.4.0-3 +- qt-copy-patches-20080516 + +* Tue May 13 2008 Kevin Kofler 4.4.0-2 +- revert _qt4_bindir change for now, needs more work (#446167) + +* Tue May 06 2008 Rex Dieter 4.4.0-1 +- qt-4.4.0