summaryrefslogtreecommitdiffstats
path: root/src/3rdparty
Commit message (Collapse)AuthorAgeFilesLines
* ANGLE: Fix compilation without d3d11Kai Koehne2015-05-282-1/+5
| | | | | | Change-Id: I0b772698cf521083e5ecf35a395af57100a50131 Reviewed-by: Friedemann Kleint <Friedemann.Kleint@theqtcompany.com> Reviewed-by: Andrew Knight <andrew.knight@intopalo.com>
* Fix forkfd on OS X 10.7 and earlier by avoiding waitid altogetherDyami Caliri2015-05-271-24/+32
| | | | | | | | | On OS X 10.7 and earlier, waitid() never sets si_pid, even when using P_PID. So on OS X, check if waitid() works, and if not, use the same codepath as if HAVE_WAITID were not defined. Change-Id: I64331a090f9358bb01f435954d3dfd3ab430a96c Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
* Fix MSVC 64 bit compiler warnings in 3rdparty codeKai Koehne2015-05-132-3/+3
| | | | | | | | | Make casts from size_t to int explicit to avoid warnings like warning C4267: '=' : conversion from 'size_t' to 'int', possible loss of data Change-Id: Ib69c25519dadf8732b0c08412cc97887df00a2d4 Reviewed-by: Konstantin Ritt <ritt.ks@gmail.com>
* Update PCRE to 8.37Giuseppe D'Angelo2015-05-128-45/+97
| | | | | | | Change-Id: I0668a8ccdebc1a6b5f1cb8bbb74d91b44ac937f8 Reviewed-by: Konstantin Ritt <ritt.ks@gmail.com> Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@theqtcompany.com> Reviewed-by: Lars Knoll <lars.knoll@digia.com>
* ANGLE: Allow Windows Phone to communicate swap regionAndrew Knight2015-05-084-13/+24
| | | | | | | | | | | | | | | | eglPostSubBufferNV is used to communicate the size of the window, as otherwise there is no way for the renderer to know if the last frame was rendered in landscape or portrait, causing rendering glitches when the orientation changes. The rotation flags are utilized in a few additional places now to fix some corner cases where the rotation was not applied. This patch should be squashed into "ANGLE-Improve-Windows-Phone-Support" during the next ANGLE rebase. Task-number: QTBUG-44333 Task-number: QTBUG-43502 Change-Id: Iec37f7531854184819c30c87eab82d96d56ff133 Reviewed-by: Oliver Wolff <oliver.wolff@theqtcompany.com>
* Merge remote-tracking branch 'origin/5.4' into 5.5Liang Qi2015-04-1536-8895/+17783
|\ | | | | | | Change-Id: I004854a25ebbf12b1fda88900162fe7878716c58
| * Upgrade PCRE to r1546Giuseppe D'Angelo2015-04-126-67/+126
| | | | | | | | | | | | | | | | | | | | | | Thanks to LLVM's libFuzzer a dozen of assorted buffer overflows has been discovered, see [1, 2] [1] http://vcs.pcre.org/viewvc/code/trunk/ChangeLog?view=markup [2] http://blog.llvm.org/2015/04/fuzz-all-clangs.html Change-Id: Ib9fd8dfaee8dc50e1899ebac83a74ac1107a0bd2 Reviewed-by: Konstantin Ritt <ritt.ks@gmail.com>
| * Update bundled libpng to version 1.6.17Eirik Aavitsland2015-04-0930-8828/+17657
| | | | | | | | | | | | | | | | | | Merged in the upstream version, which obsoleted many of the local patches. The remaining diff to clean 1.6.17 is archived in the qtpatches.diff file. Change-Id: I5065435dc5a922d3f4a46eb37a23a4877dde2ee6 Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@theqtcompany.com>
* | Upgrade ANGLE to 2.1~99f075dade7cAndrew Knight2015-04-09485-27559/+38109
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This aligns with Chromium branch 2356. This version brings more complete OpenGL ES 3 support as well as various bug fixes and performance improvements. The following changes were made to earlier patches: -0000-General-fixes-for-ANGLE-2.1 Removed. All changes are now handled elsewhere. +0001-ANGLE-Improve-Windows-Phone-support Consolidated remaining parts from 0009/0010. +0002-ANGLE-Fix-compilation-with-MinGW Remaining issues from patch 0016. +0003-ANGLE-Fix-compilation-with-MSVC2010 Remaining issues from patch 0015. +0004-ANGLE-Dynamically-load-D3D-compiler-from-list Renamed from patch 0008. +0005-ANGLE-Add-support-for-querying-platform-device Renamed from patch 0013. -0004-Make-it-possible-to-link-ANGLE-statically-for-single Removed. Fixed by adding defines to project files. -0008-ANGLE-Dynamically-load-D3D-compiler-from-a-list-or-t Renamed to patch 0005. -0009-ANGLE-Support-WinRT Removed. Mostly fixed upstream; remaining parts in patch 0001. -0010-ANGLE-Enable-D3D11-for-feature-level-9-cards Removed. Mostly fixed upstream; remaining parts in patch 0001. -0012-ANGLE-fix-semantic-index-lookup Removed. Fixed upstream. -0013-ANGLE-Add-support-for-querying-platform-device Renamed to patch 0005. -0014-Let-ANGLE-use-multithreaded-devices-if-necessary Removed. No longer needed. -0015-ANGLE-Fix-angle-d3d11-on-MSVC2010 Moved remaining parts to patch 0003. -0016-ANGLE-Fix-compilation-with-MinGW-D3D11 Moved remaining parts to patch 0002. -0017-ANGLE-Fix-compilation-with-D3D9 Removed. Fixed upstream. -0018-ANGLE-Fix-releasing-textures-after-we-kill-D3D11 Removed. Fixed upstream. -0019-ANGLE-Fix-handling-of-shader-source-with-fixed-lengt Removed. Fixed upstream. -0020-ANGLE-Do-not-use-std-strlen Removed. Fixed upstream. -0020-ANGLE-Fix-compilation-with-MSVC2013-Update4 Removed. Fixed upstream. [ChangeLog][Third-party libraries] ANGLE was updated to Chromium branch 2356 (2.1~99f075dade7c). Change-Id: I32ccbfe95e10986bd94be7191dfd53445ea09158 Task-number: QTBUG-44815 Task-number: QTBUG-37660 Task-number: QTBUG-44694 Task-number: QTBUG-42443 Reviewed-by: Andrew Knight <qt@panimo.net> Reviewed-by: Friedemann Kleint <Friedemann.Kleint@theqtcompany.com>
* | forkfd: Fix compilation with older glibcThiago Macieira2015-04-011-3/+7
| | | | | | | | | | | | | | | | | | | | | | | | | | | | glibc 2.9 is required for pipe2 and version 2.7 for eventfd. Bionic added them to Android version 2.3.1, but I can't find a version macro. uclibc masquerades as glibc version 2.2, so this function won't be thread-safe with uclibc. Change-Id: Iee8cbc07c4434ce9b560ffff13cd3c3b63dd7e83 Reviewed-by: Rafael Roquetto <rafael.roquetto@kdab.com> Reviewed-by: Giuseppe D'Angelo <giuseppe.dangelo@kdab.com>
* | Merge remote-tracking branch 'origin/5.4' into 5.5Liang Qi2015-03-3131-6209/+7658
|\| | | | | | | | | | | | | | | | | Conflicts: mkspecs/android-g++/qmake.conf qmake/generators/unix/unixmake2.cpp src/gui/image/qimage_conversions.cpp Change-Id: Ib76264b8c2d29a0228438ec02bd97d4b97545be0
| * Upgrade PCRE to r1530Giuseppe D'Angelo2015-03-0631-6209/+7658
| | | | | | | | | | | | | | | | | | | | Include a couple of hard-to-backport fixes for stack/heap overflows and regressions from previous PCRE versions (cf. the changelog [1]) [1] http://vcs.pcre.org/viewvc/code/trunk/ChangeLog?view=markup Change-Id: I618c3633e9265ef1b9fd56b58e2c6c714335aae8 Reviewed-by: Lars Knoll <lars.knoll@digia.com>
* | Build bundled freetype as qt_helper_libKonstantin Ritt2015-03-273-69/+78
| | | | | | | | | | | | | | | | And thus do not disable warnings for the whole module when configured with -qt-freetype. Change-Id: I601a7c2990c8e3377531a28078db73800c138ec1 Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@theqtcompany.com>
* | Update bundled HarfBuzz to 0.9.40Konstantin Ritt2015-03-236-9/+17
| | | | | | | | | | Change-Id: I88c3608c3f15e39e89a00cfc23c184aebe7097e4 Reviewed-by: Lars Knoll <lars.knoll@digia.com>
* | Relicense forkfd under an MIT licenseThiago Macieira2015-03-233-85/+47
| | | | | | | | | | | | | | | | | | The difference between BSD and MIT is the need to reproduce the copyright in the documentation and the non-endorsement by a particular company (the name of which was stale in the forkfd code). Change-Id: Iee8cbc07c4434ce9b560ffff13cd0174934935e9 Reviewed-by: Rafael Roquetto <rafael.roquetto@kdab.com>
* | Stop doing s/HAVE_CONFIG_H/PCRE_HAVE_CONFIG_H/g in bundled PCRE sourcesKonstantin Ritt2015-03-2026-34/+31
| | | | | | | | | | | | | | | | | | As we build PCRE outside of QtCore, there is no need to do that anymore. Change-Id: Ib184966062f6afe7a449b860058e61e1ab2f7939 Reviewed-by: Giuseppe D'Angelo <giuseppe.dangelo@kdab.com> Reviewed-by: Lars Knoll <lars.knoll@digia.com> Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@theqtcompany.com>
* | Build bundled PCRE copy as qt_helper_libKonstantin Ritt2015-03-203-33/+51
| | | | | | | | | | | | | | We already have an infrastructure for that. Change-Id: I9110b74dcf7f93362586687da6f112e72cb663a4 Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@theqtcompany.com>
* | Introduce icu_dependency.priKonstantin Ritt2015-03-201-0/+13
| | | | | | | | | | | | | | Simply to hide the magic bahind the scenes. Change-Id: I69a159eb14712e68117f10e78745bdfbad46b6f2 Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@theqtcompany.com>
* | Apply Qt-specific changes to the bundled FreeTypeKonstantin Ritt2015-03-202-1/+3
| | | | | | | | | | | | | | | | Enable TT_CONFIG_OPTION_SUBPIXEL_HINTING instead of deprecated TT_CONFIG_OPTION_UNPATENTED_HINTING to improve hinted rendering. Change-Id: I63efae235a2abb1a9f4bbba5fec900670e1ffe9a Reviewed-by: Lars Knoll <lars.knoll@digia.com>
* | Update bundled FreeType to 2.5.5Konstantin Ritt2015-03-20610-139644/+45347
| | | | | | | | | | | | | | | | | | Removed everything, imported with help of import_from_tarball.sh script, and then added a pre-generated builds/unix/ftconfig.h Task-number: QTBUG-44648 Change-Id: Iea948e41f7761f1580382b3763d04c7a61383382 Reviewed-by: Lars Knoll <lars.knoll@digia.com>
* | forkfd: dynamically detect whether the Darwin waitid is brokenThiago Macieira2015-03-161-4/+31
| | | | | | | | | | | | | | | | | | | | | | | | | | The Darwin kernel that came with Mac OS X 10.7 has a broken implementation of waitid when passed a P_ALL first argument. It does tell us that there is a process that can be wait()ed, but does not fill in the siginfo_t structure. See commit 9931fa9df4cb96a4006a3390db64f87e3b5bc1a0 for more information. Change-Id: Iee8cbc07c4434ce9b560ffff13cafa4c88cdabd6 Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@theqtcompany.com>
* | Fix build of forkfd_qt.cpp on FreeBSDAlex Richardson2015-03-151-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | It no longer compiled after 614f37c8b559a722538c58dd1f65229cfca7d35b due to the following: - forkfd_qt.cpp set _XOPEN_SOURCE to 500 - It then includes qatomic.h which include sys/cdefs.h (the FreeBSD header that parses and sets _POSIX_C_SOURCE, _XOPEN_SOURCE and other macros) - sys/cdefs.h redefines _POSIX_C_SOURCE to 199506 due to _XOPEN_SOURCE's value - Several libc symbols expected to exist by libc++ are hidden due to _POSIX_C_SOURCE's value and the build fails Setting _XOPEN_SOURCE to 700 ensures that _POSIX_C_SOURCE is set to 200809 which is required for libc++ to work correctly Task-number: QTBUG-45006 Change-Id: Iac93220d19ca5ab9ba8ac61a79748252283c3c47 Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
* | forkfd: make only one of forkfd or spawnfd be compiledThiago Macieira2015-03-141-2/+4
| | | | | | | | | | | | | | We only ever use one, never both. Change-Id: Iee8cbc07c4434ce9b560ffff13caf94c05dba338 Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@theqtcompany.com>
* | Introduce src/3rdparty/freetype.pri for better maintenanceKonstantin Ritt2015-03-141-0/+67
| | | | | | | | | | | | | | | | This deduplicates qmake rules in platformsupport and platform plugins. Change-Id: Ie9c7d933c4433b96bf502e9753a12faa238b4569 Reviewed-by: Lars Knoll <lars.knoll@digia.com> Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@theqtcompany.com>
* | Update strto(u)ll.c to not produce a warning with -Wcast-qualThiago Macieira2015-03-123-13/+15
| | | | | | | | | | | | | | | | | | | | | | This only works if you #include from a C++ source, of course. The diff is updated to apply over the following sources: https://raw.githubusercontent.com/freebsd/freebsd/release/10.1.0/lib/libc/stdlib/strtoull.c https://raw.githubusercontent.com/freebsd/freebsd/release/10.1.0/lib/libc/stdlib/strtoll.c Change-Id: Ia0aac2f09e9245339951ffff13c8d5e2113d4f36 Reviewed-by: Lars Knoll <lars.knoll@digia.com>
* | Update bundled HarfBuzz copy to 0.9.39Konstantin Ritt2015-03-1122-639/+704
| | | | | | | | | | Change-Id: I48d130a1639fef3b8ec2de5622848eb56fadc1c7 Reviewed-by: Lars Knoll <lars.knoll@digia.com>
* | Bring harfbuzzng.pri naming in par with the other .pri-s in src/3rdpartyKonstantin Ritt2015-03-111-0/+0
| | | | | | | | | | Change-Id: I59bf922e3085a03a4c2c370f42418cb005456d3e Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@theqtcompany.com>
* | Fix const correctness in HarfbuzzThiago Macieira2015-03-111-2/+2
| | | | | | | | | | | | | | | | to_tis620 modifies cstr, so it mustn't be const. Change-Id: Ia0aac2f09e9245339951ffff13c8d77c886f767d Reviewed-by: Konstantin Ritt <ritt.ks@gmail.com> Reviewed-by: Lars Knoll <lars.knoll@digia.com>
* | Merge remote-tracking branch 'origin/5.4' into 5.5Frederik Gladhorn2015-02-243-12/+21
|\| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Conflicts: examples/xml/htmlinfo/simpleexample.html examples/xml/rsslisting/rsslisting.cpp qmake/generators/win32/msbuild_objectmodel.cpp src/3rdparty/harfbuzz-ng/src/hb-private.hh src/corelib/global/qlogging.cpp src/corelib/io/qstorageinfo_unix.cpp src/corelib/thread/qwaitcondition_unix.cpp src/gui/kernel/qguiapplication.cpp src/plugins/platforms/linuxfb/qlinuxfbintegration.cpp src/testlib/doc/src/qt-webpages.qdoc tests/auto/other/qaccessibility/tst_qaccessibility.cpp Change-Id: Ib272ff0bc30a1a5d51275eb3cd2f201dc82c11ff
| * fix non-git shadow buildsv5.4.1Oswald Buddenhagen2015-02-161-1/+1
| | | | | | | | | | | | | | | | | | | | the qt headers live in the source dir in this configuration. instead of hard-coding the path in the project file, use the correct module variable. this requires harfbuzz-ng to be built after corelib. Change-Id: If1b64b59a0939d3b5190331fcf70da566d4eeedd Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
| * Force Harfbuzz-NG to use the Qt atomics when built inside QtThiago Macieira2015-02-102-2/+21
| | | | | | | | | | | | | | | | | | | | | | | | For most cases, the GCC/Intel atomics (__sync functions) are fine, but there are some systems for which libgcc is incorrectly built (QNX 6.5.0). Additionally, this will allow Harfbuzz-NG to be supported in exactly the same systems as Qt itself. Task-number: QTBUG-43850 Change-Id: Ib53f57f70d4ad46863c45e74d60b0eb45ba9bd02 Reviewed-by: Lars Knoll <lars.knoll@digia.com> Reviewed-by: Marc Mutz <marc.mutz@kdab.com>
| * Remove #define inline from Harfbuzz-NGThiago Macieira2015-02-101-10/+0
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This code is C++ only. There isn't a single C++ compiler that fails to understand the "inline" keyword, since it's required by C++98. Any compiler older than C++98 is likely to choke on the template usage further down, so this isn't necessary. Moreover, the C++ standard says you cannot define macros. [lib.macro.names] says "Nor shall such a translation unit define macros for names lexically identical to keywords." -- technically, it's a promise that the Standard Library headers won't do it, the wording means that the entire translation unit won't do it, which implies no source can do it. MSVC complains about it: fatal error C1189: #error : The C++ Standard Library forbids macroizing keywords. Enable warning C4005 to find the forbidden macro. Change-Id: Ic2a0a03a0af47386e34bb698454a2040ef3f6a9d Reviewed-by: Simon Hausmann <simon.hausmann@theqtcompany.com> Reviewed-by: Olivier Goffart (Woboq GmbH) <ogoffart@woboq.com>
* | Updated BSD licensed file headersJani Heikkinen2015-02-152-2/+2
| | | | | | | | | | Change-Id: I6441ff931dbd33b698d762e6f6784898f3f60fe7 Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@theqtcompany.com>
* | [HarfBuzz/CoreText] Re-apply fix for QTBUG-38113Konstantin Ritt2015-02-141-2/+23
| | | | | | | | | | | | Task-number: QTBUG-38113 Change-Id: Icdedfdb240a2888e0a084a156db5598c033495de Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@theqtcompany.com>
* | Apply CoreText shaper changes from HarfBuzz upstreamKonstantin Ritt2015-02-141-249/+471
| | | | | | | | | | | | | | Task-number: QTBUG-38363 Task-number: QTBUG-39504 Change-Id: I754c19c131645d6e6e40092c1b820ccf896c74e7 Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@theqtcompany.com>
* | Update bundled HarfBuzz to 0.9.39Konstantin Ritt2015-02-127-30/+90
| | | | | | | | | | | | | | No significant changes, just stick to a released version. Change-Id: Ib9c4ce6f7da07727e890a4ac3265fc4574e89821 Reviewed-by: Konstantin Ritt <ritt.ks@gmail.com>
* | Update copyright headersJani Heikkinen2015-02-1125-51/+43
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Qt copyrights are now in The Qt Company, so we could update the source code headers accordingly. In the same go we should also fix the links to point to qt.io. Outdated header.LGPL removed (use header.LGPL21 instead) Old header.LGPL3 renamed to header.LGPL3-COMM to match actual licensing combination. New header.LGPL-COMM taken in the use file which were using old header.LGPL3 (src/plugins/platforms/android/extract.cpp) Added new header.LGPL3 containing Commercial + LGPLv3 + GPLv2 license combination Change-Id: I6f49b819a8a20cc4f88b794a8f6726d975e8ffbe Reviewed-by: Matti Paaso <matti.paaso@theqtcompany.com>
* | Merge remote-tracking branch 'origin/5.4' into devFrederik Gladhorn2015-02-101-1/+6
|\| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Conflicts: src/3rdparty/harfbuzz-ng/harfbuzz-ng.pro src/gui/image/qimage_conversions.cpp src/gui/opengl/qopenglextensions_p.h src/gui/text/qtextengine.cpp src/network/ssl/qsslsocket_openssl.cpp src/plugins/platforms/eglfs/qeglfshooks_stub.cpp src/plugins/platforms/eglfs/qeglfsscreen.cpp src/plugins/platforms/eglfs/qeglfswindow.cpp src/plugins/platforms/windows/qwindowsfontdatabase.cpp src/plugins/platforms/windows/qwindowsfontdatabase_ft.cpp src/plugins/platforms/windows/qwindowsnativeinterface.cpp src/plugins/platforms/windows/qwindowsscreen.cpp src/plugins/platforms/windows/qwindowswindow.cpp src/plugins/platforms/windows/qwindowswindow.h src/plugins/platforms/xcb/qxcbdrag.h src/widgets/itemviews/qabstractitemview.cpp src/widgets/kernel/qwidget.cpp src/widgets/util/qsystemtrayicon_p.h tests/auto/corelib/itemmodels/qsortfilterproxymodel/tst_qsortfilterproxymodel.cpp Thanks to Friedemann Kleint for resolving the qwindowsfontdatabase.cpp conflicts. Change-Id: I937232c30523d5121c195d947d92aec6f129b03e
| * Fix crash with multi threaded QFont/QTextEngine usageKonstantin Ritt2015-01-201-1/+6
| | | | | | | | | | | | | | | | | | | | | | Since we don't configure HB-NG via its configure script, we have to define all optional switchers we do care about by our own. Some of these switchers were missing in harfbuzz-ng.pro, causing HB-NG to be built with no threading support. Task-number: QTBUG-43850 Change-Id: I0944a68fe0bfae3306a3e6085e25704f0d0d0efc Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@theqtcompany.com>
* | Do not compile in dlldata.c or ia2_api_all_c.cJan Arve Saether2015-02-048-15781/+5
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | These files are only required for a COM server, but since the IAccessible2Proxy will actually be the effective server (inside our process). We just have to make sure we respond to the correct events, and reimplement the virtual functions as required. This is already done, so these files can be removed. Task-number: QTBUG-30838 Task-number: QTBUG-28645 Change-Id: Ic95101945bad263a6da63c08b3e47cc0c9d5734a Reviewed-by: Friedemann Kleint <Friedemann.Kleint@theqtcompany.com> Reviewed-by: Joerg Bornemann <joerg.bornemann@theqtcompany.com> Reviewed-by: Jan Arve Sæther <jan-arve.saether@theqtcompany.com> Reviewed-by: Frederik Gladhorn <frederik.gladhorn@theqtcompany.com>
* | update bundled sqlite to 3.8.8.2Mark Brand2015-02-032-88/+92
| | | | | | | | | | | | | | The "Fixed CE build of sqlite3" patch is preserved in this change, Change-Id: I2ffcf1666b1d6838ae1ddba76b836f962e118f8d Reviewed-by: Friedemann Kleint <Friedemann.Kleint@theqtcompany.com>
* | [HarfBuzz-NG] Fix build on WinRTKonstantin Ritt2015-01-252-12/+16
| | | | | | | | | | | | | | | | This adopts c26d5cf6ef50ea102cfb18eb2109f60bcdfdafb6 and moves some code around. Change-Id: Icbc1f4e0cfa6c6b994c3e5096cf1cc66bc0b32f9 Reviewed-by: Konstantin Ritt <ritt.ks@gmail.com>
* | Update bundled HarfBuzz-NG to 0.9.38Konstantin Ritt2015-01-2545-1796/+2344
| | | | | | | | | | | | | | | | | | | | | | Most important changes: * Fixes for Arabic, Hangul, Hebrew, Indic, Mandaic, Myanmar, and New Tai Lue shapers. * Fixed out-of-bounds access in Indic shaper. * Build and stability fixes, various optimizations. Change-Id: I4f0e32c017f62fe576bee41a430d3da6d571de80 Reviewed-by: Lars Knoll <lars.knoll@digia.com>
* | Add spawnfd for use where fork / forkfd can't be usedThiago Macieira2015-01-232-0/+76
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | In certain environments, using fork() is not recommended due to the need for an MMU. This commit adds support for those environments, by using posix_spawn. Limitations of this environment are: - we cannot reliably detect failure to exec (e.g. non-existing executable) - we cannot do setsid(); we do setpgrp(0, 0) instead - we cannot thread-safely chdir() to the requested dir Because of the former limitation, the QProcess unit tests that rely on failure-to-start error conditions are either skipped or marked as expected failures. There's a non-reliable solution that is implemented in a another commit. This change also makes it easier to transition the QNX builds to using fork(), which is supported from QNX Neutrino 6.6 and onwards. Change-Id: I5cb46abf2ef8783941525d35cc991f00d2bf2d58 Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
* | Fix forkfd on OS X 10.7 and earlierThiago Macieira2015-01-231-1/+12
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | dtruss logs show that the signal handler does enter and is active, since it does the first waitid() call, but then returns immediately: waitid(0x0, 0x0, 0x7FFF62D7C468) = 0 0 sigreturn(0x7FFF62D7C9A0, 0x1E, 0x0) = 0 Err#-2 Since there was no error return, we conclude that si_pid was zero on return. Source code for OS X 10.7 confirms that si_pid is set to zero unconditionally, which is rather stupid: http://fxr.watson.org/fxr/source/bsd/kern/kern_exit.c?v=xnu-1699.24.8#L1330 This is fixed for OS X 10.8: http://fxr.watson.org/fxr/source/bsd/kern/kern_exit.c?v=xnu-2050.18.24#L1399 Without that information, we have to scan each child anyway, so just disable the waitid() solution on OS X. This is a "hammer" solution which will get forkfd working. We can later try and detect at runtime whether waitid() is working. Change-Id: Ic5d393bfd36e48a193fcffff13bb584927cdeafe Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@theqtcompany.com>
* | Fix compilation of non-waittid forkfd() outside of LinuxThiago Macieira2015-01-231-2/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | POSIX.1 does not guarantee the presence of the si_utime and si_stime members. So instead of trying to set those members to zero, ask the compiler to initialize everything for us. This was found on OS X when HAVE_WAITTID was removed. forkfd.c:192:11: error: no member named 'si_utime' in '__siginfo' forkfd.c:193:11: error: no member named 'si_stime' in '__siginfo' Change-Id: Ic5d393bfd36e48a193fcffff13b90aa6ccf592ae Reviewed-by: Rafael Roquetto <rafael.roquetto@kdab.com> Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@theqtcompany.com>
* | Use waitid with WNOWAIT in forkfdThiago Macieira2015-01-231-2/+88
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The previous implementation required one syscall per child we're waiting on to see which one exited. That means the algorithm was O(n). This implementation uses WNOWAIT to find out which child exited and then goes straight to that one. So it's O(1) on the number of children, but runs 2 * number_of_children_that_exited + 1 syscalls, assuming there are no race conditions with other threads. If there are or if a child not started by forkfd exits, we'll still iterate over each child we're managing to see which one exited. It modifies the existing code so that it will do a waitid() with WNOWAIT to check on the status of the child: if the child has exited, we'll try to lock the entry so only one thread will do the final wait(). In the case we read the PID, then the child exited, was reaped by another thread, the PID got recycled and that child exited again, we'll fail to lock the ProcessInfo entry so no harm comes. If by an absurd coincidence this other child was started by forkfd() and its ProcessInfo is exactly the one we are looking at, then we'll succeed in locking but that's a benign race: we'll do what the other thread was trying to do and the other thread will give up. Future improvements to the algorithm are discussed in the Gerrit change. Change-Id: Ie74836dbc388cd9b3fa375a41a8d944602a32df1 Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
* | QSystemTrayIcon uses D-Bus org.freedesktop.Notifications on LinuxShawn Rutledge2015-01-231-0/+37
| | | | | | | | | | | | | | | | | | | | | | | | If StatusNotifier is working, then QSystemTrayIcon::showMessage() will send notifications using the org.freedesktop.Notifications protocol. https://developer.gnome.org/notification-spec/ Task-number: QTBUG-4011 Task-number: QTBUG-31762 Change-Id: Ia1925ec3dd81b1b7b8f3b490b6364aaf8f93f395 Reviewed-by: Dmitry Shachnev <mitya57@gmail.com> Reviewed-by: Jørgen Lind <jorgen.lind@theqtcompany.com>
* | update bundled sqlite to 3.8.8.1Mark Brand2015-01-223-1918/+3999
| | | | | | | | | | | | | | | | | | | | | | | | The "Fixed CE build of sqlite3" patch is preserved in this change, which causes sqlite's own localtime implementation to be used for wince. This is extended by #undef HAVE_LOCALTIME_S to override the new assumption that localtime_s is available on wince and should be used. Also, removed HAVE_LOCALTIME_S=0 since this must now be undefined instead of 0. Change-Id: I418e138ddc47d1bfbb80de0f4e4205a79c425f10 Reviewed-by: Mark Brand <mabrand@mabrand.nl>
* | QSystemTrayIcon uses D-Bus StatusNotifier on Linux when possibleShawn Rutledge2015-01-221-0/+96
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Implementing org.kde.StatusNotifier DBus interface http://www.freedesktop.org/wiki/Specifications/StatusNotifierItem/ as well as org.canonical.dbusmenu for the limited purpose of showing the tray icon's context menu. If a desktop environment (such as KDE or Unity) has a StatusNotifierWatcher listening, then tray icon information is sent to be displayed by the tray implementation instead of being rendered directly in an XEmbed window. This is necessary because some modern tray implementations no longer provide XEmbed "hosting". [ChangeLog][QPA][Xcb] QSystemTrayIcon uses StatusNotifier D-Bus protocol when the desktop environment supports it Task-number: QTBUG-31762 Done-with: Marco Martin <mart@kde.org> Change-Id: I3b1f744d621eefc7e9c61d1469460ebfcc77fc54 Reviewed-by: Jørgen Lind <jorgen.lind@theqtcompany.com> Reviewed-by: Dmitry Shachnev <mitya57@gmail.com>