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