Compare commits

...

692 Commits
f8 ... master

Author SHA1 Message Date
Rex Dieter 1d3b52daaf build only qtscript using -O1 (#1580047) 2018-05-19 20:19:00 -05:00
Rex Dieter b8bea37602 workaround qtscript/gcc8 bug (#1580047) 2018-05-19 15:58:14 -05:00
Rex Dieter 64a2aa0bfc -devel: Requires: gcc-c++
qmake-based projects default to using gcc-c++, and since
these are largely legacy apps/packages, let's minimize churn
by adding the dep here
2018-03-07 12:28:24 -06:00
Rex Dieter de7f39d5ed BR: gcc-c++, use %license, .spec cosmetics 2018-02-20 16:02:13 -06:00
Rex Dieter ccfeb6a608 qt: Fedora build flags only partially applied (#1543887) 2018-02-15 08:32:21 -06:00
Igor Gnatenko e73d7b5927
Remove %clean section
None of currently supported distributions need that.
Last one was EL5 which is EOL for a while.

Signed-off-by: Igor Gnatenko <ignatenkobrain@fedoraproject.org>
2018-02-14 07:35:27 +01:00
Igor Gnatenko 1e12c4d637 Remove BuildRoot definition
None of currently supported distributions need that.
It was needed last for EL5 which is EOL now

Signed-off-by: Igor Gnatenko <ignatenkobrain@fedoraproject.org>
2018-02-14 00:29:26 +01:00
Igor Gnatenko 3fafaeea11
Escape macros in %changelog
Reference: https://lists.fedoraproject.org/archives/list/devel@lists.fedoraproject.org/thread/Y2ZUKK2B7T2IKXPMODNF6HB2O5T5TS6H/
Signed-off-by: Igor Gnatenko <ignatenkobrain@fedoraproject.org>
2018-02-09 09:05:53 +01:00
Kevin Kofler 56ab7ae00a Fix openssl-1.1 FTBFS with -openssl-linked 2018-01-05 18:11:08 +01:00
Kevin Kofler 973f90b5f8 fix build with ICU >= 59, from OpenSUSE (Fabian Vogt) 2018-01-05 13:20:35 +01:00
Kevin Kofler 16cf98a681 update URL to use HTTPS 2018-01-05 12:14:11 +01:00
Kevin Kofler dc6c779515 Rediff the openssl-1.1 patch against unpatched Qt
(The Debian patch only applies on top of their no-SSL3 patch.)
2018-01-05 12:14:02 +01:00
Kevin Kofler d749d06c3e build with OpenSSL 1.1.x, from Debian (Gert Wollny, Dmitry Eremin-Solenikov)
* Fri Jan 05 2018 Kevin Kofler <Kevin@tigcc.ticalc.org> - 1:4.8.7-34
- build with OpenSSL 1.1.x, from Debian (Gert Wollny, Dmitry Eremin-Solenikov)
2018-01-05 11:47:16 +01:00
Than Ngo 28433078d3 merged Cleanup spec file conditionals from tdawson 2017-10-26 17:02:24 +02:00
Rex Dieter 6383eb55e8 add awol patch 2017-10-23 14:51:49 -05:00
Rex Dieter e288b7ca00 BR: mariadb-connector-c-devel (f28+, #1494085)
backport mysql driver mariadb fix (QTBUG-63108)
2017-10-23 14:15:55 -05:00
Fedora Release Engineering ecf530486e - Rebuilt for https://fedoraproject.org/wiki/Fedora_27_Binutils_Mass_Rebuild 2017-08-03 07:16:56 +00:00
Fedora Release Engineering 276c90a5b7 - Rebuilt for https://fedoraproject.org/wiki/Fedora_27_Mass_Rebuild 2017-07-27 12:40:51 +00:00
Than Ngo 37a2aba837 fixed bz#1409600, stack overflow in QXmlSimpleReader, CVE-2016-1004 2017-07-11 10:17:14 +02:00
Fedora Release Engineering ec0ac4149e - Rebuilt for https://fedoraproject.org/wiki/Fedora_26_27_Mass_Rebuild 2017-05-15 20:47:27 +00:00
Rex Dieter 430cfa020a and related Provides: bundled(clucene09) 2017-03-21 08:21:11 -05:00
Rex Dieter 28169437c2 drop system_clucene on f26+ (clucene09 is FTBFS, #1424046) 2017-03-21 07:53:41 -05:00
Fedora Release Engineering d5717cd446 - Rebuilt for https://fedoraproject.org/wiki/Fedora_26_Mass_Rebuild 2017-02-11 11:18:07 +00:00
Rex Dieter a1e7be54b8 update QTBUG-22829.patch to use _SYS_SYSMACROS_H_OUTER instead (#1396755) 2016-12-09 05:18:46 -06:00
Rex Dieter d9b191b9ec update QTBUG-22829.patch to define _SYS_SYSMACROS_H (#1396755) 2016-12-08 12:33:58 -06:00
Rex Dieter d30cfdc894 namespace QT_VERSION_CHECK to workaround major/minor being pre-defined (#1396755) 2016-12-08 12:17:29 -06:00
Rex Dieter 736ab5e8a1 (re)enable mysql support (#1400233) 2016-12-07 05:58:48 -06:00
Orion Poplawski 46567fbafb Add additional workarounds for boost/glib parsing (#1396755) 2016-12-01 21:15:05 -07:00
Rex Dieter c6f3e912b2 1:4.8.7-21
- BR: compat-openssl10-devel, restore -openssl-linked (#1328659)
- -no-sql-mysql (#1400233)
2016-11-30 12:37:52 -06:00
Rex Dieter 0c24e255bb FTBFS openssl-1.1, bootstrap using -no-openssl (#1400196) 2016-11-30 11:19:32 -06:00
Rex Dieter 2c45da7842 FTBFS firebird 2016-11-30 10:59:45 -06:00
Rex Dieter 4876d24d89 rebuild (openssl) 2016-11-30 10:46:23 -06:00
Rex Dieter 73c2f55e30 load openssl libs dynamically, f26+ (#1328659) 2016-09-29 07:26:34 -05:00
Rex Dieter 8d832b1c1e qmake-qt4 adds '-std=gnu++98' flag to compiler flags (#1349951) 2016-06-26 14:14:48 -05:00
Rex Dieter 61fd11db0d %build: add QT_BUILD_KEY verification
hopefully should help avoid future regressions
2016-04-20 10:26:26 -05:00
Rex Dieter 7963cb35aa %build: drop --buildkey g++-4 (#1327360)
Turns out this only introduced *yet another* incompatible buildkey,
and is used as a buildkey prefix only resulting in something silly
like: g++-4 x86_64 linux g++-4 full-config

So, drop this madness, and rely on patching only for now.
2016-04-20 10:00:42 -05:00
Rex Dieter 59915e4ad9 -devel-private: Provides: private-devel
Yay for (in)consistency
2016-04-17 11:32:00 -05:00
Rex Dieter 14c5aa506e devel: Provides: qt(4)-private-devel, use epoch in -static Provides 2016-04-17 11:28:09 -05:00
Rex Dieter 87bb4a5751 %build: -buildkey g++-4 (#1327360) 2016-04-15 07:23:42 -05:00
Rex Dieter 593e8b6cfd Fix build on MIPS (#1322524) 2016-04-05 08:52:47 -05:00
Rex Dieter 44cdae5230 respin boost/moc patch for boost-1.60 (BOOST_TYPE_TRAITS_HPP) 2016-03-16 17:41:19 -05:00
Rex Dieter 92af7f7a88 x11: back to Recommends: sni-qt (#1317481) 2016-03-14 13:17:59 -05:00
Rex Dieter 2e4d8b085b x11: Requires: sni-qt if plasma-workspace, f23+ 2016-03-12 11:06:56 -06:00
Rex Dieter 8657516756 x11: Recommends: sni-qt, f24+
Alternatively, can consider adding
Supplements: qt
to sni-qt, but I don't think that helps ensure that
sni-qt.i686 gets pulled in for qt.i686 or not
2016-03-11 08:11:25 -06:00
Rex Dieter be95107ea1 rebuild (openssl) 2016-03-01 12:13:10 -06:00
Than Ngo 6d0df2a0a4 - fix alsa version check for version >= 1.1.x
- fix webkit check using gcc6
2016-02-10 17:09:21 +01:00
Than Ngo 8cf9135957 - fix build issue with gcc6 2016-02-09 14:23:17 +01:00
Than Ngo 231d286d41 - fix build issue with gcc6 2016-02-09 13:53:50 +01:00
Than Ngo a846b60884 fix build issue with gcc6 2016-02-04 13:17:11 +01:00
Rex Dieter 6f7261dc5f macros.qt4 : cleanup, introduce %_qt4_optflags, %_qt4_ldflags, %_qt4_qmake_flags 2016-02-02 18:04:57 -06:00
Rex Dieter 404cd30436 inject_optflags for f23 2016-02-02 14:37:10 -06:00
Rex Dieter 541cc02c83 don't inject $RPM_OPT_FLAGS/$RPM_LD_FLAGS into qmake defaults (#1279265) 2015-12-29 09:33:04 -06:00
Rex Dieter 6dd80f3b69 backport optimization (from qt5-qtbase) 2015-12-29 09:28:51 -06:00
Rex Dieter 210022372e devel: Requires: redhat-rpm-config (#1279265) 2015-11-25 08:14:17 -06:00
Richard Hughes 33f92bd1af Remove no longer required AppData file 2015-09-18 12:04:15 +01:00
Rex Dieter d6ee4edd91 macros.qt4: fix qmake_qt4 so "FOO=BAR %qmake_qt4" works as expected 2015-06-16 10:39:23 -05:00
Rex Dieter 88e9dfbe4b typo (missing %endif) 2015-06-09 10:58:18 -05:00
Rex Dieter 928a0668ca drop -reduce-relocations (f22+) 2015-06-09 10:57:32 -05:00
Rex Dieter 0537617a55 qt-4.8.7 (final) 2015-05-26 11:13:56 -05:00
Rex Dieter b6924d7787 qt-4.8.7-rc2 2015-05-10 14:19:12 -05:00
Rex Dieter f83530ad62 backport: data corruption in QNetworkAccessManager 2015-05-05 13:21:40 -05:00
Rex Dieter a8f6e65f6a 1:4.8.6-29
- introduce -common noarch subpkg, should help multilib issues
- -doc: fix %description (doesn't include assistant)
2015-04-30 14:19:31 -05:00
Than Ngo 63cda2bb9f bz#1210677, CVE-2015-1860 CVE-2015-1859 CVE-2015-1858 2015-04-13 16:21:57 +02:00
Kalev Lember 74e790ecfb Fix the build harder
Commit 8b8b6f7520 added appdata to the end
of the %pre script; this moves it to %install where it belongs.
2015-03-26 22:48:28 +01:00
Kalev Lember b3faea3dcf Fix the build 2015-03-26 21:27:16 +01:00
Richard Hughes 8b8b6f7520 Add an AppData file for the software center 2015-03-26 16:41:59 +00:00
Rex Dieter 49c310bbc0 macros.qt4: fix _qt4_evr macro (missing : after epoch) 2015-03-20 08:06:45 -05:00
Rex Dieter aeb79bb543 DoS vulnerability in the BMP image handler (CVE-2015-0295) 2015-02-27 08:28:21 -06:00
Rex Dieter c6c5987440 remove error/debugging 2015-02-16 09:42:31 -06:00
Rex Dieter 1244f6a379 more gcc5 detection fixes, in particular, ensure same QT_BUILD_KEY as gcc4 for now 2015-02-16 08:37:08 -06:00
Than Ngo b888d1c64e fix syntax error 2015-02-16 14:53:01 +01:00
Rex Dieter d131ab162f 1:4.8.6-23
- Qt: FTBFS with gcc5 (#1192464)
- Make Adwaita the default theme for applications running in the GNOME DE (#1192453)
2015-02-13 07:04:46 -06:00
Rex Dieter b0bb73c355 rebuild (gcc5) 2015-02-11 09:25:59 -06:00
Rex Dieter 7d0674cfd8 refresh boost/moc patch (QTBUG-22829) 2015-01-29 11:15:53 -06:00
Rex Dieter a9071e838a only run %pre on upgrades 2015-01-18 07:05:27 -06:00
Rex Dieter a14f58dfd1 fix %pre scriptlet (#1183299) 2015-01-18 07:02:03 -06:00
Rex Dieter 378ebbd0fa fix changelog 2015-01-17 18:59:19 -06:00
Rex Dieter 19688b12e8 qtchooser: /etc/xdg/qthcooser/4.conf alternative instead (of qt4.conf) 2015-01-17 18:58:32 -06:00
Rex Dieter 6539b63734 system_clucene for f20+ only 2014-12-02 13:26:57 -06:00
Rex Dieter 76bc242110 system_clucene on el7+ too 2014-12-02 12:10:06 -06:00
Rex Dieter 773cae613c omit previously-overlooked webkit bits (#1168259) 2014-11-26 11:11:43 -06:00
Rex Dieter e272059ea4 Broken qmake_qt4 in /usr/lib/rpm/macros.d/macros.qt4 (#1161927) 2014-11-09 07:55:58 -06:00
Rex Dieter cd4a130f36 macros.qt4: standalone, improved %qmake_qt4 macro (sync'd with qt5 version) 2014-11-03 08:39:45 -06:00
Kevin Kofler 279ddc7e2b sync system-clucene patch from qt5-qttools (some QDir::mkpath in QtCLucene)
* Sat Nov 01 2014 Kevin Kofler <Kevin@tigcc.ticalc.org> - 1:4.8.6-15
- sync system-clucene patch from qt5-qttools (some QDir::mkpath in QtCLucene)
2014-11-01 15:21:47 +01:00
Kevin Kofler 53156e5052 build against the system clucene09-core (same patch as for qt5-qttools)
* Sun Oct 26 2014 Kevin Kofler <Kevin@tigcc.ticalc.org> - 1:4.8.6-14
- build against the system clucene09-core (same patch as for qt5-qttools)
2014-10-26 03:58:06 +01:00
Rex Dieter e47878cf58 fix case syntax 2014-09-16 09:59:53 -05:00
Rex Dieter fc81bf09c8 qmlviewer-qt4 wrapper 2014-09-16 09:03:54 -05:00
Rex Dieter 75522bdd44 drop no-longer-needed ppc64le-support.patch 2014-09-16 08:58:19 -05:00
Rex Dieter b83b6ab902 1:4.8.6-13
- move qmlviewer to -devel
- pull in some upstream fixes
2014-09-16 08:39:45 -05:00
Peter Robinson 9969c7af3a - Rebuilt for https://fedoraproject.org/wiki/Fedora_21_22_Mass_Rebuild 2014-08-17 22:42:02 +00:00
Kevin Kofler 0a8142156e drop Phonon-GStreamer0.10 support from qtconfig-qt4 on F21+ (#1123112)
* Tue Aug 12 2014 Kevin Kofler <Kevin@tigcc.ticalc.org> - 4.8.6-11
- drop Phonon-GStreamer0.10 support from qtconfig-qt4 on F21+ (#1123112)
2014-08-13 00:22:41 +02:00
Rex Dieter d0d0880c8d simplify/unconditionally-use alternatives, re-enable demos/examples 2014-07-23 10:12:30 -05:00
Rex Dieter 901196ce45 note disabled demos/examples for test build 2014-07-23 09:39:12 -05:00
Rex Dieter 3bf3ca0677 4.8.6-10
- use alternatives to fix qtchooser conf's in non-basearch multilib case (#1122316)
- fix build when demos/examples are disabled
2014-07-23 09:37:38 -05:00
Rex Dieter b7068c52dd rebuild (for pulseaudio, bug #1117683) 2014-07-17 07:24:47 -05:00
Kevin Kofler 44863ece3d swap the QTBUG-34614 and QTBUG-37380 patches 2014-06-07 03:42:45 +02:00
Kevin Kofler 83f139ea97 Revert "rebase/unfuzz QTBUG-34614 patch"
It turns out I just need to swap the QTBUG-34614 and QTBUG-37380 patches.

This reverts commit c3497d8517.
2014-06-07 03:39:24 +02:00
Kevin Kofler c3497d8517 rebase/unfuzz QTBUG-34614 patch 2014-06-07 02:42:26 +02:00
Kevin Kofler 0da40876de apply proposed fixes for QTBUG-34614,37380,38585 for LibreOffice (#1105422)
* Fri Jun 06 2014 Kevin Kofler <Kevin@tigcc.ticalc.org> 4.8.6-9
- apply proposed fixes for QTBUG-34614,37380,38585 for LibreOffice (#1105422)
2014-06-07 00:47:52 +02:00
Rex Dieter 0aff623ddf backport selected upstream commits...
- Fix visual index lookup (QTBUG-37813)
- RGB30 fix (QTBUG-25998,#1018566)
- QDBus comparison
2014-06-03 17:28:09 -05:00
Rex Dieter b3dff4a11c gcc should be fixed, drop workaround (#1091482) 2014-05-07 06:22:42 -05:00
Rex Dieter b67fe78b00 try -fno-devirtualize workaround fc21+ (#1091482, gcc #60965) 2014-05-05 15:14:18 -05:00
Rex Dieter 1cbbe3b4b8 4.8.6-5
- drop f21 gcc-4.9 workarounds (they didn't work)
- omit qt-cupsEnumDests.patch, again, pending more testing (#980952)
2014-05-05 12:32:56 -05:00
Rex Dieter 2d4235fd76 fno-tree-vrp (#1091482) 2014-04-25 21:23:24 -05:00
Rex Dieter a7b8fcade0 try -fno-delete-null-pointer-checks to workaround bug #1091482 2014-04-25 19:09:37 -05:00
Rex Dieter 1a53e519d2 DoS vulnerability in the GIF image handler (QTBUG-38367) 2014-04-24 16:13:19 -05:00
Rex Dieter b8b3815657 4.8.6 (final) 2014-04-24 10:41:29 -05:00
Rex Dieter 26faeda12f 4.8.6-rc2 2014-04-16 09:58:48 -05:00
Rex Dieter 5d22bd8e4a fix changelog style 2014-04-02 21:08:02 -05:00
Rex Dieter 62a9fa64e9 restore missing icon sources 2014-04-02 17:02:42 -05:00
Rex Dieter d3eb2bd609 omit references to qtwebkit-aarch64.patch 2014-04-02 14:02:45 -05:00
Rex Dieter 768c812173 respin qt-aarch64.patch (including webkit fixes) 2014-04-02 13:22:11 -05:00
Rex Dieter 8ec4a9e6e1 4.8.6-0.1.rc1
- 4.8.6-rc1
- qt-aarch64.patch still needs some love
2014-04-02 13:04:42 -05:00
Rex Dieter 90f12d395b support ppc64le arch (#1081216) 2014-03-26 15:34:59 -05:00
Kevin Kofler f9646562e3 fix QMAKE_STRIP handling (#1074041)
* Sat Mar 08 2014 Kevin Kofler <Kevin@tigcc.ticalc.org> 4.8.5-23
- fix QMAKE_STRIP handling (#1074041)
2014-03-08 02:18:54 +01:00
Rex Dieter e88754810c respin mysql_config patch 2014-03-07 10:13:14 -06:00
Rex Dieter 81fc93291c restore qt-cupsEnumDests.patch (#980952) 2014-03-07 09:26:18 -06:00
Rex Dieter b60256a7f5 drop abandoned patch 2014-03-07 09:20:35 -06:00
Rex Dieter 9f99edcb8d systemtrayicon plugin support (from kubuntu) 2014-03-06 14:27:31 -06:00
Rex Dieter 14d638f8c2 cleanup QMAKE_STRIP handling 2014-02-18 12:39:20 -06:00
Rex Dieter e0433bd8b1 rebuild (libicu) 2014-02-12 15:16:04 -06:00
Rex Dieter 46be60d41a better %rpm_macros_dir handling 2014-02-01 12:48:09 -06:00
Rex Dieter eaee77f0fe macros.qt4: ++%_qt4_examplesdir (keep %_qt4_examples around for compatibility) 2014-01-26 18:57:46 -06:00
Kevin Kofler 4610e175f8 drop "Discover printers shared by CUPS 1.6 (#980952)" (#1054312, #980952#c18)
* Fri Jan 17 2014 Kevin Kofler <Kevin@tigcc.ticalc.org> - 4.8.5-15
- drop "Discover printers shared by CUPS 1.6 (#980952)" (#1054312, #980952#c18)
2014-01-17 23:38:04 +01:00
Kevin Kofler 97c30bc66d fix QTBUG-35459 and fix QTBUG-35460
* Mon Jan 13 2014 Kevin Kofler <Kevin@tigcc.ticalc.org> - 4.8.5-14
- fix QTBUG-35459 (too low entityCharacterLimit=1024 for CVE-2013-4549)
- fix QTBUG-35460 (error message for CVE-2013-4549 is misspelled)
2014-01-13 21:01:51 +01:00
Rex Dieter e84fc36353 Add support for aarch64 (#1046360) 2014-01-03 07:01:58 -06:00
Rex Dieter f6916bdbaf omit tab from changelog 2013-12-05 09:48:49 -06:00
Rex Dieter 3d9b30e780 XML Entity Expansion Denial of Service (CVE-2013-4549) 2013-12-05 09:45:54 -06:00
Rex Dieter 8596660aef Discover printers shared by CUPS 1.6 (#980952) 2013-10-09 11:43:39 -05:00
Dan Vrátil 4c6ad9a444 drop revert of the PostgreSQL driver patch (fixed in Akonadi 1.10.3) 2013-10-07 15:02:39 +02:00
Rex Dieter 58e8365063 rework %_bindir %_qt4_bindir links to be more qtchooser friendly 2013-10-03 09:23:45 -05:00
Rex Dieter db52875339 Keyboard shortcuts doesn't work for russian keyboard layout (#968367, QTBUG-32908) 2013-09-12 10:05:37 -05:00
Rex Dieter 9331d5d829 reset Release 2013-08-26 08:49:06 -05:00
Jon Ciesla ae0db1fa9a libmng rebuild 2013-08-26 08:40:36 -05:00
Rex Dieter 53cc9c20f2 make buildable on el6 2013-08-20 10:46:54 -05:00
Rex Dieter e41de7f53a qt4 rpm macros not found by rpm in F18 (#994739)
%_rpmconfigdir is defined, but non-functional on f18.
Lovely
2013-08-08 11:20:32 -05:00
Rex Dieter fab82a63e1 enable qtchooser support 2013-07-30 11:04:32 -05:00
Rex Dieter fae7ccca9e revert upstream postgresql driver changes wrt escaping (QTBUG-30076) 2013-07-30 10:29:56 -05:00
Rex Dieter d504b2ce4b drop qtscript(javascriptcore) debuginfo patch, savings not significant 2013-07-11 17:38:13 -05:00
Rex Dieter 7ff9f93fee reduce debuginfo in qtwebkit(webcore) and qtscript(javascriptcore) 2013-07-11 15:10:47 -05:00
Rex Dieter c1a09759e2 fix use of %dbus macro, fix a typo 2013-07-02 19:02:56 -05:00
Rex Dieter a5d326f0fd changed mind, go with qt-qtdbusviewer subpkg name...
for (more) consistency
2013-07-02 17:46:27 -05:00
Rex Dieter 49c37326ea typo 2013-07-02 17:30:02 -05:00
Rex Dieter 92bb5a34da qdbusviewer subpkg (#968336) 2013-07-02 17:29:06 -05:00
Rex Dieter dccfd199ad 4.8.5 (final) 2013-07-02 16:00:21 -05:00
Rex Dieter b442626fe7 4.8.5-0.6.rc2
- trim changelog
- cleaner rpm_macros_dir handling
2013-06-26 09:33:11 -05:00
Rex Dieter 088b772329 drop multilib portion from qt_plugin_path.patch 2013-06-21 07:15:03 -05:00
Rex Dieter 085037d44f (re)add kde4/multilib QT_PLUGIN_PATH 2013-06-18 13:38:18 -05:00
Rex Dieter 81d355e657 4.8.5-rc2 2013-06-10 07:24:00 -05:00
Rex Dieter f5fac42c88 fix/escape macro in changelog 2013-06-10 06:57:41 -05:00
Rex Dieter 2ee42c4afb RFE: Add %qmake_qt4 macro (#870199) 2013-06-10 06:57:07 -05:00
Rex Dieter e2a785dc0c missing sources 2013-06-10 05:13:26 -05:00
Rex Dieter ace1f8cdec 4.8.5-RC 2013-06-09 22:15:20 -05:00
Rex Dieter 1dd2314b97 drop QTBUG-27809 candidate fix, causes regressions (#968794) 2013-05-30 12:11:11 -05:00
Than Ngo 3e52db65d9 QTBUG-27809, fix multiple calls to QDBusPendingReply::waitForFinished on separate objects 2013-05-28 14:32:17 +02:00
Than Ngo 2d55e14904 Desktop file sanity, drop key "Encoding", it's deprecated 2013-04-25 11:52:08 +02:00
Rex Dieter a4ee2e1f92 add comment to justify use of --vendor=qt4 2013-04-23 15:39:37 -05:00
Rex Dieter 9bdae7df96 fix changelog 2013-04-19 22:39:51 -05:00
Rex Dieter 69bb144da5 4.8.4-16
- update URL (#859286)
- include qdbusviewer .desktop/icon
- .desktop files: +mime scriptlets, +GenericName keys
2013-04-19 22:39:20 -05:00
Rex Dieter 553b0aeb5a pull in a few more upstream fixes 2013-03-20 14:16:42 -05:00
Rex Dieter 6ee236bc94 rebase to latest QTBUG-29082 patch 2013-02-11 12:29:12 -06:00
Rex Dieter 9249484c37 SIGSEGV when called from QMetaObject::metaCall (QTBUG-29082, kde#311751) 2013-02-11 11:58:18 -06:00
Rex Dieter 0804463e9d qmake: add support for pkgconfig Requires.private 2013-02-11 07:39:10 -06:00
Rex Dieter 22f92f680b add more moc/boost workarounds, thanks boost-1.53 (QTBUG-22829) 2013-02-11 07:11:51 -06:00
Rex Dieter 8637627296 add comment about new moc/boost-1.53 fun 2013-02-10 18:33:59 -06:00
Than Ngo f24f81be1c backport: fix security flaw was found in the way QSharedMemory class, CVE-2013-0254 2013-02-05 16:01:07 +01:00
Rex Dieter bdf697bb19 rebuild (icu) 2013-01-26 11:26:51 -06:00
Rex Dieter 0b15e7187f Revert "enable qtchooser support"
This reverts commit fe43d9b86a.
2013-01-25 09:45:01 -06:00
Rex Dieter fe43d9b86a enable qtchooser support
All this does is ship a qtchooser conf file.  woo.
2013-01-24 12:17:55 -06:00
Rex Dieter 36205006b4 make qtchooser support non-conflicting 2013-01-24 12:14:01 -06:00
Adam Tkac 01e166b0c5 Rebuild due to "jpeg8-ABI" feature drop
Signed-off-by: Adam Tkac <atkac@redhat.com>
2013-01-21 16:38:02 +01:00
Rex Dieter fab5de59f9 fix qtchooser logic error
make sure postfix-less binary name exists in %%_qt4_bindir too
2013-01-09 16:56:04 -06:00
Rex Dieter d20387edac move qdbusviewer inside conditional too 2013-01-09 16:06:08 -06:00
Rex Dieter f9755f3ab4 cleanup dir creation/ownership 2013-01-09 15:48:06 -06:00
Rex Dieter 3ebc9a90b4 move rcc,pixeltool into %%files conditional too 2013-01-09 14:53:38 -06:00
Rex Dieter 8dbbe2f056 add qtchooser support (disabled by default) 2013-01-09 13:31:30 -06:00
Rex Dieter 7ee6d03861 blacklist unauthorized SSL certificates by Türktrust 2013-01-07 07:06:48 -06:00
Rex Dieter b21e1f5472 switch to upstream moc/boost patch 2013-01-07 07:01:22 -06:00
Rex Dieter 809cb90014 QGtkStyle was unable to detect the current GTK+ theme (#702493, QTBUG-5545)) 2013-01-04 11:41:58 -06:00
Rex Dieter 23dec1f185 QSslSocket may report incorrect errors when certificate verification fails 2013-01-04 07:00:09 -06:00
Rex Dieter ad937db88f x11: %exclude %{_qt4_plugindir}/designer/libqwebview.so 2013-01-03 11:13:06 -06:00
Rex Dieter c56c2fc84a fix when not building with -webkit 2012-12-16 16:23:30 -06:00
Rex Dieter a67cb026ec designer-plugin-webkit subpkg (#887501)
and shuffle around scriptlets to be near their respective %files
2012-12-16 16:03:17 -06:00
Rex Dieter 21b133a841 fix/prune/changelog 2012-12-15 22:18:51 -06:00
Rex Dieter 9a85ff74dd 4.8.4 2012-11-29 11:09:51 -06:00
Than Ngo 8e4c02d46d - add poll support to fix QAbstractSocket errors with more than
1024 file descriptors, thanks Florian for the patch
2012-10-31 13:20:22 +01:00
Rex Dieter 9e4d52712f Crash in Qt script (QTBUG-27322) 2012-10-24 09:58:42 -05:00
Rex Dieter 22ea7613bd fix/respin qdevice_pri patch 2012-10-23 16:11:37 -05:00
Rex Dieter 0e56548e70 QDir::homePath() should account for an empty $HOME (QTBUG-4862, kde#249217, #694385) 2012-10-22 14:20:53 -05:00
Rex Dieter 86416228bf Merge branch 'f17' into f16 2012-10-22 10:08:43 -05:00
Rex Dieter 3b88888ff0 Merge branch 'f18' into f17
Conflicts:
	qt.spec
2012-10-22 10:08:09 -05:00
Rex Dieter 3c87374223 $RPM_LD_FLAGS should be propagated to qmake's defaults (#868554) 2012-10-20 17:27:31 -05:00
Rex Dieter 22e5ecb69a Merge branch 'f17' into f16 2012-09-28 14:09:02 -05:00
Rex Dieter 12437b28f5 upstream disable-SSL-compression patch
Conflicts:
	qt.spec
2012-09-28 14:08:26 -05:00
Rex Dieter 5fadc9d457 find qdevice.pri even for installed qt builds 2012-09-28 09:10:11 -05:00
Rex Dieter edf87b1ec8 upstream disable-SSL-compression patch 2012-09-27 14:33:30 -05:00
Rex Dieter 9315bd6aa6 update QtScript upstream bug reference(s) 2012-09-24 12:28:27 -05:00
Rex Dieter 087ab1fb17 1:4.8.3-1
- qt-4.8.3 final
- revert QtScript-JIT commit
2012-09-14 12:06:38 -05:00
Rex Dieter dea4644599 Merge branch 'master' into f17 2012-09-04 09:53:33 -05:00
Rex Dieter 4f64405c27 revert "fix QtScript JIT crash" patch, causes frequent segmentation faults (#853587) 2012-09-04 09:52:55 -05:00
Rex Dieter 6662fae879 Merge branch 'master' into f16 2012-08-15 07:01:48 -05:00
Rex Dieter e86eaa89ee Merge branch 'master' into f17 2012-08-13 18:38:10 -05:00
Rex Dieter 5d4c00ca2f fix QtScript JIT crash (QTBUG-23871, kde#297661) 2012-08-13 17:12:40 -05:00
Rex Dieter 499fde8b2a Merge branch 'master' into f16 2012-07-06 07:29:26 -05:00
Rex Dieter 5d8ae35092 Merge branch 'master' into f17 2012-07-05 13:15:20 -05:00
Rex Dieter 7f431fbaa7 text cursor blinks not in the current cell (kde#296490) 2012-07-05 12:12:35 -05:00
Than Ngo c2e696277e Merge branch 'master' into f16 2012-06-19 13:21:45 +02:00
Than Ngo c3c8eaaaa9 Merge branch 'master' into f17 2012-06-19 13:07:09 +02:00
Than Ngo 82200be8dd fix bz#810500, fix crash in assistant 2012-06-19 13:04:13 +02:00
Than Ngo 8361e71552 Merge branch 'master' into f16 2012-05-29 14:06:23 +02:00
Than Ngo 1650d55936 Merge branch 'master' into f17 2012-05-29 12:36:14 +02:00
Than Ngo 118f765636 fix bz#820767, lrelease-qt4 tries to run qmake not qmake-qt4 2012-05-29 12:35:27 +02:00
Than Ngo 266a47c2dc Merge branch 'master' into f16 2012-05-23 09:51:55 +02:00
Than Ngo fa6c900f93 Merge branch 'master' into f17 2012-05-22 17:15:39 +02:00
Than Ngo 4d4b19d3f8 drop patches, both are included in 4.8.2 2012-05-22 14:38:35 +02:00
Than Ngo e9629e4208 4.8.2 2012-05-22 14:26:22 +02:00
Than Ngo 368f835532 Merge branch 'master' into f17 2012-05-18 15:12:15 +02:00
Than Ngo 4656da0cd4 add rhel/fedora condition 2012-05-18 15:11:17 +02:00
Rex Dieter e0673557d0 Can't build 32bit Qt release application on 64bit (#822710) 2012-05-17 19:33:09 -05:00
Than Ngo a75542ed95 Merge branch 'master' into f17 2012-05-16 14:58:57 +02:00
Than Ngo bacb87c899 drop workaround and add upstream patch to fix crash on big endian machine 2012-05-16 14:56:56 +02:00
Rex Dieter 04f02f196f enable debuginfo in libQt3Support 2012-05-11 11:59:16 -05:00
Rex Dieter d8c792b4fc lrelease-qt4 tries to run qmake not qmake-qt4 (#820767) 2012-05-11 09:05:26 -05:00
Rex Dieter 1ac4fa717c Merge branch 'master' into f17 2012-05-10 12:22:50 -05:00
Rex Dieter cdf70082aa use qt-settings on f17+ 2012-05-10 12:22:03 -05:00
Rex Dieter 89569a2242 Requires: qt-settings 2012-05-10 12:17:32 -05:00
Rex Dieter 0a91dd0faf rebuild (libtiff) 2012-05-08 16:32:30 -05:00
Than Ngo 37b42623a7 Merge branch 'master' into f17 2012-05-03 16:17:06 +02:00
Than Ngo b2f384a4ba add fedora/rhel conditions 2012-05-03 16:16:11 +02:00
Than Ngo 1399efea41 Merge branch 'master' into f17 2012-04-18 12:09:48 +02:00
Than Ngo 8df516bbfb add rhel condition 2012-04-18 12:07:28 +02:00
Rex Dieter bab905e093 boo, awol patch 2012-04-17 07:51:23 -05:00
Rex Dieter 6ede3a7f87 omit qdbusconnection warnings in release/no-debug mode 2012-04-17 07:34:21 -05:00
Jaroslav Reznik 04fc6818ae Merge branch 'master' into f16 2012-04-03 11:14:37 +02:00
Jaroslav Reznik d68208955a Merge branch 'master' into f17 2012-04-03 11:14:24 +02:00
Jaroslav Reznik 20e8a01183 Fix a crash in cursorToX() when new block is added (QTBUG-24718) 2012-04-03 11:00:17 +02:00
Than Ngo 9b470ba395 Merge branch 'master' into f16 2012-03-30 22:33:21 +02:00
Than Ngo 5aa0de5be8 Merge branch 'master' into f17 2012-03-30 22:25:44 +02:00
Than Ngo 215aa5fd08 Fix QTgaHandler::canRead() not obeying image plugin specs 2012-03-30 22:05:31 +02:00
Rex Dieter 97b27a9487 Merge branch 'master' into f17
Conflicts:
	qt.spec
2012-03-29 13:08:46 -05:00
Rex Dieter 6e276638e1 Header file name mismatch in qt-devel i686 (#808087) 2012-03-29 11:07:37 -05:00
Rex Dieter 81f4e80bb5 drop long-unused kde-qt-patches.sh 2012-03-29 08:02:10 -05:00
Than Ngo 9c12e23239 add correct flags 2012-03-29 11:46:24 +02:00
Than Ngo 52ef45e79a adapt patches 2012-03-28 17:33:54 +02:00
Than Ngo e3bfd6e1fe 4.8.1 2012-03-28 17:04:41 +02:00
Dennis Gilmore 934f9eedc9 - Rebuilt for c++ ABI breakage 2012-02-28 13:50:01 -06:00
Rex Dieter 5f18fc6b1e demos: Requires: -doc (#795859) 2012-02-22 10:52:38 -06:00
Than Ngo 747f71fa5b get rid of timestamp which causes multilib problem 2012-02-20 15:24:27 +01:00
Than Ngo 119248cace - disable Using gold linker, g++ doesn't support flags gold linker
- fix gcc-4.7 issue
2012-01-24 14:35:56 +01:00
Rex Dieter 42134b3653 improved filter_event patch (kde#275469) 2012-01-10 07:36:58 -06:00
Than Ngo adc7c115dd apply correct patch 2012-01-09 12:24:21 +01:00
Than Ngo f1d2a1410f bz#772128, CVE-2011-3922, Stack-based buffer overflow in embedded harfbuzz code 2012-01-09 10:29:49 +01:00
Rex Dieter 3351a1ee1a stray } 2011-12-28 04:15:09 -06:00
Rex Dieter 145254b751 arg, typos 2011-12-28 01:33:09 -06:00
Rex Dieter 006084c8f4 typo 2011-12-27 21:04:28 -06:00
Rex Dieter 9e3c0f0a62 fix qvfb 2011-12-27 21:04:08 -06:00
Rex Dieter 1d42146cca nevermind qvfb still busted 2011-12-27 17:31:33 -06:00
Rex Dieter af10e0158f filter event patch, avoid "ghost entries in kde taskbar" problem (kde#275469)
re-enable -qvfb
2011-12-27 16:37:14 -06:00
Rex Dieter 76de2fcf22 don't spam if libicu is not present at runtime (#759923) 2011-12-20 10:23:10 -06:00
Dan Horák 41cb7e3491 add missing method for QBasicAtomicPointer on s390(x) 2011-12-19 10:13:20 +01:00
Rex Dieter 9f74aac72e fixup sources 2011-12-15 15:26:21 -06:00
Jaroslav Reznik ff98402c2b 4.8.0 2011-12-15 14:46:57 +01:00
Jaroslav Reznik d23802217a Fix patched files backup suffix 2011-12-12 16:24:04 +01:00
Jaroslav Reznik 420aafa825 Fixes the position of misplaced mouse input (QTBUG-22420) 2011-12-12 16:21:59 +01:00
Rex Dieter a5d51f892b Control whether icu support is built (#759923) 2011-12-04 17:15:33 -06:00
Kevin Kofler 060db3c767 * Sat Dec 03 2011 Kevin Kofler <Kevin@tigcc.ticalc.org> 4.8.0-0.27.rc1
- work around a MOC issue with Boost 1.48 headers (#756395)
2011-12-04 00:31:37 +01:00
Than Ngo c4934b1a43 workaround crash on ppc64 2011-11-30 16:16:33 +01:00
Rex Dieter 5b7dbe9fd5 BuildRequires: pkgconfig(libpng)
devel: drop Requires: libpng-devel libjpeg-devel
qt4.macros: +%_qt4_epoch, %_qt4_evr
2011-11-14 11:38:59 -06:00
Rex Dieter 18fdbd1c4c Revert "build declarative/qml with -fno-strict-aliasing (#748936, QTBUG-19736)"
This reverts commit 2fe8ba1706.

Not needed afterall, false alarm.  Move along, nothing to see here.
2011-11-04 09:14:33 -05:00
Rex Dieter 2fe8ba1706 build declarative/qml with -fno-strict-aliasing (#748936, QTBUG-19736) 2011-11-03 13:59:08 -05:00
Rex Dieter 81789f851c cleaner tds patch 2011-11-03 13:09:05 -05:00
Rex Dieter 651f62b07b build tds sql driver with -fno-strict-aliasing 2011-11-03 12:29:47 -05:00
Rex Dieter 62de8242b5 crash when using a visual with 24 bits per pixel (#749647,QTBUG-21754) 2011-10-28 15:27:57 -05:00
Kevin Kofler d5adc58734 * Fri Oct 28 2011 Kevin Kofler <Kevin@tigcc.ticalc.org> 4.8.0-0.22.rc1
- fix FTBFS in QtWebKit's wtf library with GLib 2.31
2011-10-28 02:29:53 +02:00
Kevin Kofler 879130ccb2 Merge branch 'master' of ssh://pkgs.fedoraproject.org/qt into f16 2011-10-28 00:02:20 +02:00
Kevin Kofler 61f93597ce Revert "another try at QUrl patch, this time not crashing on empty URLs too"
This reverts commit f8934db9d9.

rdieter says we'll use my version of the patch.
2011-10-28 00:01:34 +02:00
Rex Dieter f8934db9d9 another try at QUrl patch, this time not crashing on empty URLs too 2011-10-27 17:02:22 -05:00
Kevin Kofler 26b43071c0 * Thu Oct 27 2011 Kevin Kofler <Kevin@tigcc.ticalc.org> 4.8.0-0.21.rc1
- fix missing NULL check in the toLocalFile patch (fixes Digikam segfault)
2011-10-27 23:55:33 +02:00
Rex Dieter 45a5a11ca8 Merge branch 'master' into f16
Conflicts:
	qt.spec
2011-10-27 14:08:38 -05:00
Rex Dieter 8d515ac543 restore qt-4.7-compatible behavior to QUrl.toLocalFile (#749213) 2011-10-27 13:27:00 -05:00
Dennis Gilmore a66b9ce81d - Rebuilt for glibc bug#747377 2011-10-26 20:29:58 -05:00
Dennis Gilmore c161b773eb - Rebuilt for glibc bug#747377 2011-10-26 19:21:33 -05:00
Than Ngo d50e40ebed bz#748297, update the URL of qt packages 2011-10-24 15:38:15 +02:00
Rex Dieter 95b646ad34 Buttons in Qt applications not clickable when run under gnome-shell (#742658, QTBUG-21900) 2011-10-18 07:35:04 -05:00
Rex Dieter d1296a4d3a Qt doesn't close orphaned file descriptors after printing (#746601, QTBUG-14724) 2011-10-17 11:01:11 -05:00
Rex Dieter 0f42336250 drop unused patch 2011-10-17 11:00:46 -05:00
Rex Dieter a9a1095ff8 revert qlist.h commit that seems to induce crashes in qDeleteAll<QList... (QTBUG-22037) 2011-10-15 14:34:35 -05:00
Rex Dieter 59d529bafa pkgconfig-style deps 2011-10-15 10:54:07 -05:00
Rex Dieter 70982bc9f3 4.8.0-rc1 2011-10-13 16:05:32 -05:00
Rex Dieter 1b76e04434 20111002 4.8 branch snapshot 2011-10-04 11:06:07 -05:00
Rex Dieter a44a4dbbdd ftbfs, unpackaged files (%_qt4_prefix/tests) 2011-09-17 16:45:11 -05:00
Rex Dieter 10cc1b1e10 import no_Werror patch from qtwebkit 2011-09-17 15:13:04 -05:00
Rex Dieter e5126ea57e ./configure -webkit 2011-09-17 11:25:14 -05:00
Lukas Tinkl 7a24f72b31 fix missing CSS styles and JS functions in the generated HTML
documentation, omitted from the upstream tarball
2011-09-14 13:27:32 +02:00
Rex Dieter 584e7bd537 add bz reference 2011-08-18 12:21:48 -05:00
Rex Dieter be63e08f2e graphicssystem raster
drop sqlite_pkg option
2011-08-18 12:19:00 -05:00
Rex Dieter 8001892377 macros.qt4: s|_qt47|_qt48| 2011-07-31 10:53:55 -05:00
Dan Horák 064e0d8218 fix the outdated standalone copy of JavaScriptCore 2011-07-28 14:41:07 +02:00
Rex Dieter d19f27c426 fix QMAKE_LIBDIR_QT, for missing QT_SHARED define (#725183) 2011-07-23 16:37:42 -05:00
Rex Dieter fb25dbbe0b reorg patch2/patch4 2011-07-20 13:02:38 -05:00
Rex Dieter 3ecceb88be 4.8.0-beta1
drop webkit_packaged conditional
drop old patches
drop qvfb (for now, ftbfs)
2011-07-20 12:56:44 -05:00
Than Ngo fcbf1bc3e0 move macros.* to -devel 2011-07-13 18:14:11 +02:00
Rex Dieter 9b5f97e928 BR: libXtst-devel for qvfb 2011-07-08 09:54:39 -05:00
Rex Dieter 9e2ddba1bf - qvfb subpackage (#718416) 2011-07-05 08:19:30 -05:00
Rex Dieter ebd7259005 Adding qt-sql-ibase driver for qt (#719002) 2011-07-05 08:06:43 -05:00
Rex Dieter d56e28f80c update bug reference 2011-06-22 12:33:34 -05:00
Rex Dieter 07d2a83a45 respin qt/fontconfig patch 2011-06-21 09:48:37 -05:00
Rex Dieter fe8fd4660b fontconfig patch (#705347, QTBUG-19947) 2011-06-20 09:40:12 -05:00
Adam Jackson 17695d696e drop phonon_services reference from the spec too 2011-06-03 17:27:01 -04:00
Rex Dieter 0a4122f3c7 drop phonon_services.patch since we don't package phonon from here anymore 2011-06-03 14:11:23 -05:00
Rex Dieter dca2cfda12 drop phonon-gsreamer icon sources
update %%files
2011-06-02 11:52:32 -05:00
Rex Dieter 03f796db51 actually use new patch 2011-06-01 14:39:58 -05:00
Rex Dieter ef9de1563f hack around openssl type mismatch wrt SSL_CTX_ctrl (with and without const) 2011-06-01 14:28:01 -05:00
Rex Dieter 6f4f6b40ee - drop phonon_internal, phonon_backend_packaged build options 2011-06-01 13:25:42 -05:00
Rex Dieter 9a146be85b drop unused kde4_plugins patch 2011-06-01 12:08:09 -05:00
Jaroslav Reznik 34e2c25f86 4.8-tp 2011-06-01 15:40:35 +02:00
Rex Dieter 4c18c4470c Revert "multilib QT_PLUGIN_PATH (#704840)"
This reverts commit bb9ed3a702.
2011-05-21 20:35:58 -05:00
Rex Dieter bb9ed3a702 multilib QT_PLUGIN_PATH (#704840) 2011-05-21 20:30:13 -05:00
Rex Dieter 1f58c3a6d8 omit %{_qt4_plugindir}/designer/libqwebview.so too 2011-05-19 15:56:20 -05:00
Rex Dieter d5a9be263d fix unpackaged files 2011-05-19 13:13:16 -05:00
Rex Dieter d7404ffde2 omit bundled webkit on f16+ (in favor of separately packaged qtwebkit) 2011-05-19 12:28:57 -05:00
Rex Dieter 5cccbd34de drop old/unused patches 2011-05-16 12:09:54 -05:00
Jaroslav Reznik 8517c08334 QTBUG-18338 already fixed in 4.7.3 2011-05-05 12:47:09 +02:00
Jaroslav Reznik 15b71d3c8d update to 4.7.3 2011-05-05 12:25:32 +02:00
Rex Dieter 440edf20b7 webkit-devel: move qt_webkit_version.pri here 2011-04-21 08:08:51 -05:00
Rex Dieter 7aacf8ed8f typo 2011-04-05 18:27:19 -05:00
Rex Dieter 9e2b706075 -devel-private: Provides: qt4-devel-private 2011-04-05 16:40:19 -05:00
Rex Dieter 396edc8d59 -devel-private: enumerate content (to avoid /usr/src/debug in particular) 2011-04-05 16:37:34 -05:00
Rex Dieter e2781c7cfc update %%chenagelog to make clearer new -devel-private subpkg 2011-04-05 13:05:25 -05:00
Rex Dieter f0f438f306 -devel-private stuff: s/%%_qt4_prefix/%%_prefix/ 2011-04-01 15:41:12 -05:00
Rex Dieter 75dc5c3d4c qt-creator/QmlDesigner requires qt private headers (#657498) 2011-04-01 15:31:41 -05:00
Rex Dieter 7bb24cd446 followup patch for QTBUG-18338, blacklist fraudulent SSL certifcates 2011-03-25 14:12:33 -05:00
Rex Dieter 0811c7ffc2 drop qt-designer-plugin-phonon 2011-03-25 14:03:54 -05:00
Than Ngo 749a63c1f9 apply patch to fix QTBUG-18338, blacklist fraudulent SSL certifcates 2011-03-25 12:09:53 +01:00
Jaroslav Reznik f8805edd3b rebuild(mysql) 2011-03-22 10:53:45 +01:00
Dan Horák 5a4b823ab4 workaround memory exhaustion during linking of libQtWebKit on s390 2011-03-11 19:51:01 +01:00
Jaroslav Reznik 6e9f536460 Fix QNetworkConfigurationManager crash due to null private pointer. (QTBUG-17305, rhbz#682656) 2011-03-07 15:20:39 +01:00
Rex Dieter d72d8fa998 Release: 1
drop an old (unuseful) patch that no longer applies
2011-03-01 08:09:22 -06:00
Rex Dieter ded6d74c65 drop old stuff 2011-03-01 08:09:02 -06:00
Jaroslav Reznik 921e069788 4.7.2 2011-03-01 13:54:04 +01:00
Rex Dieter 2d670be15f libQtWebKit.so has no debug info (#667175) 2011-02-23 14:47:28 -06:00
Rex Dieter cf709d7572 Obsoletes: qt-sqlite < 1:4.7.1-16 2011-02-16 10:45:54 -06:00
Rex Dieter 16f2754625 drop -sqlite subpkg, move into main (#677418) 2011-02-15 12:35:12 -06:00
Rex Dieter 8858367e16 - -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)
2011-02-09 15:24:44 -06:00
Dennis Gilmore 4d01685929 - Rebuilt for https://fedoraproject.org/wiki/Fedora_15_Mass_Rebuild 2011-02-08 23:25:22 -06:00
Rex Dieter 14023e08c2 document induced pk bug 2011-02-01 12:16:24 -06:00
Rex Dieter ab30481b14 - -config: fix Obsoletes for real this time 2011-01-26 15:19:25 -06:00
Rex Dieter 922ba8aa27 - fix qt-config related Obsoletes/Provides 2011-01-26 13:27:24 -06:00
Rex Dieter 5a3b34906e - upstream fix for QTextCursor regression (QTBUG-15857, kde#249373) 2011-01-26 07:46:41 -06:00
Rex Dieter 160e3905f0 typo! 2011-01-25 14:36:25 -06:00
Rex Dieter efe49b233c - -config subpkg
- qt-x11 pulls in phonon (#672088)
- qtconfig.desktop: drop NoDisplay (f15+ only, for now)
2011-01-25 14:05:12 -06:00
Rex Dieter 34a50271ab - apply the Assistant QtWebKit dependency removal (#660287) everywhere 2011-01-20 09:04:20 -06:00
Kevin Kofler c1f92f923d Revert "- Provides: libqt4"
This reverts commit 2d7c97cf55.
2011-01-12 01:40:35 +01:00
Rex Dieter 2d7c97cf55 - Provides: libqt4 2011-01-11 12:59:52 -06:00
Rex Dieter 22c56136ae - qsortfilterproxymodel fix (merge_request/934) 2011-01-06 13:07:58 -06:00
Rex Dieter 1bb69fdee7 - only do Requires: phonon-backend if using qt's phonon 2011-01-04 15:15:27 -06:00
Kevin Kofler b8d8f1dc1b * Fri Dec 24 2010 Kevin Kofler <Kevin@tigcc.ticalc.org> 4.7.1-7
- fix QTreeView crash triggered by KPackageKit (patch by David Faure)
2010-12-24 23:48:39 +01:00
Rex Dieter da899e3820 - rebuild (mysql) 2010-12-24 12:34:39 -06:00
Kevin Kofler 5ef9bed811 Add newline at the end of the last line of the patch. 2010-12-09 01:21:56 +01:00
Kevin Kofler 7497f5d973 * Wed Dec 08 2010 Kevin Kofler <Kevin@tigcc.ticalc.org> 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)
2010-12-08 22:58:25 +01:00
Than Ngo 8be6ad84de bz#660287, using QTextBrowser in assistant to drop qtwebkit dependency 2010-12-07 13:22:43 +01:00
Rex Dieter 8244061b3d - Fails to create debug build of Qt projects on mingw (#653674, QTBUG-14467) 2010-11-23 14:44:13 -06:00
Than Ngo 137cfcb128 bz#528303, Reordering of Malayalam Rakar not working properly 2010-11-22 15:23:48 +01:00
Than Ngo 9e141f8f95 update source 2010-11-11 21:57:04 +01:00
Than Ngo 9d66e67ec2 drop patches which are already included in 4.7.1 2010-11-11 21:51:31 +01:00
Than Ngo 6111d96eb2 4.7.1 2010-11-11 21:44:16 +01:00
Jaroslav Reznik 76078aea2e CVE-2010-1822 fix 2010-10-25 17:28:32 +02:00
Rex Dieter a941a58f4f - qt-devel contains residues from patch run (#639463) 2010-10-18 11:15:18 -05:00
Than Ngo fdfba67b94 - apply patch to fix the color issue in 24bit mode (cirrus driver) 2010-10-15 22:18:18 +02:00
Rex Dieter 2547722966 - Wrong Cursor when widget become native on X11 (QTBUG-6185) 2010-09-30 08:36:36 -05:00
Than Ngo e5e6464e83 add correct patch 2010-09-27 13:18:39 +02:00
Than Ngo 79a460b197 apply upstream patch to fix QTreeView-regression 2010-09-27 12:38:25 +02:00
Than Ngo a4cb425a1d fix typo in license 2010-09-23 18:37:01 +02:00
Than Ngo 9432f72c6f typo 2010-09-23 16:58:24 +02:00
Than Ngo 47854b6b60 - 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
2010-09-23 16:55:34 +02:00
Than Ngo a6175d5a7a - 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
2010-09-23 15:07:58 +02:00
Than Ngo 9978f4fd3f 4.7.0 2010-09-21 16:46:31 +02:00
Rex Dieter af20ebbd40 typo s/Webkit/WebKit/ 2010-09-10 16:36:45 -05:00
Rex Dieter 6f37f2ce29 -webkit: move qml/webkit bits here 2010-09-10 14:08:52 -05:00
Rex Dieter e4702e2c09 defattr typo 2010-09-10 14:07:03 -05:00
Rex Dieter e7ca277a10 - -webkit-devel: add missing %defattr 2010-09-09 22:45:46 -05:00
Rex Dieter f8f69bf18e - Crash in drawPixmap in Qt 4.7rc1 (#631845, QTBUG-12826) 2010-09-08 09:36:59 -05:00
Than Ngo 3e6009be04 drop the patch, it's already fixed in upstream 2010-08-30 14:41:07 +02:00
Rex Dieter ee8290ceac odd koji build failure, bump-n-rebuild 2010-08-26 13:33:40 -05:00
Than Ngo 32aeb96a5a 4.7rc1 2010-08-26 19:06:19 +02:00
Than Ngo 6424aee238 4.7rc1 2010-08-26 18:44:47 +02:00
Than Ngo 3815b794ba 4.7 rc1 2010-08-26 18:41:15 +02:00
Fedora Release Engineering f48bc31989 dist-git conversion 2010-07-29 11:07:15 +00:00
Kevin Kofler 51e5c9f4e1 Fix versions in the changelog. 2010-07-09 06:08:50 +00:00
Rex Dieter 8ff2145cf6 qml now qmlviewer 2010-07-08 15:57:04 +00:00
Rex Dieter 7ee938e92b - rebase patches, avoiding use of patch fuzz
- omit old qt-copy/kde-qt patches, pending review
- omit kde4_plugin patch
- ftbfs: qml/libQtMediaServices no longer included
2010-07-08 14:08:07 +00:00
Rex Dieter 3eee5c4831 drop upstreamed patch 2010-07-08 13:04:26 +00:00
Rex Dieter 529fc5e1f4 - 4.7.0-beta2 2010-07-08 12:02:45 +00:00
Rex Dieter 023bbe6781 - X11Embed broken (rh#609757, QTBUG-10809) 2010-07-01 17:22:23 +00:00
Rex Dieter 3190d33000 - X11Embed broken (rh#609757,(QTBUG-10809) 2010-07-01 17:21:56 +00:00
Kevin Kofler 3ba8c12fa9 Don't claim that qvfb is only available in Qt/Embedded, the X11 portion is
actually part of Qt/X11 these days, but not installed by default.
2010-07-01 14:02:29 +00:00
Kevin Kofler 2d2276c6b2 - use find_lang to package the qm files (#609749)
- put the qm files into the correct subpackages
- remove qvfb translations, qvfb is only available in Qt/Embedded
2010-07-01 03:31:31 +00:00
Rex Dieter 53d9fccd83 respin glib_eventloop_nullcheck.patch 2010-06-29 22:03:56 +00:00
Rex Dieter 659f8c9ee5 better version of the patch 2010-06-29 17:38:28 +00:00
Rex Dieter 0b36370aaf - workaround glib_eventloop crasher induced by gdal/grass (bug #498111) 2010-06-29 17:18:06 +00:00
Rex Dieter 0a74c97247 patch uic3 too 2010-06-25 19:08:41 +00:00
Rex Dieter f13527cb86 - avoid timestamps in uic-generated files to be multilib-friendly 2010-06-25 19:05:02 +00:00
Rex Dieter 7417f0069f heh, actually apply patch100 2010-06-18 15:33:16 +00:00
Rex Dieter c1430cbcf4 - 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
2010-06-18 15:14:08 +00:00
Rex Dieter c7126434f0 - -no-javascript-jit on i686 (#604003) 2010-06-16 19:43:44 +00:00
Karsten Hopp cf17e68ecc - add s390 and s390x to 3rdparty/webkit/JavaScriptCore/wtf/Platform.h and
3rdparty/javascriptcore/JavaScriptCore/wtf/Platform.h
2010-06-16 15:07:33 +00:00
Rex Dieter 3d02d73f3c - scrub -lpulse-mainloop-glib from .prl files (#599844)
- scrub references to %buildroot in .pc, .prl files
2010-06-11 14:21:16 +00:00
Rex Dieter bd2addd921 - Unsafe use of rand() in X11 (QTBUG-9793) 2010-05-27 17:01:09 +00:00
Rex Dieter b1d8d8ba7c Initial testing has been positive, so far so good, pull the trigger.
Fri May 21 2010 Rex Dieter <rdieter@fedoraproject.org> - 4.7.0-0.14.beta1
- drop -no-javascript-jit (webkit#35154)
2010-05-21 12:48:09 +00:00
Rex Dieter 084149830f document -no-javascript-jit usage 2010-05-18 20:19:09 +00:00
Rex Dieter 2d7f0aedce - QT_GRAPHICSSYSTEM env support 2010-05-17 19:00:57 +00:00
Rex Dieter 423c888d2a - -webkit-devel: move Qt/qweb*.h here (#592680) 2010-05-16 18:04:07 +00:00
Rex Dieter 7ff8383aec - -webkit-devel: Obsoletes: qt-devel ... (upgrade path) 2010-05-07 14:49:17 +00:00
Rex Dieter 3f218bd595 tighten -devel dep out of paranoia about Conflicts with previous versions 2010-05-07 04:30:34 +00:00
Rex Dieter c0a736a53b - -webkit-devel: Provides: qt4-webkit-devel , Requires: %name-devel 2010-05-07 03:53:17 +00:00
Rex Dieter efb4682aa6 %%_qt4_libdir/libQtMediaServices.so.4* 2010-05-06 19:41:01 +00:00
Rex Dieter ddf3c9870e omit qdoc3 patch 2010-05-06 18:04:42 +00:00
Kevin Kofler 40ea442909 rm qt-4.5.2-pulseaudio.patch entirely, not only is this a patch to the
bundled Phonon which we aren't even building in Fedora, but it isn't
    needed at all for the Phonon which ships with Qt 4.7 even if we build
    Qt's Phonon. Qt 4.7 now ships a Phonon with the upstream PulseAudio
    integration.
2010-05-06 15:44:40 +00:00
Rex Dieter 98af2ffded omit phonon-pulseaudio patch (for now) 2010-05-06 14:56:18 +00:00
Rex Dieter 7c848ff441 - 4.7.0-beta1
- -webkit-devel : it lives! brainz!
2010-05-06 14:05:58 +00:00
Rex Dieter 30f06196dc - prepping for separate QtWebKit(-2.0)
- -webkit subpkg, Provides: QtWebKit ...
- -devel: Provides: QtWebKit-devel ...
- TODO: -webkit-devel (and see what breaks)
2010-05-01 00:32:43 +00:00
Rex Dieter 4d134b988e - own %{_qt4_plugindir}/crypto 2010-04-28 14:27:23 +00:00
Kevin Kofler a6338f25bd - backport fix for QTBUG-9354 which breaks kdeutils build 2010-04-03 22:31:36 +00:00
Rex Dieter ff1e9122ca - Associate text/vnd.trolltech.linguist with linguist (#579082) 2010-04-02 14:28:55 +00:00
Tom Callaway c97478f426 fix type cast in webkit bundled copy for sparc64 2010-03-23 14:57:26 +00:00
Kevin Kofler 2f3d95654b - also strip -lpulse from .prl files (fixes PyQt4 QtMultimedia binding
build)
2010-03-21 00:52:37 +00:00
Rex Dieter ab37904fe4 - qt-4.7.0-tp
- macros.qt4 : +%_qt4_importdir
- don't strip libs from pkgconfig files, Libs.private is now used properly
- add -lphonon to stripped libs instead of brutally hacking out
    QMAKE_PRL_LIBS altogether (#520323)
- qt-assistant-adp packaged separately now, not included here
2010-03-16 15:26:44 +00:00
Kevin Kofler 23f4dffa95 Configure doesn't like explicit -alsa, keep only the BR. 2010-03-13 23:43:08 +00:00
Kevin Kofler a0d03704b2 - BR alsa-lib-devel, configure with -alsa (for QtMultimedia) 2010-03-13 23:28:15 +00:00
Kevin Kofler 65cc31af55 Provides: qt-assistant-adp should be in qt-x11, not qt, fix this. 2010-03-13 20:04:05 +00:00
Kevin Kofler c7f94c101b - Provides: qt-assistant-adp(-devel) 2010-03-13 19:57:10 +00:00
Than Ngo 20d70c201a Make tablet detection work with new wacom drivers 2010-03-05 13:59:37 +00:00
Rex Dieter 9d4b9accf8 - fix 64bit platform logic, use linux-g++-64 everywhere except x86_64
(#569542)
2010-03-01 17:33:54 +00:00
Kevin Kofler d3bc0d2254 One more whitespace fix to match upstream coding standards. 2010-02-28 04:43:36 +00:00
Kevin Kofler 12f7dd61c8 - fix CUPS patch not to crash if currentPPD is NULL (#566304) 2010-02-28 04:37:37 +00:00
Rex Dieter ba86a44f6c - macros.qt4: s/qt45/qt46/ 2010-02-16 13:15:48 +00:00
Rex Dieter 2fe847ae00 - 4.6.2 2010-02-15 14:21:57 +00:00
Rex Dieter b730397959 - improve cups support (#523846, kde#180051#c22) 2010-02-05 16:16:26 +00:00
Rex Dieter ba20a11e98 - drop bitmap_font_speed patch, rejected upstream 2010-01-19 19:12:28 +00:00
Than Ngo 996100960b 4.6.1 2010-01-19 18:00:58 +00:00
Rex Dieter 1b760d539f typo 2010-01-11 20:03:06 +00:00
Rex Dieter 9944a49cde Mon jan 11 2010 Rex Dieter <rdieter@fedoraproject.org> - 4.6.0-5
- bitmap_font_speed patch (QTBUG-7255)
2010-01-11 20:02:42 +00:00
Kevin Kofler a0c7852d94 Fix version in the changelog. 2010-01-11 06:44:53 +00:00
Rex Dieter 0dd2558f3b - Fix crash when QGraphicsItem destructor deletes other QGraphicsItem
(kde-qt cec34b01)
- Fix a crash in KDE/Plasma with QGraphicsView. TopLevel list of items
    (kde-qt 63839f0c)
2010-01-09 23:23:28 +00:00
Kevin Kofler 34eafd78f9 Remove obsolete patch, now handled by a configure option. 2009-12-23 17:01:29 +00:00
Kevin Kofler 30286e7b96 - disable QtWebKit JavaScript JIT again, incompatible with SELinux
(#549994)
2009-12-23 12:32:38 +00:00
Kevin Kofler a471309760 - own %{_qt4_plugindir}/gui_platform 2009-12-05 04:24:35 +00:00
Kevin Kofler d4485681e4 Fully revert the redundant QTBUG-5792 patch. 2009-12-05 04:21:35 +00:00
Than Ngo 708993a480 drop qt-everywhere-opensource-src-4.6.0-QTBUG-5972.patch since it's
included in 4.6.0
2009-12-04 14:23:03 +00:00
Than Ngo df6016dd04 Stop using the NameOwnerChanged signal without arg0 in QtDBus itself 2009-12-04 12:37:55 +00:00
Than Ngo 6234a6f70e adapt gst-pulsaudio patch 2009-12-01 12:31:32 +00:00
Than Ngo 4762ae1934 4.6.0 2009-12-01 11:50:54 +00:00
Bill Nottingham 2f5c7e48eb Fix typo that causes a failure to update the common directory. (releng
#2781)
2009-11-25 22:47:02 +00:00
Rex Dieter 65ccedb1ad first crack at 4.6.0-rc1 2009-11-17 18:41:21 +00:00
Rex Dieter 711f1678b4 fix thinko 2009-11-14 21:49:55 +00:00
Rex Dieter 6f860b2dd8 fix %files 2009-11-14 21:41:31 +00:00
Rex Dieter 6e405dfcba - -tds: Add package with TDS sqldriver (#537586)
- add arch'd provides for sql drivers
2009-11-14 20:18:54 +00:00
Rex Dieter d8455b671a revert testing version of 4.6-stable branch 2009-11-08 17:21:02 +00:00
Rex Dieter 0f1c55d979 - -x11: Requires: %{name}-sqlite%{?_isa} 2009-11-08 17:08:58 +00:00
Rex Dieter 390b42cf03 - kde-qt patches (as of 20091026) 2009-10-27 01:20:17 +00:00
Rex Dieter 63c4ae2e27 comment about Phonon symlink needed by qtscriptgenerator 2009-10-19 15:46:22 +00:00
Rex Dieter e184187068 fix %%files 2009-10-17 00:26:58 +00:00
Rex Dieter d30e6f44e6 - subpackage sqlite plugin, add Require on qt-sqlite in qt-x11 for
assistant
- build/install qdoc3 again
2009-10-16 23:00:14 +00:00
Rex Dieter de3cacfc5e document how to switch branches 2009-10-15 02:40:15 +00:00
Rex Dieter 89ea428615 - qt-4.6.0-beta1
- no kde-qt patches (yet)
2009-10-14 20:12:04 +00:00
Rex Dieter c45d17ed39 forward port rhel-cleanup bits from F-12/ branch 2009-10-10 19:45:49 +00:00
Rex Dieter bfaa111a1f help lrelease find/run just-built libs 2009-10-10 14:19:55 +00:00
Than Ngo b6a1a7348b fix translation build issue 2009-10-10 11:09:18 +00:00
Than Ngo 37cc616b68 fix translation build issue 2009-10-10 11:03:25 +00:00
Than Ngo c3d76760c5 - fix translation build issue 2009-10-10 10:05:20 +00:00
Jaroslav Reznik c2aca32302 - disable JavaScriptCore JIT, SE Linux crashes (#527079) 2009-10-06 11:58:13 +00:00
Rex Dieter 45c933c0f3 - if ! phonon_internal, exclude more/all phonon headers
- qt-devel must Requires: phonon-devel (#520323)
2009-10-03 15:30:09 +00:00
Kevin Kofler ba712a9386 rm unused patch (already applied upstream) 2009-10-02 17:00:15 +00:00
Than Ngo 3975bfa88c clean patches 2009-10-02 16:57:06 +00:00
Than Ngo cb5d533c6c cleanup patches 2009-10-02 16:55:36 +00:00
Rex Dieter 73f2852e9f fix botched patch 2009-10-02 16:21:51 +00:00
Rex Dieter b9f1809b7f skip kde-qt 0013 patch for now 2009-10-02 15:30:48 +00:00
Rex Dieter a5ce8bcfb2 drop old crud 2009-10-02 14:34:44 +00:00
Rex Dieter 0f4ec6792d first pass at using individual kde-qt patches (since some don't apply or
seem to be upstreamed already)
2009-10-02 14:34:00 +00:00
Rex Dieter cafa1b72a0 first crack at script to extract patches from kde-qt git repo 2009-10-02 14:33:09 +00:00
Rex Dieter 5a8a37138f remove one already upstreamed part of the patch (well, it was included in
the upstream tarball at least)
2009-10-02 13:52:00 +00:00
Lukas Tinkl 3d5463b041 update kde-qt patches for Qt 4.5.3 2009-10-02 13:39:46 +00:00
Rex Dieter 2f705be136 oops, some phonon-gstreamer backend bits snuck through, nuke 'em 2009-10-01 18:26:10 +00:00
Rex Dieter 371b933c17 qt-4.5.3, what we have so far anyway, still need to review/fix kde-qt git
patches
2009-10-01 14:28:58 +00:00
Rex Dieter e7620d801c first try at qt/phonon revert, no builds yet, please review 2009-09-30 15:21:36 +00:00
Rex Dieter 0b7b15bf27 - use internal Qt Assistant/Designer icons
- -devel: move designer.qch,linguist.qch here
- move ownership of %_qt4_docdir, %_qt4_docdir/qch to main pkg
2009-09-28 13:33:30 +00:00
Rex Dieter 46809893a0 - Missing Qt Designer icon (#476605) 2009-09-20 23:32:09 +00:00
Rex Dieter 9f6fae2e37 - drop gcc -fno-var-tracking-assignments hack (#522576) 2009-09-11 21:36:54 +00:00
Than Ngo da11d12ff6 - drop useless check for ossl patch, the patch works fine with old ossl 2009-09-11 11:56:00 +00:00
Rex Dieter e942ab7c04 try building with -fno-var-tracking-assignments 2009-09-10 15:37:00 +00:00
Than Ngo 838fb663b7 add a correct system_ca_certificates patch 2009-09-09 13:04:25 +00:00
Rex Dieter 4c9bc1527d - use system ca-certificates (#521911) 2009-09-08 18:01:19 +00:00
Kevin Kofler 77c80ca6a7 rm redundant %define. 2009-09-01 12:21:54 +00:00
Kevin Kofler 8232db61f2 Restore comments. (They still apply.) 2009-09-01 12:15:14 +00:00
Than Ngo 973ad3bb74 - drop fedora < 9 support
- only apply ossl patch for fedora > 11
2009-09-01 12:06:41 +00:00
Rex Dieter 5f431fd008 better bug reference 2009-08-31 17:07:19 +00:00
Than Ngo 14cfdb8b63 fix for CVE-2009-2700 2009-08-31 14:52:11 +00:00
Rex Dieter c0a63dd716 typo 2009-08-30 20:07:59 +00:00
Rex Dieter de342266fb - use platform linux-g++ everwhere (ie, drop linux-g++-64 on 64 bit),
avoids plugin/linker weirdness described in bug #475110
2009-08-30 19:52:11 +00:00
Tomáš Mráz b781f853f5 - typo in macro name 2009-08-26 10:41:11 +00:00
Tomáš Mráz bd4febed99 - one more fix needed 2009-08-26 10:15:18 +00:00
Tomáš Mráz 287a2693cb - more openssl-1.0 build fixes 2009-08-26 09:44:11 +00:00
Tomáš Mráz aa3af83152 - rebuilt with new openssl 2009-08-26 08:58:08 +00:00
Tomáš Mráz a0163dc045 - rebuilt with new openssl 2009-08-21 15:39:48 +00:00
Than Ngo 0e9f1a4810 rename to qt-x11-opensource-src-4.5.2-pulseaudio.patch 2009-08-21 09:39:23 +00:00
Than Ngo 5ec98dafb1 apply qtcopy-define 2009-08-21 08:31:46 +00:00
Than Ngo 35a84ebd0e switch to kde-qt branch 2009-08-20 22:15:29 +00:00
Than Ngo 61d4c8e542 - security fix for CVE-2009-1725 (bz#513813) 2009-08-18 10:37:45 +00:00
Rex Dieter fb3d889c52 mention bug #513421 2009-08-16 13:25:37 +00:00
Than Ngo 44dcd132bf fix phonon-backend-gstreamer for using pulsaudio 2009-08-16 12:53:18 +00:00
Than Ngo e708cbd247 fix phonon-backend-gstreamer for using pulsaudio 2009-08-16 12:52:35 +00:00
Rex Dieter 9af4031990 sanitize patch name (oops) 2009-08-15 20:18:11 +00:00
Rex Dieter 233ab3429d - kde-qt: 287-qmenu-respect-minwidth
- kde-qt: 0288-more-x-keycodes (#475247)
2009-08-15 20:15:15 +00:00
Rex Dieter 6721bdb456 fix scriptlet typo 2009-08-05 20:59:40 +00:00
Rex Dieter ec43e27561 - use linker scripts for _debug targets (#510246)
- tighten deps using %{?_isa}
- -x11: Requires(post,postun): /sbin/ldconfig
2009-08-05 20:52:03 +00:00
Than Ngo a329695c26 apply upstream patch to fix issue in Copy and paste 2009-07-30 11:37:22 +00:00
Jesse Keating 25b36ebe96 - Rebuilt for https://fedoraproject.org/wiki/Fedora_12_Mass_Rebuild 2009-07-27 02:35:58 +00:00
Than Ngo 510b2944ae - pregenerate PNG, drop BR on GraphicsMagick (bz#509244) 2009-07-02 10:43:13 +00:00
Kevin Kofler 050003885a - fix the qt-copy patch 0274-shm-native-image-fix.diff to apply against
4.5.2
2009-06-26 01:33:19 +00:00
Kevin Kofler 2450722bfa Fix incorrect/obsolete comment (the bug which hit Kolourpaint was in a
different place, and fixed in 4.5.1).
2009-06-26 00:55:56 +00:00
Kevin Kofler 2767897b5b Fix qt_copy %define. 2009-06-26 00:50:30 +00:00
Kevin Kofler cb3d970dd0 - take current qt-copy-patches snapshot (20090626)
- disable patches which are already in 4.5.2
2009-06-26 00:41:07 +00:00
Lukas Tinkl 91c2fd10b6 rebase patch 2009-06-25 18:02:40 +00:00
Lukas Tinkl ea3337dff5 drop upstream patch 2009-06-25 16:08:08 +00:00
Lukas Tinkl 22be3c359a drop upstream patch 2009-06-25 15:49:10 +00:00
Lukas Tinkl a6b6bed92d undefine, I mean... undefine 2009-06-25 15:06:09 +00:00
Lukas Tinkl 3d07572919 disable qt_copy patches for now 2009-06-25 14:55:24 +00:00
Lukas Tinkl 98975c3c0d drop patch 2009-06-25 14:25:16 +00:00
Lukas Tinkl 379519af30 Qt 4.5.2 2009-06-25 13:41:31 +00:00
Than Ngo 60c1668243 fix typo 2009-06-08 09:14:46 +00:00
Rex Dieter cfb2b87f2d s/_kde4_datadir/_datadir/ 2009-06-08 01:30:25 +00:00
Rex Dieter feeaa2fb45 phonon versioning thinkos 2009-06-08 00:36:05 +00:00
Rex Dieter eaa0c850ff - phonon-backend-gstreamer pkg, with icons
- optimize (icon-mostly) scriptlets
2009-06-08 00:28:23 +00:00
Than Ngo 0a4e347798 drop the hack 2009-06-07 14:04:52 +00:00
Than Ngo 01e5321efa - drop the hack, apply patch to install Global header, gstreamer.desktop
and dbus services file
2009-06-07 14:01:42 +00:00
Rex Dieter df025bf73d - install awol Phonon/Global header 2009-06-06 19:39:11 +00:00
Kevin Kofler 000e171b14 - apply Phonon PulseAudio patch (needed for the xine-lib backend) 2009-06-05 23:59:02 +00:00
Than Ngo 4cafec257a enable phonon and gstreamer-backend 2009-06-05 23:12:50 +00:00
Rex Dieter 701ecf49cc - -doc: Obsoletes: qt-doc < 1:4.5.1-4 (workaround bug #502401) 2009-05-30 17:39:44 +00:00
Rex Dieter 72a4f4ba12 cvs only, no tag or build
Sat May 23 2009 Rex Dieter <rdieter@fedoraproject.org> - 4.5.1-12
- +phonon_internal macro to toggle packaging of qt's phonon (default off)
2009-05-24 03:54:30 +00:00
Rex Dieter 50be3f259b - qt-copy-patches-20090522 2009-05-23 04:05:53 +00:00
Rex Dieter cf6cd2c43b - full (non-bootstrap) build 2009-05-21 14:34:19 +00:00
Rex Dieter 26b67d1bee - allow for minimal bootstrap build (*cough* arm *cough*) 2009-05-20 17:23:08 +00:00
Rex Dieter 428e1ad548 - improved kde4_plugins patch, skip expensive/unneeded canonicalPath 2009-05-07 03:53:43 +00:00
Rex Dieter adc96e91de - include kde4 plugin path by default (#498809) 2009-05-06 19:46:13 +00:00
Rex Dieter 248c703d3b - fix invalid assumptions about mysql_config --libs (bug #440673)
- fix %files breakage from 4.5.1-5
2009-05-04 14:40:25 +00:00
Rex Dieter c29be15197 simplify patch a bit, avoiding excessive calls to mysql_config 2009-05-04 14:16:01 +00:00
Rex Dieter 499ca31250 mysql_config patch is upstream-worthy now, provided mysql --pkglibdir
support lands upstream too
2009-05-04 13:54:56 +00:00
Rex Dieter dc652ed470 better mysql_config patch, use --pkglibdir if available 2009-05-04 13:43:52 +00:00
Rex Dieter 1147eed9c4 - fix invalid assumptions about mysql_config --libs (bug #440673) 2009-05-04 00:44:04 +00:00
Rex Dieter b9fc9f2f2f - -devel: Provides: qt4-devel%{?_isa} ... 2009-04-29 23:52:15 +00:00
Kevin Kofler 1c8e5f9e54 And remove the second hunk again, Than ensures me it's not needed, sorry
for the repeated reversions.
2009-04-27 15:39:03 +00:00
Kevin Kofler a2d05ff4f7 Remove the changelog entry as -6 didn't actually change anything (the patch
just got dropped and readded), clarify the changelog entry for -3.
2009-04-27 15:30:23 +00:00
Kevin Kofler d45e2e184e Also readd second hunk of the patch, probably still needed. 2009-04-27 15:27:21 +00:00
Than Ngo ad163f6497 - enable Freetype subpixel rendering at compile time 2009-04-27 14:13:54 +00:00
Than Ngo 03331b6550 - enable Freetype subpixel rendering at compile time 2009-04-27 14:10:54 +00:00
Than Ngo de59527a87 drop useless qt-x11-opensource-src-4.5.1-enable_ft_lcdfilter.patch 2009-04-27 13:15:55 +00:00
Rex Dieter c91b419224 - -devel: Provides: *-static for libQtUiTools.a 2009-04-27 12:54:55 +00:00
Rex Dieter dcb0babb37 omit %_qt4_prefix/doc symlink (which breaks qt-doc.noarch build) 2009-04-25 23:31:03 +00:00
Rex Dieter 490cda6e0b - qt-doc noarch
- qt-demos, qt-examples (split from -doc)
- (cosmetic) re-order subpkgs in alphabetical order
- drop unused profile.d bits
2009-04-25 20:40:50 +00:00
Rex Dieter bb2ec7f619 - enable FT_LCD_FILTER 2009-04-24 17:16:23 +00:00
Than Ngo 6cf04333d3 4.5.1 2009-04-23 11:43:38 +00:00
Rex Dieter ee2610b777 - fix vrgb/vgbr corruption, disable QT_USE_FREETYPE_LCDFILTER (#490377) 2009-04-14 19:40:59 +00:00
Than Ngo 59d8f58fc9 unneeded executable permissions for profile.d scripts 2009-04-10 08:05:04 +00:00
Kevin Kofler d03aeba638 - fix inline asm in qatomic (de)ref (i386/x86_64), should fix Kolourpaint
crash
2009-04-01 16:37:27 +00:00
Rex Dieter 0f50975eed - qt fails to build on ia64 (#492174) 2009-03-30 17:01:19 +00:00
Rex Dieter 919bee052b sync from F-10/ branch 2009-03-27 19:25:27 +00:00
Rex Dieter 76d27aea26 - qt-copy-patches-20090325 2009-03-25 18:34:14 +00:00
Than Ngo 1d995dfe23 lrelease only shows warning when duplicate messages found in *.ts( #491514) 2009-03-24 13:02:39 +00:00
Rex Dieter 26f6fe85fb - qt-copy-patches-20090319
Thu Mar 19 2009 Rex Dieter <rdieter@fedoraproject.org> - 4.5.0-7
- include more phonon bits, attempt to fix/provide phonon bindings for
    qtscriptgenerator, PyQt, ...
2009-03-20 14:00:58 +00:00
Than Ngo 015ea98437 fix lupdate segfault (#486866) 2009-03-16 23:54:50 +00:00
Dennis Gilmore edf6f3a83a _Atomic_word is not always an int 2009-03-15 07:22:22 +00:00
Rex Dieter e79b067ac4 - macros.qt4: %_qt45
- cleanup more phonon-related left-overs
2009-03-10 19:18:10 +00:00
Rex Dieter e5611d19c9 revert -no-pch (only really useful for local test builds) 2009-03-04 17:29:19 +00:00
Rex Dieter ea16451eef - -no-phonon-backend
- include qdoc3
- move designer plugins to runtime (#487622)
2009-03-04 16:05:22 +00:00
Rex Dieter 3afd106aca -x11: move libQtScriptTools here (linked with libQtGui) 2009-03-03 17:41:58 +00:00
Rex Dieter c7ad70855b - drop qgtkstyle patch (no longer needed) 2009-03-03 15:43:46 +00:00
Rex Dieter 198d07cef4 GPLv3 has exceptions too 2009-03-03 15:26:10 +00:00
Rex Dieter da455bdc58 - License: LGPLv2 with exceptions or GPLv3
- BR: gstreamer-devel
2009-03-03 14:55:43 +00:00
Than Ngo 3fc66a164a add patch for ppc, it's missing in final. 2009-03-03 12:17:03 +00:00
Than Ngo 4583d39684 4.5.0 2009-03-03 11:33:16 +00:00
Than Ngo 21aafed52a 4.5.0 2009-03-03 11:14:34 +00:00
Rex Dieter 753003e56a try to workaround snapshot "can't find libQtXml.so.4" in docs generation 2009-03-01 20:52:19 +00:00
Rex Dieter d6c3480333 try non-smp'd 'make docs' 2009-02-27 20:23:43 +00:00
Rex Dieter eed4343768 - 20090224 snapshot
- adjust pkgconfig hackery
2009-02-27 19:32:21 +00:00
Jesse Keating 1dc801d71c bump release higher 2009-02-27 19:21:25 +00:00
Jesse Keating cb91c0e9fc - Rebuilt for https://fedoraproject.org/wiki/Fedora_11_Mass_Rebuild 2009-02-25 18:06:37 +00:00
Rex Dieter 281fd8a2b0 revert odbc patch, already handled by 0273-odbc-64bit-compile.diff in
qt-copy
2009-02-23 15:10:55 +00:00
Than Ngo 842ac43081 fix build problem against new unixODBC 2009-02-23 13:28:39 +00:00
Rex Dieter 868ef7f732 Provides: qgtkstyle = 0.1 2009-02-22 22:55:49 +00:00
Rex Dieter 747f1a22bd - revert license, change won't land until official 4.5.0 release
- workaround broken qhostaddress.h (#485677)
2009-02-22 19:53:05 +00:00
Rex Dieter c5c71b0706 - saner versioned Obsoletes
- -gtkstyle, Obsoletes: qgtkstyle < 0.1
- enable phonon support and associated hackery
2009-02-21 02:21:22 +00:00
Than Ngo 47eb6e4a3b initialize callgrindChildExitCode 2009-02-16 10:08:57 +00:00
Rex Dieter fcd6753d10 remove redundant GPLv2 2009-02-16 00:00:22 +00:00
Rex Dieter db977ee129 - qt-copy-patches-20090215
- License: +LGPLv2
2009-02-15 23:50:18 +00:00
Than Ngo ae3d78d82d 4.5.0-rc1 2009-02-14 23:43:00 +00:00
Rex Dieter a39b220c7b - track branches/qt-copy/4.4, and backout previous trunk(qt45) ones 2009-02-05 19:36:47 +00:00
Rex Dieter bac96cf822 finish conversion to tracking branches/qt/4.4 2009-02-05 19:25:26 +00:00
Rex Dieter 801051fd1f update to follow branches/qt/4.4 2009-02-05 19:11:30 +00:00
Than Ngo e29089f116 disable 0269,0270,0271 patches, it causes issue in systray 2009-02-02 14:38:38 +00:00
Rex Dieter 36795fab23 - qt-copy-patches-20090129 2009-01-29 17:57:47 +00:00
Rex Dieter 012cd169a7 Add %%_qt4 to macros.qt4 VS:
----------------------------------------------------------------------
2009-01-27 00:15:40 +00:00
Rex Dieter 09faad44d7 - Provides: qt4%{?_isa} = %version-%release 2009-01-26 23:58:16 +00:00
Rex Dieter a0e250f55d - respin (mysql) 2009-01-22 21:10:00 +00:00
Kevin Kofler aa687dbf4c - rebuild for new OpenSSL 2009-01-16 10:12:51 +00:00
Rex Dieter 3f4b7bb3d0 drop old patch 2009-01-13 20:04:52 +00:00
Rex Dieter 300626bc4e - drop qt-x11-opensource-src-4.3.4-no-hardcoded-font-aliases.patch
(#447298), in favor of qt-copy's 0263-fix-fontconfig-handling.diff
2009-01-12 20:15:44 +00:00
Than Ngo c1bd8b0482 qt-copy-patches-20090112 2009-01-12 12:09:49 +00:00
Rex Dieter 9aee138790 - qt-copy-patches-20081225 2008-12-30 06:25:52 +00:00
Rex Dieter c4d3c00a7f - rebuild for pkgconfig deps 2008-12-12 21:19:24 +00:00
Rex Dieter db5a956ab5 - qt-copy-patches-20081112 2008-11-12 14:34:33 +00:00
Rex Dieter 91de731c28 include 0256 qt-copy patch separately (if not using other qt-copy patches) 2008-11-10 17:37:23 +00:00
Rex Dieter d04d702331 - qt-copy-pathes-20081110 2008-11-10 14:24:35 +00:00
Than Ngo ca8f5e2ece - bz#468814, immodule selection behavior is unpredictable without
QT_IM_MODULE, patch from Peng Wu
- backport fix from 4.5
2008-11-06 13:36:05 +00:00
Rex Dieter 6c5f5e973d s/sparc/sparcv9/ 2008-09-29 15:51:41 +00:00
Rex Dieter ea46a796cb - 4.4.3 2008-09-28 19:45:23 +00:00
Rex Dieter f0f69bab2d - omit systray patch (for now) 2008-09-24 18:30:02 +00:00
Than Ngo 1be86990b9 4.4.2 2008-09-21 22:17:00 +00:00
Rex Dieter 95443e61d5 fix QMAKEPATH patch 2008-09-08 16:41:47 +00:00
Rex Dieter 861c0245e6 - apply QMAKEPATH portion of multilib patch only if needed
- qt-copy-patches-20080908
2008-09-08 16:12:59 +00:00
Rex Dieter bcb50bbaf0 prune cruft 2008-08-06 13:16:13 +00:00
Rex Dieter a6f6f42415 - fix Obsoletes: qt-sqlite (missing epoch) 2008-08-06 13:10:37 +00:00
Than Ngo f68ee7fa0c fix license tag 2008-08-06 10:46:33 +00:00
Than Ngo 3b343eda5c fix rpm file list 2008-08-06 08:05:51 +00:00
Than Ngo dd242a02f5 apply patch to fix regression 2008-08-06 08:04:36 +00:00
Rex Dieter 0ead5f67ab since no 4.4.1-1 build exists yet, forward port
Tue Aug 05 2008 Rex Dieter <rdieter@fedoraproject.org> 4.4.0-17
- fold -sqlite subpkg into main (#454930)
2008-08-06 03:18:59 +00:00
Than Ngo 9e444df86a 4.4.1 2008-08-05 13:16:19 +00:00
Than Ngo 497c86b1ba update 4.4.1 2008-08-05 12:25:41 +00:00
Kevin Kofler d233d2ffc0 Remove unused patch. 2008-07-23 16:26:44 +00:00
Rex Dieter d02f49b3a0 - qt-copy-patches-20080723 (kde#162793)
- omit deprecated phonon bits
2008-07-23 14:12:54 +00:00
Rex Dieter cc468676a9 - fix/workaround spec syntax 2008-07-19 18:33:20 +00:00
Rex Dieter a3f8946ee1 fix spec syntax error (imo, workaround rpm regression) 2008-07-19 17:50:28 +00:00
Rex Dieter 08842b7697 try to get new rpm to work 2008-07-19 14:06:10 +00:00
Rex Dieter 490f8076b6 - macros.qt4: fix %_qt4_datadir, %_qt4_translationdir 2008-07-19 13:37:19 +00:00
Rex Dieter 813d7daf81 fix %%qt4_translation dir 2008-07-19 13:36:53 +00:00
Rex Dieter 5916cb88b3 - macros.qt4: fix %_qt4_datadir 2008-07-19 13:26:06 +00:00
Rex Dieter 4318b1a15d - (re)fix qconfig-multilib.h for sparc64 2008-07-17 12:40:39 +00:00
Rex Dieter e41dcd8d24 - qt-copy-patches-20080711 2008-07-12 01:31:46 +00:00
Rex Dieter 0d7eb275c0 - fix dbus conditional (#452487) 2008-06-23 13:20:38 +00:00
Kevin Kofler bfc40e15e0 Remove no longer used qt4-wrapper.sh so we don't waste any more time fixing
typos in it. ;-)
2008-06-14 23:36:42 +00:00
Rex Dieter 83e88b94b1 revert typo 2008-06-14 21:52:10 +00:00
Rex Dieter 7ac2057db1 - strip -lsqlite3 from .pc files (#451490) 2008-06-14 21:38:08 +00:00
Kevin Kofler 1bbe97aef2 - restore -qt4 suffixes 2008-06-14 02:32:46 +00:00
Than Ngo 7bb6c94cca cleanup 2008-06-13 20:37:56 +00:00
Than Ngo 47705af03f missing popd 2008-06-13 17:29:24 +00:00
Than Ngo 121e487da7 let rpm handle binaries conflicts 2008-06-13 17:27:49 +00:00
Than Ngo 0e3110f10d use correct name 2008-06-13 17:21:51 +00:00
Than Ngo a09a858994 drop qt wrapper, make symlinks to /usr/bin 2008-06-13 17:16:54 +00:00
Than Ngo 1d8af1bd5d fix #450310, multilib issue 2008-06-10 13:18:11 +00:00
Rex Dieter 74d624a878 - qt-copy-patches-20080606
- drop BR: libungif-devel (not used)
- move libQtXmlPatters, -x11 -> main
- move qdbuscpp2xml, qdbusxml2cpp, xmlpatters, -x11 -> -devel
2008-06-06 15:59:50 +00:00
Kevin Kofler 9308ff523a - under GNOME, default to QGtkStyle if available 2008-05-27 20:42:17 +00:00
Kevin Kofler 0e707c2ee0 - don't hardcode incorrect font substitutions (#447298) 2008-05-19 13:54:51 +00:00
Rex Dieter 72d6e2ee5c - qt-copy-patches-20080516 2008-05-16 12:35:02 +00:00
Kevin Kofler 81bfcda79f Fix file list for _qt4_bindir != _bindir case. 2008-05-13 08:31:16 +00:00
Kevin Kofler 0282604344 - revert _qt4_bindir change for now, needs more work (#446167) 2008-05-13 07:21:35 +00:00
Rex Dieter f0a72e0d97 use .tar.bz2 2008-05-06 18:01:19 +00:00
Rex Dieter 81caa84fba - qt-4.4.0 2008-05-06 17:28:32 +00:00
Rex Dieter ea2b22306c typo (#$#!$!) 2008-04-29 20:59:51 +00:00
Rex Dieter 41247725a9 - -webkit (include in -x11 subpkg), drop separate -webkit-devel
- omit qt4-wrapper.sh deps (since it's not used atm)
- qt-copy-patches-20080429
- Obsoletes/Provides: WebKit-qt(-devel) <|= 1.0.0-1 (#442200)
2008-04-29 20:03:57 +00:00
Kevin Kofler 46360e8ff9 Explain why the Requires are commented out. 2008-04-24 13:10:10 +00:00
Rex Dieter 89e1f88570 - strip -lssl -lcrypto from *.pc files too 2008-04-24 12:46:25 +00:00
Kevin Kofler 90491cb427 Port the as_IN patch to Qt 4.4 (the code moved to harfbuzz). 2008-04-08 02:44:04 +00:00
Kevin Kofler 092c345431 Actually enable the patch in devel too (let's see what breaks and fix
it...).
2008-04-08 01:38:32 +00:00
Kevin Kofler 719567393f - updated patch for #437440 ([as-IN] Consonant combination issue) by Pravin
Satpute
2008-04-08 01:37:25 +00:00
Rex Dieter 6a87a7ac65 remove broken assistant-qt4 hack/patch 2008-04-04 20:03:04 +00:00
Rex Dieter e80da532e0 - qt-4.4.0-rc1
- -xmlpatterns (and drop -no-exceptions)
- -reduce-relocations, -dbus-linked, -openssl-linked
- -no-nas
- -no-phonon (-no-gstreamer), -no-webkit (for now, at least until conflicts
    with WebKit-qt and kdelibs4 are sorted out)
- %_qt4_bindir -> %_bindir, avoid qt4-wrapper hackage (#277581, #422291)
- qtconfig.desktop: NoDisplay=true (#244879)
2008-04-04 19:55:19 +00:00
Kevin Kofler 73fb4fbec8 - look for OpenSSL using versioned sonames (#432271) 2008-04-02 03:02:20 +00:00
Than Ngo 3d1657baa2 fix release number 2008-03-26 11:29:03 +00:00
Than Ngo 2df14c171a apply patch bz#437440 to fix [as-IN] Consonant combination issue, thanks to
Pravin Satpute
2008-03-26 11:27:21 +00:00
Kevin Kofler 6555ccf319 - -x11: add missing Provides: qt4-assistant when building as qt 2008-03-23 09:30:09 +00:00
Kevin Kofler 5178f76e87 - fix Requires of main package to include Epoch (thanks to Christopher
Aillon)
2008-03-13 09:57:02 +00:00
Kevin Kofler b1128646fc Upgrade to Qt 4:
remove Qt 3 files
copy Qt 4 from qt4/devel
Wed Mar 12 2008 Kevin Kofler <Kevin@tigcc.ticalc.org> 4.3.4-6
- rename to qt on Fedora >= 9
2008-03-12 23:38:15 +00:00
Kevin Kofler ff83e35ad4 - prepare for rename to qt3 on Fedora >= 9 (not enabled yet)
- add Provides and Obsoletes everywhere
- update summaries and descriptions
- remove dots at end of Summary tags
- fix non-UTF-8 characters
2008-03-11 17:17:16 +00:00
Than Ngo db240ed9b8 - 0088-fix-xinput-clash.diff, fix compile errors with Xmd.h
- remove 0076-fix-qprocess.diff 0081-format-string-fixes.diff, both already
    included in new release
2008-03-11 13:18:15 +00:00
Than Ngo e24de8996b - 0088-fix-xinput-clash.diff, fix compile errors with Xmd.h
- 0076-fix-qprocess.diff, fix a regression in QProgress::writeToStdin()
- 0081-format-string-fixes.diff, fix various format string errors on Qt 3.x
    code base
2008-03-11 11:29:25 +00:00
Than Ngo d8796480b3 - move qt.[c]sh in main package (#221000) 2008-03-07 14:40:05 +00:00
Kevin Kofler abfde4ddf0 Add BZ ID (#433235). 2008-02-18 11:05:25 +00:00
Kevin Kofler c1d2ae60a9 - fix buildkey for GCC 4.3 2008-02-18 11:03:02 +00:00
Than Ngo 337ddfff5a rebuild against gcc 4.3 2008-02-16 08:57:17 +00:00
Than Ngo 74efb849cf rebuild against gcc 4.3 2008-02-15 23:45:36 +00:00
Than Ngo 8e0027bc34 rebuild for GCC 4.3 2008-02-11 15:04:45 +00:00
Than Ngo 04c69a92e1 add LICENSE.GPL2/GPL3 2008-01-24 15:01:17 +00:00
Than Ngo fc54e9a090 - merged in 3.3.8b -> drop following patches:
qt-3.3.6-fontrendering-punjabi-209970.patch
qt-3.3.6-fontrendering-or_IN-209098.patch
qt-3.3.6-fontrendering-gu-228451.patch
qt-font-default-subst.diff
0076-fix-qprocess.diff
0082-fix-qdatetime-fromstring.diff
qt-x11-free-3.3.8-bz#243722-mysql.patch
qt3-CVE-2007-3388.patch
utf8-bug-qt3-CVE-2007-0242.diff
qt-3.3.6-bz#292941-CVE-2007-4137.patch
2008-01-24 14:05:28 +00:00
Than Ngo 492ab3da2e update qt-x11-free-3.3.8b-uic-multilib.patch 2008-01-24 12:34:05 +00:00
Than Ngo 30b96ac435 License: GPLv2 or GPLv3 2008-01-24 11:28:44 +00:00
Than Ngo 25c2f7c06f update to 3.3.8b, fix License 2008-01-23 16:04:01 +00:00
Than Ngo cc62b44d5d update to 3.3.8b, fix License 2008-01-23 15:58:17 +00:00
Than Ngo b86078ddd1 duplicate 2007-11-26 15:32:22 +00:00
Than Ngo ba0f5c5d1f - rh#228453, Independent Vowel is treated as Dependent vowel, thanks to
LingNing Zhang
- add Provides: qt3 = %%version-%%release
2007-11-26 14:37:55 +00:00
Than Ngo 1d370e8188 - rh#228453, Independent Vowel is treated as Dependent vowel, thanks to
LingNing Zhang
- add Provides: qt3 = %%version-%%release
2007-11-26 14:36:18 +00:00
Štěpán Kasal cbb99620c0 - rh#239216, fix a typo in qt-config description 2007-11-08 16:09:28 +00:00
Bill Nottingham 43e474a4ad makefile update to properly grab makefile.common 2007-10-15 19:19:42 +00:00
113 changed files with 7656 additions and 4153 deletions

View File

@ -1,9 +0,0 @@
qt-x11-free-3.3.3.tar.bz2
qt-x11-immodule-unified-qt3.3.3-20040910.diff.bz2
qt-x11-immodule-unified-qt3.3.4-20041203.diff.bz2
qt-x11-free-3.3.4.tar.bz2
qt-x11-free-3.3.5.tar.bz2
qt-x11-immodule-unified-qt3.3.5-20051012.diff.bz2
qt-x11-immodule-unified-qt3.3.5-20051018.diff.bz2
qt-x11-immodule-unified-qt3.3.7-20061229.diff.bz2
qt-x11-free-3.3.8.tar.bz2

3
.gitignore vendored Normal file
View File

@ -0,0 +1,3 @@
/hi128-app-qt4-logo.png
/hi48-app-qt4-logo.png
/qt-everywhere-opensource-src-4.8.7.tar.gz

View File

@ -1,57 +0,0 @@
qt-bugs@ issue : 38642
bugs.kde.org number : 71084
applied: no
author: Lubos Lunak <l.lunak@kde.org>
Hello,
start Mozilla, go e.g. to http://kde.org, start KWrite (or basically any Qt
app that accepts text drops), select 'Conquer your Desktop!', and try to
drag&drop it onto KWrite. The only text pasted should be 'm'.
I don't know much the related mimetype and encoding stuff, so I'm unsure
whose fault this actually is. The text drag is provided as a lot of
text/something targets, to list some text/_moz_htmlinfo, text/x-moz-url,
text/unicode and similar. The problem is, Kate uses QTextDrag::decode() with
no subtype specified, probably with the intention that as Kate is a text
editor, it can accept any text pasted. And since the first target provided by
mozilla is text/x-moz-url, (which moreover seems to be encoded as 16bit
unicode), the text dropped is completely wrong. You can easily see all
targets provided by Mozilla with see_mime.patch applied.
Solution #1: Say that Kate (any pretty much everybody else expecting text)
should say "plain" as the subtype. In such case, I suggest you drop the
QTextDrag::decode() variant with no subtype specified, and stress more the
fact that not specifying a subtype can result in a lot of rubbish. It's
simply too tempting to leave the subtype empty and try to accept anything.
Solution #2: When trying to accept anything, try to get useful data. Which
means either sorting the subtypes available somehow, checking only the ones
Qt knows.
To me, #1 seems to be a better choice, or possibly at least something like
the attached QTextDrag patch, which simply always tries first "plain" subtype
if none is specified. With this patch, Mozilla even works (that's irony, of
course, Mozilla still pastes the text/plain text as HTML, but at least now it
pastes something where it's easy to point at the offender).
--- src/kernel/qdragobject.cpp.sav 2004-01-06 19:24:35.000000000 +0100
+++ src/kernel/qdragobject.cpp 2004-01-06 19:47:01.000000000 +0100
@@ -844,6 +844,16 @@ bool QTextDrag::decode( const QMimeSourc
{
if(!e)
return FALSE;
+
+ // when subtype is not specified, try text/plain first, otherwise this may read
+ // things like text/x-moz-url even though better targets are available
+ if( subtype.isNull()) {
+ QCString subtmp = "plain";
+ if( decode( e, str, subtmp )) {
+ subtype = subtmp;
+ return true;
+ }
+ }
if ( e->cacheType == QMimeSource::Text ) {
str = *e->cache.txt.str;

View File

@ -1,25 +0,0 @@
qt-bugs@ issue: N46882
bugs.kde.org number: 77545
applied: no
author: Stephan Binner <binner@kde.org>
Fix wrong K menu width for the case of enabled side pixmap and a menu title
(like "Recently Used Applications") being longer than every other entry.
Solution: Respect PanelKMenu::setMaximumSize() as up to Qt 3.2.3
Index: src/widgets/qpopupmenu.cpp
===================================================================
RCS file: /home/kde/qt-copy/src/widgets/qpopupmenu.cpp,v
retrieving revision 1.60
diff -u -3 -p -b -r1.60 qpopupmenu.cpp
--- src/widgets/qpopupmenu.cpp 29 Apr 2004 22:31:28 -0000 1.60
+++ src/widgets/qpopupmenu.cpp 30 Apr 2004 01:11:59 -0000
@@ -2531,7 +2531,7 @@ QSize QPopupMenu::sizeHint() const
QPopupMenu* that = (QPopupMenu*) this;
//We do not need a resize here, just the sizeHint..
- return that->updateSize(FALSE, FALSE).expandedTo( QApplication::globalStrut() );
+ return that->updateSize(FALSE).expandedTo( QApplication::globalStrut() );
}

View File

@ -1,48 +0,0 @@
qt-bugs@ issue : none, probably even won't be
bugs.kde.org number : 80072
applied: no
author: Lubos Lunak <l.lunak@kde.org>
A crude hack for KDE #80072. No good idea how to fix it properly yet :(.
--- src/kernel/qclipboard_x11.cpp.sav 2004-04-30 12:00:06.000000000 +0200
+++ src/kernel/qclipboard_x11.cpp 2004-05-09 21:18:10.269264304 +0200
@@ -109,6 +109,7 @@ static int pending_timer_id = 0;
static bool pending_clipboard_changed = FALSE;
static bool pending_selection_changed = FALSE;
+Q_EXPORT bool qt_qclipboard_bailout_hack = false;
// event capture mechanism for qt_xclb_wait_for_event
static bool waiting_for_data = FALSE;
@@ -453,6 +454,15 @@ static int qt_xclb_event_filter(XEvent *
return 0;
}
+static bool selection_request_pending = false;
+
+static Bool check_selection_request_pending( Display*, XEvent* e, XPointer )
+ {
+ if( e->type == SelectionRequest && e->xselectionrequest.owner == owner->winId())
+ selection_request_pending = true;
+ return False;
+ }
+
bool qt_xclb_wait_for_event( Display *dpy, Window win, int type, XEvent *event,
int timeout )
{
@@ -504,6 +514,14 @@ bool qt_xclb_wait_for_event( Display *dp
do {
if ( XCheckTypedWindowEvent(dpy,win,type,event) )
return TRUE;
+ if( qt_qclipboard_bailout_hack ) {
+ XEvent dummy;
+ selection_request_pending = false;
+ if ( owner != NULL )
+ XCheckIfEvent(dpy,&dummy,check_selection_request_pending,NULL);
+ if( selection_request_pending )
+ return TRUE;
+ }
now = QTime::currentTime();
if ( started > now ) // crossed midnight

View File

@ -1,21 +0,0 @@
qt-bugs@ issue : 58251
bugs.kde.org number : 84434
applied: no
author: Lubos Lunak <l.lunak@kde.org>
Fixes keyboard input action in KHotKeys (see bug #84434).
--- src/kernel/qapplication_x11.cpp.sav 2004-10-07 15:38:05.000000000 +0200
+++ src/kernel/qapplication_x11.cpp 2004-10-12 11:46:32.513137808 +0200
@@ -5294,8 +5294,10 @@ static Bool qt_keypress_scanner(Display
qt_auto_repeat_data *d = (qt_auto_repeat_data *) arg;
if (d->error ||
event->xkey.window != d->window ||
- event->xkey.keycode != d->keycode)
+ event->xkey.keycode != d->keycode) {
+ d->error = TRUE;
return FALSE;
+ }
if (event->type == XKeyPress) {
d->error = (! d->release || event->xkey.time - d->timestamp > 10);

View File

@ -1,113 +0,0 @@
qt-bugs@ issue : none
bugs.kde.org number : none
applied: no
author: Lubos Lunak <l.lunak@kde.org>
Makes QPopupMenu aware of Xinerama (see e.g. https://bugzilla.novell.com/show_bug.cgi?id=216235).
--- src/widgets/qpopupmenu.cpp
+++ src/widgets/qpopupmenu.cpp
@@ -454,6 +454,15 @@ void QPopupMenu::frameChanged()
menuContentsChanged();
}
+QRect QPopupMenu::screenRect( const QPoint& pos )
+{
+ int screen_num = QApplication::desktop()->screenNumber( pos );
+#ifdef Q_WS_MAC
+ return QApplication::desktop()->availableGeometry( screen_num );
+#else
+ return QApplication::desktop()->screenGeometry( screen_num );
+#endif
+}
/*!
Displays the popup menu so that the item number \a indexAtPoint
will be at the specified \e global position \a pos. To translate a
@@ -498,6 +507,15 @@ void QPopupMenu::popup( const QPoint &po
// point.
#endif
+ QRect screen = screenRect( geometry().center());
+ QRect screen2 = screenRect( QApplication::reverseLayout()
+ ? pos+QPoint(width(),0) : pos );
+ // if the widget is not in the screen given by the position, move it
+ // there, so that updateSize() uses the right size of the screen
+ if( screen != screen2 ) {
+ screen = screen2;
+ move( screen.x(), screen.y());
+ }
if(d->scroll.scrollable) {
d->scroll.scrollable = QPopupMenuPrivate::Scroll::ScrollNone;
d->scroll.topScrollableIndex = d->scroll.scrollableSize = 0;
@@ -517,18 +535,6 @@ void QPopupMenu::popup( const QPoint &po
updateSize(TRUE);
}
- int screen_num;
- if (QApplication::desktop()->isVirtualDesktop())
- screen_num =
- QApplication::desktop()->screenNumber( QApplication::reverseLayout() ?
- pos+QPoint(width(),0) : pos );
- else
- screen_num = QApplication::desktop()->screenNumber( this );
-#ifdef Q_WS_MAC
- QRect screen = QApplication::desktop()->availableGeometry( screen_num );
-#else
- QRect screen = QApplication::desktop()->screenGeometry( screen_num );
-#endif
int sw = screen.width(); // screen width
int sh = screen.height(); // screen height
int sx = screen.x(); // screen pos
@@ -1056,7 +1062,7 @@ QSize QPopupMenu::updateSize(bool force_
mi->iconSet()->pixmap( QIconSet::Small, QIconSet::Normal ).width() + 4 );
}
- int dh = QApplication::desktop()->height();
+ int dh = screenRect( geometry().center()).height();
ncols = 1;
for ( QMenuItemListIt it2( *mitems ); it2.current(); ++it2 ) {
@@ -2297,9 +2303,9 @@ void QPopupMenu::subMenuTimer() {
bool right = FALSE;
if ( ( parentMenu && parentMenu->isPopupMenu &&
((QPopupMenu*)parentMenu)->geometry().x() < geometry().x() ) ||
- p.x() < 0 )
+ p.x() < screenRect( p ).left())
right = TRUE;
- if ( right && (ps.width() > QApplication::desktop()->width() - mapToGlobal( r.topRight() ).x() ) )
+ if ( right && (ps.width() > screenRect( p ).right() - mapToGlobal( r.topRight() ).x() ) )
right = FALSE;
if ( right )
p.setX( mapToGlobal( r.topRight() ).x() );
@@ -2310,7 +2316,7 @@ void QPopupMenu::subMenuTimer() {
bool left = FALSE;
if ( ( parentMenu && parentMenu->isPopupMenu &&
((QPopupMenu*)parentMenu)->geometry().x() > geometry().x() ) ||
- p.x() + ps.width() > QApplication::desktop()->width() )
+ p.x() + ps.width() > screenRect( p ).right() )
left = TRUE;
if ( left && (ps.width() > mapToGlobal( r.topLeft() ).x() ) )
left = FALSE;
@@ -2318,8 +2324,8 @@ void QPopupMenu::subMenuTimer() {
p.setX( mapToGlobal( r.topLeft() ).x() - ps.width() );
}
QRect pr = popup->itemGeometry(popup->count() - 1);
- if (p.y() + ps.height() > QApplication::desktop()->height() &&
- p.y() - ps.height() + (QCOORD) pr.height() >= 0)
+ if (p.y() + ps.height() > screenRect( p ).bottom() &&
+ p.y() - ps.height() + (QCOORD) pr.height() >= screenRect( p ).top())
p.setY( p.y() - ps.height() + (QCOORD) pr.height());
if ( style().styleHint(QStyle::SH_PopupMenu_SloppySubMenus, this )) {
Index: src/widgets/qpopupmenu.h
===================================================================
--- src/widgets/qpopupmenu.h (revision 636368)
+++ src/widgets/qpopupmenu.h (working copy)
@@ -152,6 +152,7 @@ private:
QSize updateSize(bool force_recalc=FALSE, bool do_resize=TRUE);
void updateRow( int row );
+ QRect screenRect(const QPoint& pos);
#ifndef QT_NO_ACCEL
void updateAccel( QWidget * );
void enableAccel( bool );

View File

@ -1,19 +0,0 @@
qt-bugs@ issue : none
bugs.kde.org number : none
applied: no
author: from trolltech
Fixes a regression in QProgress::writeToStdin()
--- src/kernel/qprocess.cpp
+++ src/kernel/qprocess.cpp
@@ -727,7 +727,7 @@ void QProcess::closeStdinLaunch()
void QProcess::writeToStdin( const QString& buf )
{
QByteArray tmp = buf.local8Bit();
- tmp.resize( tmp.size() - 1 ); // drop the implicit \0
+ tmp.resize( qstrlen( tmp.data() ) );
writeToStdin( tmp );
}

View File

@ -1,109 +0,0 @@
qt-bugs@ issue : N154454
bugs.kde.org number : none
applied: no
author: Dirk Mueller <mueller@kde.org>
This patch makes the utf8 decoders in Qt reject overlong
sequences, like required.
--- src/codecs/qutfcodec.cpp
+++ src/codecs/qutfcodec.cpp
@@ -154,6 +154,7 @@
class QUtf8Decoder : public QTextDecoder {
uint uc;
+ uint min_uc;
int need;
bool headerDone;
public:
@@ -167,8 +168,9 @@
result.setLength( len ); // worst case
QChar *qch = (QChar *)result.unicode();
uchar ch;
+ int error = -1;
for (int i=0; i<len; i++) {
- ch = *chars++;
+ ch = chars[i];
if (need) {
if ( (ch&0xc0) == 0x80 ) {
uc = (uc << 6) | (ch & 0x3f);
@@ -182,6 +184,8 @@
*qch++ = QChar(high);
*qch++ = QChar(low);
headerDone = TRUE;
+ } else if ((uc < min_uc) || (uc >= 0xd800 && uc <= 0xdfff) || (uc >= 0xfffe)) {
+ *qch++ = QChar::replacement;
} else {
if (headerDone || QChar(uc) != QChar::byteOrderMark)
*qch++ = uc;
@@ -190,6 +194,7 @@
}
} else {
// error
+ i = error;
*qch++ = QChar::replacement;
need = 0;
}
@@ -200,12 +205,21 @@
} else if ((ch & 0xe0) == 0xc0) {
uc = ch & 0x1f;
need = 1;
+ error = i;
+ min_uc = 0x80;
} else if ((ch & 0xf0) == 0xe0) {
uc = ch & 0x0f;
need = 2;
+ error = i;
+ min_uc = 0x800;
} else if ((ch&0xf8) == 0xf0) {
uc = ch & 0x07;
need = 3;
+ error = i;
+ min_uc = 0x10000;
+ } else {
+ // error
+ *qch++ = QChar::replacement;
}
}
}
--- src/tools/qstring.cpp
+++ src/tools/qstring.cpp
@@ -5805,6 +5805,7 @@
result.setLength( len ); // worst case
QChar *qch = (QChar *)result.unicode();
uint uc = 0;
+ uint min_uc = 0;
int need = 0;
int error = -1;
uchar ch;
@@ -5822,6 +5823,12 @@
unsigned short low = uc%0x400 + 0xdc00;
*qch++ = QChar(high);
*qch++ = QChar(low);
+ } else if (uc < min_uc || (uc >= 0xd800 && uc <= 0xdfff) || (uc >= 0xfffe)) {
+ // overlong seqence, UTF16 surrogate or BOM
+ i = error;
+ qch = addOne(qch, result);
+ *qch++ = QChar(0xdbff);
+ *qch++ = QChar(0xde00+((uchar)utf8[i]));
} else {
*qch++ = uc;
}
@@ -5844,14 +5851,17 @@
uc = ch & 0x1f;
need = 1;
error = i;
+ min_uc = 0x80;
} else if ((ch & 0xf0) == 0xe0) {
uc = ch & 0x0f;
need = 2;
error = i;
+ min_uc = 0x800;
} else if ((ch&0xf8) == 0xf0) {
uc = ch & 0x07;
need = 3;
error = i;
+ min_uc = 0x10000;
} else {
// Error
qch = addOne(qch, result);

View File

@ -1,424 +0,0 @@
qt-bugs@ issue : none
bugs.kde.org number : none
applied: no
author: Lubos Lunak <l.lunak@kde.org>
This patch adds support for window types used for compositing (popup menu, dropdown menu,
tooltip, combobox, dnd).
--- src/kernel/qdnd_x11.cpp.sav 2007-05-25 18:56:23.000000000 +0200
+++ src/kernel/qdnd_x11.cpp 2007-05-31 10:30:58.000000000 +0200
@@ -261,6 +261,7 @@ public:
QWidget(QApplication::desktop()->screen( screen ),
0, WStyle_Customize | WStyle_Tool | WStyle_NoBorder | WX11BypassWM ), oldpmser( 0 ), oldbmser( 0 )
{
+ x11SetWindowType( X11WindowTypeDND );
}
void setPixmap(QPixmap pm, QPoint hot)
@@ -1221,6 +1222,7 @@ void QDragManager::move( const QPoint &
// recreate the pixmap on the new screen...
delete qt_xdnd_deco;
qt_xdnd_deco = new QShapedPixmapWidget( screen );
+ qt_xdnd_deco->x11SetWindowTransient( dragSource->topLevelWidget());
if (!QWidget::mouseGrabber()) {
updatePixmap();
qt_xdnd_deco->grabMouse();
@@ -1774,6 +1776,7 @@ bool QDragManager::drag( QDragObject * o
dragSource = (QWidget *)(object->parent());
+ qt_xdnd_deco->x11SetWindowTransient( dragSource->topLevelWidget());
qApp->installEventFilter( this );
qt_xdnd_source_current_time = qt_x_time;
XSetSelectionOwner( QPaintDevice::x11AppDisplay(), qt_xdnd_selection,
--- src/kernel/qapplication_x11.cpp.sav 2007-05-29 16:24:58.000000000 +0200
+++ src/kernel/qapplication_x11.cpp 2007-05-31 10:30:58.000000000 +0200
@@ -268,6 +268,11 @@ Atom qt_net_wm_window_type_menu = 0;
Atom qt_net_wm_window_type_utility = 0;
Atom qt_net_wm_window_type_splash = 0;
Atom qt_net_wm_window_type_override = 0; // KDE extension
+Atom qt_net_wm_window_type_dropdown_menu = 0;
+Atom qt_net_wm_window_type_popup_menu = 0;
+Atom qt_net_wm_window_type_tooltip = 0;
+Atom qt_net_wm_window_type_combo = 0;
+Atom qt_net_wm_window_type_dnd = 0;
Atom qt_net_wm_frame_strut = 0; // KDE extension
Atom qt_net_wm_state_stays_on_top = 0; // KDE extension
Atom qt_net_wm_pid = 0;
@@ -1920,6 +1925,11 @@ void qt_init_internal( int *argcptr, cha
qt_x11_intern_atom( "_NET_WM_WINDOW_TYPE_UTILITY", &qt_net_wm_window_type_utility );
qt_x11_intern_atom( "_NET_WM_WINDOW_TYPE_SPLASH", &qt_net_wm_window_type_splash );
qt_x11_intern_atom( "_KDE_NET_WM_WINDOW_TYPE_OVERRIDE", &qt_net_wm_window_type_override );
+ qt_x11_intern_atom( "_NET_WM_WINDOW_TYPE_DROPDOWN_MENU", &qt_net_wm_window_type_dropdown_menu );
+ qt_x11_intern_atom( "_NET_WM_WINDOW_TYPE_POPUP_MENU", &qt_net_wm_window_type_popup_menu );
+ qt_x11_intern_atom( "_NET_WM_WINDOW_TYPE_TOOLTIP", &qt_net_wm_window_type_tooltip );
+ qt_x11_intern_atom( "_NET_WM_WINDOW_TYPE_COMBO", &qt_net_wm_window_type_combo );
+ qt_x11_intern_atom( "_NET_WM_WINDOW_TYPE_DND", &qt_net_wm_window_type_dnd );
qt_x11_intern_atom( "_KDE_NET_WM_FRAME_STRUT", &qt_net_wm_frame_strut );
qt_x11_intern_atom( "_NET_WM_STATE_STAYS_ON_TOP",
&qt_net_wm_state_stays_on_top );
--- src/kernel/qwidget_x11.cpp.sav 2007-05-25 18:56:23.000000000 +0200
+++ src/kernel/qwidget_x11.cpp 2007-05-31 10:30:58.000000000 +0200
@@ -125,6 +125,11 @@ extern Atom qt_net_wm_window_type_menu;
extern Atom qt_net_wm_window_type_utility;
extern Atom qt_net_wm_window_type_splash;
extern Atom qt_net_wm_window_type_override;
+extern Atom qt_net_wm_window_type_dropdown_menu;
+extern Atom qt_net_wm_window_type_popup_menu;
+extern Atom qt_net_wm_window_type_combo;
+extern Atom qt_net_wm_window_type_dnd;
+extern Atom qt_net_wm_window_type_tooltip;
extern Atom qt_net_wm_pid;
extern Atom qt_net_wm_user_time;
extern Atom qt_enlightenment_desktop;
@@ -448,10 +453,6 @@ void QWidget::create( WId window, bool i
x11Colormap() );
#endif // QT_NO_XFTFREETYPE
- // NET window types
- long net_wintypes[7] = { 0, 0, 0, 0, 0, 0, 0 };
- int curr_wintype = 0;
-
// NET window states
long net_winstates[6] = { 0, 0, 0, 0, 0, 0 };
int curr_winstate = 0;
@@ -473,7 +474,6 @@ void QWidget::create( WId window, bool i
if ( testWFlags(WStyle_Splash) ) {
if (qt_net_supports(qt_net_wm_window_type_splash)) {
clearWFlags( WX11BypassWM );
- net_wintypes[curr_wintype++] = qt_net_wm_window_type_splash;
} else {
setWFlags( WX11BypassWM | WStyle_Tool | WStyle_NoBorder );
}
@@ -482,27 +482,22 @@ void QWidget::create( WId window, bool i
mwmhints.decorations = 0L;
mwmhints.flags |= (1L << 1); // MWM_HINTS_DECORATIONS
- if ( testWFlags( WStyle_NoBorder ) ) {
- // override netwm type - quick and easy for KDE noborder
- net_wintypes[curr_wintype++] = qt_net_wm_window_type_override;
- } else {
- if ( testWFlags( WStyle_NormalBorder | WStyle_DialogBorder ) ) {
- mwmhints.decorations |= (1L << 1); // MWM_DECOR_BORDER
- mwmhints.decorations |= (1L << 2); // MWM_DECOR_RESIZEH
- }
+ if ( testWFlags( WStyle_NormalBorder | WStyle_DialogBorder ) ) {
+ mwmhints.decorations |= (1L << 1); // MWM_DECOR_BORDER
+ mwmhints.decorations |= (1L << 2); // MWM_DECOR_RESIZEH
+ }
- if ( testWFlags( WStyle_Title ) )
- mwmhints.decorations |= (1L << 3); // MWM_DECOR_TITLE
+ if ( testWFlags( WStyle_Title ) )
+ mwmhints.decorations |= (1L << 3); // MWM_DECOR_TITLE
- if ( testWFlags( WStyle_SysMenu ) )
- mwmhints.decorations |= (1L << 4); // MWM_DECOR_MENU
+ if ( testWFlags( WStyle_SysMenu ) )
+ mwmhints.decorations |= (1L << 4); // MWM_DECOR_MENU
- if ( testWFlags( WStyle_Minimize ) )
- mwmhints.decorations |= (1L << 5); // MWM_DECOR_MINIMIZE
+ if ( testWFlags( WStyle_Minimize ) )
+ mwmhints.decorations |= (1L << 5); // MWM_DECOR_MINIMIZE
- if ( testWFlags( WStyle_Maximize ) )
- mwmhints.decorations |= (1L << 6); // MWM_DECOR_MAXIMIZE
- }
+ if ( testWFlags( WStyle_Maximize ) )
+ mwmhints.decorations |= (1L << 6); // MWM_DECOR_MAXIMIZE
if (testWFlags(WStyle_Tool)) {
wsa.save_under = True;
@@ -522,23 +517,6 @@ void QWidget::create( WId window, bool i
}
}
- // ### need a better way to do this
- if (inherits("QPopupMenu")) {
- // menu netwm type
- net_wintypes[curr_wintype++] = qt_net_wm_window_type_menu;
- } else if (inherits("QToolBar")) {
- // toolbar netwm type
- net_wintypes[curr_wintype++] = qt_net_wm_window_type_toolbar;
- } else if (testWFlags(WStyle_Customize) && testWFlags(WStyle_Tool)) {
- // utility netwm type
- net_wintypes[curr_wintype++] = qt_net_wm_window_type_utility;
- }
-
- if (dialog) // dialog netwm type
- net_wintypes[curr_wintype++] = qt_net_wm_window_type_dialog;
- // normal netwm type - default
- net_wintypes[curr_wintype++] = qt_net_wm_window_type_normal;
-
// stays on top
if (testWFlags(WStyle_StaysOnTop)) {
net_winstates[curr_winstate++] = qt_net_wm_state_above;
@@ -573,6 +551,7 @@ void QWidget::create( WId window, bool i
wsa.save_under = True;
XChangeWindowAttributes( dpy, id, CWOverrideRedirect | CWSaveUnder,
&wsa );
+ x11SetWindowType();
} else if ( topLevel && !desktop ) { // top-level widget
QWidget *p = parentWidget(); // real parent
if (p)
@@ -632,12 +611,7 @@ void QWidget::create( WId window, bool i
else
XDeleteProperty(dpy, id, qt_xa_motif_wm_hints);
- // set _NET_WM_WINDOW_TYPE
- if (curr_wintype > 0)
- XChangeProperty(dpy, id, qt_net_wm_window_type, XA_ATOM, 32, PropModeReplace,
- (unsigned char *) net_wintypes, curr_wintype);
- else
- XDeleteProperty(dpy, id, qt_net_wm_window_type);
+ x11SetWindowType();
// set _NET_WM_WINDOW_STATE
if (curr_winstate > 0)
@@ -896,6 +870,64 @@ void QWidget::reparentSys( QWidget *pare
setMouseTracking(mouse_tracking);
}
+// Sets the EWMH (netwm) window type. Needed as a separate function
+// because create() may be too soon in some cases.
+void QWidget::x11SetWindowType( X11WindowType type )
+{
+ // NET window types
+ long net_wintypes[7] = { 0, 0, 0, 0, 0, 0, 0 };
+ int curr_wintype = 0;
+ if( testWFlags(WType_Desktop))
+ return;
+ if( type == X11WindowTypeSelect ) {
+ if ( testWFlags(WStyle_Splash)) {
+ if (qt_net_supports(qt_net_wm_window_type_splash)) {
+ net_wintypes[curr_wintype++] = qt_net_wm_window_type_splash;
+ }
+ } else if (inherits("QToolBar")) {
+ // toolbar netwm type
+ net_wintypes[curr_wintype++] = qt_net_wm_window_type_toolbar;
+ } else if (testWFlags(WStyle_Customize) && testWFlags(WStyle_Tool)) {
+ // utility netwm type
+ net_wintypes[curr_wintype++] = qt_net_wm_window_type_utility;
+ } else if (testWFlags(WType_Dialog)) {
+ // dialog netwm type
+ net_wintypes[curr_wintype++] = qt_net_wm_window_type_dialog;
+ }
+ } else if( type == X11WindowTypeCombo ) {
+ // combo netwm type
+ net_wintypes[curr_wintype++] = qt_net_wm_window_type_combo;
+ } else if( type == X11WindowTypeDND ) {
+ // dnd netwm type
+ net_wintypes[curr_wintype++] = qt_net_wm_window_type_dnd;
+ } else if( type == X11WindowTypeDropdown ) {
+ // dropdown netwm type
+ net_wintypes[curr_wintype++] = qt_net_wm_window_type_dropdown_menu;
+ } else if( type == X11WindowTypePopup ) {
+ // popup netwm type
+ net_wintypes[curr_wintype++] = qt_net_wm_window_type_popup_menu;
+ } else if( type == X11WindowTypeMenu ) {
+ // menu netwm type
+ net_wintypes[curr_wintype++] = qt_net_wm_window_type_menu;
+ } else if( type == X11WindowTypeTooltip ) {
+ // tooltip netwm type
+ net_wintypes[curr_wintype++] = qt_net_wm_window_type_tooltip;
+ }
+
+ // normal netwm type - default
+ net_wintypes[curr_wintype++] = qt_net_wm_window_type_normal;
+ // set _NET_WM_WINDOW_TYPE
+ if (curr_wintype > 0)
+ XChangeProperty(x11Display(), winId(), qt_net_wm_window_type, XA_ATOM, 32, PropModeReplace,
+ (unsigned char *) net_wintypes, curr_wintype);
+ else
+ XDeleteProperty(x11Display(), winId(), qt_net_wm_window_type);
+}
+
+void QWidget::x11SetWindowTransient( QWidget* parent )
+{
+ XSetTransientForHint( x11Display(), winId(), parent->winId());
+}
/*!
Translates the widget coordinate \a pos to global screen
--- src/kernel/qwidget.h.sav 2007-05-25 18:56:23.000000000 +0200
+++ src/kernel/qwidget.h 2007-05-31 10:30:58.000000000 +0200
@@ -464,7 +464,19 @@ public:
CGContextRef macCGContext(bool clipped=TRUE) const;
#endif
#endif
-
+#if defined(Q_WS_X11)
+ enum X11WindowType {
+ X11WindowTypeSelect,
+ X11WindowTypeCombo,
+ X11WindowTypeDND,
+ X11WindowTypeTooltip,
+ X11WindowTypeMenu, // torn-off
+ X11WindowTypeDropdown,
+ X11WindowTypePopup
+ };
+ void x11SetWindowType( X11WindowType type = X11WindowTypeSelect );
+ void x11SetWindowTransient( QWidget* parent );
+#endif
void setWindowOpacity(double level);
double windowOpacity() const;
--- src/dialogs/qdialog.cpp.sav 2007-05-25 18:56:23.000000000 +0200
+++ src/dialogs/qdialog.cpp 2007-05-31 10:30:58.000000000 +0200
@@ -668,10 +668,6 @@ bool QDialog::event( QEvent *e )
Geometry management.
*****************************************************************************/
-#if defined(Q_WS_X11)
-extern "C" { int XSetTransientForHint( Display *, unsigned long, unsigned long ); }
-#endif // Q_WS_X11
-
/*!
Shows the dialog as a \link #modeless modeless \endlink dialog.
Control returns immediately to the calling code.
@@ -705,7 +701,7 @@ void QDialog::show()
&& qApp->mainWidget() && qApp->mainWidget()->isVisible()
&& !qApp->mainWidget()->isMinimized()) {
// make sure the transient for hint is set properly for modal dialogs
- XSetTransientForHint( x11Display(), winId(), qApp->mainWidget()->winId() );
+ x11SetWindowTransient( qApp->mainWidget());
}
#endif // Q_WS_X11
--- src/widgets/qtooltip.cpp.sav 2007-05-25 18:56:23.000000000 +0200
+++ src/widgets/qtooltip.cpp 2007-05-31 10:30:58.000000000 +0200
@@ -72,6 +72,7 @@ public:
polish();
setText(text);
adjustSize();
+ x11SetWindowType( X11WindowTypeTooltip );
}
void setWidth( int w ) { resize( sizeForWidth( w ) ); }
};
@@ -528,6 +529,10 @@ void QTipManager::showTip()
if (!widget)
return;
+#ifdef Q_WS_X11
+ label->x11SetWindowTransient( widget->topLevelWidget());
+#endif
+
#ifdef Q_WS_MAC
QRect screen = QApplication::desktop()->availableGeometry( scr );
#else
--- src/widgets/qcombobox.cpp.sav 2007-05-25 18:56:23.000000000 +0200
+++ src/widgets/qcombobox.cpp 2007-05-31 10:49:13.000000000 +0200
@@ -389,12 +389,8 @@ public:
inline QListBox * listBox() { return lBox; }
inline QComboBoxPopup * popup() { return pop; }
void updateLinedGeometry();
-
- void setListBox( QListBox *l ) { lBox = l ; usingLBox = TRUE;
- l->setMouseTracking( TRUE );}
-
- void setPopupMenu( QComboBoxPopup * pm, bool isPopup=TRUE )
- { pop = pm; if(isPopup) usingLBox = FALSE; }
+ void setListBox( QListBox *l );
+ void setPopupMenu( QComboBoxPopup * pm, bool isPopup=TRUE );
int current;
int maxCount;
@@ -440,6 +436,30 @@ void QComboBoxData::updateLinedGeometry(
ed->setGeometry( r );
}
+void QComboBoxData::setListBox( QListBox *l )
+{
+ lBox = l;
+ usingLBox = TRUE;
+ l->setMouseTracking( TRUE );
+#ifdef Q_WS_X11
+ l->x11SetWindowType( QWidget::X11WindowTypeCombo );
+ l->x11SetWindowTransient( combo->topLevelWidget());
+#endif
+}
+
+void QComboBoxData::setPopupMenu( QComboBoxPopup * pm, bool isPopup )
+{
+ pop = pm;
+ if(isPopup)
+ usingLBox = FALSE;
+#ifdef Q_WS_X11
+ if( pm ) {
+ pm->x11SetWindowType( QWidget::X11WindowTypeCombo );
+ pm->x11SetWindowTransient( combo->topLevelWidget());
+ }
+#endif
+}
+
static inline bool checkInsertIndex( const char *method, const char * name,
int count, int *index)
{
--- src/widgets/qpopupmenu.cpp.sav 2007-05-25 18:56:23.000000000 +0200
+++ src/widgets/qpopupmenu.cpp 2007-05-31 11:09:22.000000000 +0200
@@ -298,6 +298,9 @@ QPopupMenu::QPopupMenu( QWidget *parent,
connectModalRecursionSafety = 0;
setFocusPolicy( StrongFocus );
+#ifdef Q_WS_X11
+ x11SetWindowType( X11WindowTypePopup );
+#endif
}
/*!
@@ -537,6 +540,29 @@ void QPopupMenu::popup( const QPoint &po
emit aboutToShow();
updateSize(TRUE);
}
+#ifdef Q_WS_X11
+#ifndef QT_NO_MENUBAR
+ QMenuData *top = this; // find top level
+ while ( top->parentMenu )
+ top = top->parentMenu;
+ if( top->isMenuBar )
+ x11SetWindowType( X11WindowTypeDropdown );
+ if( parentMenu && parentMenu->isMenuBar )
+ x11SetWindowTransient( static_cast< QMenuBar* >( parentMenu )->topLevelWidget());
+#endif
+ if( parentMenu && !parentMenu->isMenuBar )
+ x11SetWindowTransient( static_cast< QPopupMenu* >( parentMenu ));
+ if( !parentMenu ) {
+ // hackish ... try to find the main window related to this popup
+ QWidget* parent = parentWidget() ? parentWidget()->topLevelWidget() : NULL;
+ if( parent == NULL )
+ parent = QApplication::widgetAt( pos );
+ if( parent == NULL )
+ parent = qApp->activeWindow();
+ if( parent != NULL )
+ x11SetWindowTransient( parent );
+ }
+#endif
int sw = screen.width(); // screen width
int sh = screen.height(); // screen height
@@ -1390,6 +1416,13 @@ void QPopupMenu::hide()
#if defined(QT_ACCESSIBILITY_SUPPORT)
QAccessible::updateAccessibility( this, 0, QAccessible::PopupMenuEnd );
#endif
+#ifndef QT_NO_MENUBAR
+ QMenuData *top = this; // find top level
+ while ( top->parentMenu )
+ top = top->parentMenu;
+ if( top->isMenuBar )
+ x11SetWindowType( X11WindowTypePopup ); // reset
+#endif
parentMenu = 0;
hidePopups();
QWidget::hide();
@@ -2713,6 +2746,9 @@ void QPopupMenu::toggleTearOff()
geometry().topLeft(), FALSE );
p->mitems->setAutoDelete( FALSE );
p->tornOff = TRUE;
+#ifdef Q_WS_X11
+ p->x11SetWindowType( X11WindowTypeMenu );
+#endif
for ( QMenuItemListIt it( *mitems ); it.current(); ++it ) {
if ( it.current()->id() != QMenuData::d->aInt && !it.current()->widget() )
p->mitems->append( it.current() );

View File

@ -1,311 +0,0 @@
qt-bugs@ issue : none
bugs.kde.org number : none
applied: no
author: Lubos Lunak <l.lunak@kde.org>
Support for _NET_WM_SYNC_REQUEST - allows the WM to find out when the app
finished one redraw - less flicker during resize and with compositing
also when opening a window.
--- src/kernel/qwidget.h.sav 2007-06-22 14:14:05.000000000 +0200
+++ src/kernel/qwidget.h 2007-06-23 11:53:39.000000000 +0200
@@ -586,6 +586,14 @@ private:
void destroyInputContext();
void focusInputContext();
void checkChildrenDnd();
+
+#ifndef QT_NO_XSYNC
+ void createSyncCounter();
+ void destroySyncCounter();
+ void incrementSyncCounter();
+ void handleSyncRequest( void* ev );
+#endif
+
#elif defined(Q_WS_MAC)
uint own_id : 1, macDropEnabled : 1;
EventHandlerRef window_event;
@@ -962,8 +970,12 @@ struct Q_EXPORT QTLWExtra {
uint uspos : 1; // User defined position
uint ussize : 1; // User defined size
#if defined(QT_NO_IM_EXTENSIONS)
void *xic; // Input Context
#endif
+#ifndef QT_NO_XSYNC
+ ulong syncCounter;
+ uint syncRequestValue[2];
+#endif
#endif
#if defined(Q_WS_MAC)
WindowGroupRef group;
--- src/kernel/qt_x11_p.h.sav 2007-02-23 14:01:18.000000000 +0100
+++ src/kernel/qt_x11_p.h 2007-06-23 11:53:39.000000000 +0200
@@ -174,6 +174,11 @@ extern "C" {
#endif // QT_NO_XRENDER
+#ifndef QT_NO_XSYNC
+# include <X11/extensions/sync.h>
+#endif // QT_NO_XSYNC
+
+
#ifndef QT_NO_XKB
# include <X11/XKBlib.h>
#endif // QT_NO_XKB
--- src/kernel/qwidget_x11.cpp.sav 2007-04-16 13:47:26.000000000 +0200
+++ src/kernel/qwidget_x11.cpp 2007-06-23 19:48:44.000000000 +0200
@@ -87,6 +87,12 @@ static QWidget *keyboardGrb = 0;
extern Time qt_x_time;
extern Time qt_x_user_time;
+#ifndef QT_NO_XSYNC
+extern Atom qt_net_wm_sync_request_counter;
+extern Atom qt_net_wm_sync_request;
+extern bool qt_use_xsync;
+#endif
+
// defined in qfont_x11.cpp
extern bool qt_has_xft;
@@ -595,11 +601,14 @@ void QWidget::create( WId window, bool i
XResizeWindow( dpy, id, crect.width(), crect.height() );
XStoreName( dpy, id, qAppName() );
- Atom protocols[4];
+ Atom protocols[5];
int n = 0;
protocols[n++] = qt_wm_delete_window; // support del window protocol
protocols[n++] = qt_wm_take_focus; // support take focus window protocol
protocols[n++] = qt_net_wm_ping; // support _NET_WM_PING protocol
+#ifndef QT_NO_XSYNC
+ protocols[n++] = qt_net_wm_sync_request;// support the _NET_WM_SYNC_REQUEST protocol
+#endif
if ( testWFlags( WStyle_ContextHelp ) )
protocols[n++] = qt_net_wm_context_help;
XSetWMProtocols( dpy, id, protocols, n );
@@ -625,6 +634,14 @@ void QWidget::create( WId window, bool i
XChangeProperty(dpy, id, qt_net_wm_pid, XA_CARDINAL, 32, PropModeReplace,
(unsigned char *) &curr_pid, 1);
+#ifndef QT_NO_XSYNC
+ // set _NET_WM_SYNC_COUNTER
+ createSyncCounter();
+ long counterVal = topData()->syncCounter;
+ XChangeProperty( dpy, id, qt_net_wm_sync_request_counter, XA_CARDINAL, 32, PropModeReplace,
+ (unsigned char*) &counterVal, 1);
+#endif
+
// when we create a toplevel widget, the frame strut should be dirty
fstrut_dirty = 1;
@@ -720,6 +737,9 @@ void QWidget::destroy( bool destroyWindo
if ( destroyWindow )
qt_XDestroyWindow( this, x11Display(), winid );
}
+#ifndef QT_NO_XSYNC
+ destroySyncCounter();
+#endif
setWinId( 0 );
extern void qPRCleanup( QWidget *widget ); // from qapplication_x11.cpp
@@ -769,6 +789,10 @@ void QWidget::reparentSys( QWidget *pare
destroyInputContext();
}
+#ifndef QT_NO_XSYNC
+ destroySyncCounter();
+#endif
+
if ( isTopLevel() || !parent ) // we are toplevel, or reparenting to toplevel
topData()->parentWinId = 0;
@@ -2456,8 +2480,13 @@ void QWidget::createTLSysExtra()
{
#if defined(QT_NO_IM_EXTENSIONS)
// created lazily
extra->topextra->xic = 0;
#endif
+#ifndef QT_NO_XSYNC
+ extra->topextra->syncCounter = 0;
+ extra->topextra->syncRequestValue[0] = 0;
+ extra->topextra->syncRequestValue[1] = 0;
+#endif
}
void QWidget::deleteTLSysExtra()
@@ -2501,6 +2530,51 @@ void QWidget::checkChildrenDnd()
}
}
+
+#ifndef QT_NO_XSYNC
+// create a window's XSyncCounter
+void QWidget::createSyncCounter()
+{
+ if( !qt_use_xsync || !isTopLevel() || topData()->syncCounter )
+ return;
+ XSyncValue zero;
+ XSyncIntToValue( &zero, 0 );
+ topData()->syncCounter = XSyncCreateCounter( x11Display(), zero );
+}
+
+// destroy a window's XSyncCounter
+void QWidget::destroySyncCounter()
+{
+ if( !qt_use_xsync || !extra || !extra->topextra
+ || !extra->topextra->syncCounter )
+ return;
+ XSyncDestroyCounter( x11Display(), extra->topextra->syncCounter );
+ extra->topextra->syncCounter = 0;
+}
+
+// increment a window's XSyncCounter
+void QWidget::incrementSyncCounter()
+{
+ if( qt_use_xsync && topData()->syncCounter &&
+ !(topData()->syncRequestValue[0] == 0 &&
+ topData()->syncRequestValue[1] == 0) ) {
+ XSyncValue val;
+ XSyncIntsToValue( &val, topData()->syncRequestValue[ 0 ], topData()->syncRequestValue[ 1 ] );
+ XSyncSetCounter( x11Display(), topData()->syncCounter, val );
+ topData()->syncRequestValue[0] = topData()->syncRequestValue[1] = 0;
+ }
+}
+
+// handle _NET_WM_SYNC_REQUEST
+void QWidget::handleSyncRequest( void* ev )
+{
+ XEvent* xev = (XEvent*)ev;
+ topData()->syncRequestValue[ 0 ] = xev->xclient.data.l[ 2 ];
+ topData()->syncRequestValue[ 1 ] = xev->xclient.data.l[ 3 ];
+}
+#endif // QT_NO_XSYNC
+
+
/*!
\property QWidget::acceptDrops
\brief whether drop events are enabled for this widget
--- src/kernel/qapplication_x11.cpp.sav 2007-04-16 13:47:26.000000000 +0200
+++ src/kernel/qapplication_x11.cpp 2007-06-23 19:49:15.000000000 +0200
@@ -285,6 +285,11 @@ Atom *qt_net_supported_list = 0;
Window *qt_net_virtual_root_list = 0;
+// X11 SYNC support
+#ifndef QT_NO_XSYNC
+Atom qt_net_wm_sync_request_counter = 0;
+Atom qt_net_wm_sync_request = 0;
+#endif
// client leader window
Window qt_x11_wm_client_leader = 0;
@@ -309,6 +314,13 @@ static int xrandr_eventbase;
// Display
Q_EXPORT bool qt_use_xrender = FALSE;
+#ifndef QT_NO_XSYNC
+// True if SYNC extension exists on the connected display
+bool qt_use_xsync = FALSE;
+static int xsync_eventbase;
+static int xsync_errorbase;
+#endif
+
// modifier masks for alt/meta - detected when the application starts
static long qt_alt_mask = 0;
static long qt_meta_mask = 0;
@@ -1938,6 +1950,11 @@ void qt_init_internal( int *argcptr, cha
qt_x11_intern_atom( "UTF8_STRING", &qt_utf8_string );
qt_x11_intern_atom( "_SGI_DESKS_MANAGER", &qt_sgi_desks_manager );
+#ifndef QT_NO_XSYNC
+ qt_x11_intern_atom( "_NET_WM_SYNC_REQUEST_COUNTER", &qt_net_wm_sync_request_counter );
+ qt_x11_intern_atom( "_NET_WM_SYNC_REQUEST", &qt_net_wm_sync_request );
+#endif
+
qt_xdnd_setup();
qt_x11_motifdnd_init();
@@ -1974,6 +1991,15 @@ void qt_init_internal( int *argcptr, cha
}
#endif // QT_NO_XRENDER
+#ifndef QT_NO_XSYNC
+ // Try to initialize SYNC extension on the connected display
+ int xsync_major, xsync_minor;
+ if ( XSyncQueryExtension( appDpy, &xsync_eventbase, &xsync_errorbase ) &&
+ XSyncInitialize( appDpy, &xsync_major, &xsync_minor ) ) {
+ qt_use_xsync = TRUE;
+ }
+#endif
+
#ifndef QT_NO_XKB
// If XKB is detected, set the GrabsUseXKBState option so input method
// compositions continue to work (ie. deadkeys)
@@ -3141,6 +3167,10 @@ int QApplication::x11ClientMessage(QWidg
XSendEvent( event->xclient.display, event->xclient.window,
False, SubstructureNotifyMask|SubstructureRedirectMask, event );
}
+#ifndef QT_NO_XSYNC
+ } else if (a == qt_net_wm_sync_request ) {
+ widget->handleSyncRequest( event );
+#endif
}
} else if ( event->xclient.message_type == qt_qt_scrolldone ) {
widget->translateScrollDoneEvent(event);
@@ -5681,6 +5711,21 @@ bool QETWidget::translateScrollDoneEvent
return FALSE;
}
+#if defined(Q_C_CALLBACKS)
+extern "C" {
+#endif
+#ifndef QT_NO_XSYNC
+static Bool qt_net_wm_sync_request_scanner(Display*, XEvent* event, XPointer arg)
+{
+ return (event->type == ClientMessage && event->xclient.window == *(Window*)arg
+ && event->xclient.message_type == qt_wm_protocols
+ && event->xclient.data.l[ 0 ] == qt_net_wm_sync_request );
+}
+#endif
+
+#if defined(Q_C_CALLBACKS)
+}
+#endif
//
// ConfigureNotify (window move and resize) event translation
@@ -5712,6 +5757,7 @@ bool QETWidget::translateConfigEvent( co
if (! extra || extra->compress_events) {
// ConfigureNotify compression for faster opaque resizing
XEvent otherEvent;
+ int compressed_configs = 0;
while ( XCheckTypedWindowEvent( x11Display(), winId(), ConfigureNotify,
&otherEvent ) ) {
if ( qt_x11EventFilter( &otherEvent ) )
@@ -5732,7 +5778,18 @@ bool QETWidget::translateConfigEvent( co
newCPos.ry() = otherEvent.xconfigure.y +
otherEvent.xconfigure.border_width;
}
+ ++compressed_configs;
+ }
+#ifndef QT_NO_XSYNC
+ // _NET_WM_SYNC_REQUEST compression
+ Window wid = winId();
+ while ( compressed_configs &&
+ XCheckIfEvent( x11Display(), &otherEvent,
+ qt_net_wm_sync_request_scanner, (XPointer)&wid ) ) {
+ handleSyncRequest( (void*)&otherEvent );
+ --compressed_configs;
}
+#endif
}
QRect cr ( geometry() );
@@ -5786,6 +5843,8 @@ bool QETWidget::translateConfigEvent( co
repaint( !testWFlags(WResizeNoErase) || transbg );
}
+ incrementSyncCounter();
+
return TRUE;
}

View File

@ -1,20 +0,0 @@
qt-bugs@ issue : 153183
bugs.kde.org number :
applied: yes
author: woebbeking@kde.org
In Qt 3.3.8 QDateTime::fromString() has an off by one regression:
- Thu Mar 3 19:45:58 2005 -> invalid QDateTime
- Thu Mar 13 19:45:58 2005 -> Mar 1 2005
--- src/tools/qdatetime.cpp
+++ src/tools/qdatetime.cpp
@@ -2485,7 +2485,7 @@
return dt;
}
#endif
- int day = s.mid( firstSpace + 4, 2 ).simplifyWhiteSpace().toInt();
+ int day = s.mid( firstSpace + 5, 2 ).simplifyWhiteSpace().toInt();
int year = s.right( 4 ).toInt();
QDate date( year, month, day );
QTime time;

View File

@ -1,80 +0,0 @@
qt-bugs@ issue : none
bugs.kde.org number : none
applied: no
author: Lubos Lunak <l.lunak@kde.org>
This patch makes override-redirect windows (popup menu, dropdown menu,
tooltip, combobox, etc.) also have more window properties like WM_CLASS,
so they can be used when compositing.
--- src/kernel/qwidget_x11.cpp.sav 2007-06-25 10:36:42.000000000 +0200
+++ src/kernel/qwidget_x11.cpp 2007-10-02 15:30:13.000000000 +0200
@@ -557,7 +557,10 @@ void QWidget::create( WId window, bool i
wsa.save_under = True;
XChangeWindowAttributes( dpy, id, CWOverrideRedirect | CWSaveUnder,
&wsa );
- x11SetWindowType();
+ XClassHint class_hint;
+ class_hint.res_name = (char *) qAppName(); // application name
+ class_hint.res_class = (char *) qAppClass(); // application class
+ XSetClassHint( dpy, id, &class_hint );
} else if ( topLevel && !desktop ) { // top-level widget
QWidget *p = parentWidget(); // real parent
if (p)
@@ -620,8 +623,6 @@ void QWidget::create( WId window, bool i
else
XDeleteProperty(dpy, id, qt_xa_motif_wm_hints);
- x11SetWindowType();
-
// set _NET_WM_WINDOW_STATE
if (curr_winstate > 0)
XChangeProperty(dpy, id, qt_net_wm_state, XA_ATOM, 32, PropModeReplace,
@@ -629,11 +630,6 @@ void QWidget::create( WId window, bool i
else
XDeleteProperty(dpy, id, qt_net_wm_state);
- // set _NET_WM_PID
- long curr_pid = getpid();
- XChangeProperty(dpy, id, qt_net_wm_pid, XA_CARDINAL, 32, PropModeReplace,
- (unsigned char *) &curr_pid, 1);
-
#ifndef QT_NO_XSYNC
// set _NET_WM_SYNC_COUNTER
createSyncCounter();
@@ -645,19 +641,31 @@ void QWidget::create( WId window, bool i
// when we create a toplevel widget, the frame strut should be dirty
fstrut_dirty = 1;
+ } else {
+ // non-toplevel widgets don't have a frame, so no need to
+ // update the strut
+ fstrut_dirty = 0;
+ }
+
+ if (initializeWindow && (popup || (topLevel && !desktop))) { // properties set on all toplevel windows
+ x11SetWindowType();
+
+ // set _NET_WM_PID
+ long curr_pid = getpid();
+ XChangeProperty(dpy, id, qt_net_wm_pid, XA_CARDINAL, 32, PropModeReplace,
+ (unsigned char *) &curr_pid, 1);
+
// declare the widget's object name as window role
XChangeProperty( dpy, id,
qt_window_role, XA_STRING, 8, PropModeReplace,
(unsigned char *)name(), qstrlen( name() ) );
// set client leader property
+ if ( !qt_x11_wm_client_leader )
+ qt_x11_create_wm_client_leader();
XChangeProperty( dpy, id, qt_wm_client_leader,
XA_WINDOW, 32, PropModeReplace,
(unsigned char *)&qt_x11_wm_client_leader, 1 );
- } else {
- // non-toplevel widgets don't have a frame, so no need to
- // update the strut
- fstrut_dirty = 0;
}
if ( initializeWindow ) {

View File

@ -1,6 +0,0 @@
# Makefile for source rpm: qt
# $Id$
NAME := qt
SPECFILE = $(firstword $(wildcard *.spec))
include ../common/Makefile.common

3
Trolltech.conf Normal file
View File

@ -0,0 +1,3 @@
[Qt]
font="Sans Serif,10,-1,5,50,0,0,0,0,0"

9
assistant.desktop Normal file
View File

@ -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;

View File

@ -1,9 +0,0 @@
[Desktop Entry]
Name=Qt3 Assistant
Comment=Add translations to Qt3 applications
Exec=assistant
Icon=assistant3
Terminal=false
Encoding=UTF-8
Type=Application
Categories=Qt;Development;

View File

@ -1,11 +1,10 @@
[Desktop Entry]
Name=Qt3 Designer
Name=Qt4 Designer
GenericName=Interface Designer
Comment=Design GUIs for Qt3 applications
Exec=designer
Icon=designer3
Comment=Design GUIs for Qt4 applications
Exec=designer-qt4
Icon=designer
MimeType=application/x-designer;
Terminal=false
Encoding=UTF-8
Type=Application
Categories=Qt;Development;

10
linguist.desktop Normal file
View File

@ -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;

View File

@ -1,10 +0,0 @@
[Desktop Entry]
Name=Qt3 Linguist
Comment=Add translations to Qt3 applications
Exec=linguist
Icon=linguist3
MimeType=application/x-linguist;
Terminal=false
Encoding=UTF-8
Type=Application
Categories=Qt;Development;

33
macros.qt4 Normal file
View File

@ -0,0 +1,33 @@
%_qt4 @@NAME@@
%_qt4_epoch @@EPOCH@@
%_qt4_version @@VERSION@@
%_qt4_evr @@EVR@@
%_qt48 %{_qt4_version}
%_qt4_prefix %{_libdir}/qt4
%_qt4_bindir %{_qt4_prefix}/bin
%_qt4_datadir %{_qt4_prefix}
%_qt4_demosdir %{_qt4_prefix}/demos
%_qt4_docdir %{_docdir}/qt4
%_qt4_examples %{_qt4_prefix}/examples
%_qt4_examplesdir %{_qt4_prefix}/examples
%_qt4_headerdir %{_includedir}
%_qt4_importdir %{_qt4_prefix}/imports
%_qt4_libdir %{_libdir}
%_qt4_plugindir %{_qt4_prefix}/plugins
%_qt4_qmake %{_qt4_bindir}/qmake
%_qt4_sysconfdir %{_sysconfdir}
%_qt4_translationdir %{_datadir}/qt4/translations
%_qt4_ldflags %{?__global_ldflags}
%_qt4_optflags %{optflags}
%_qt4_qmake_flags \\\
QMAKE_CFLAGS_DEBUG="${CFLAGS:-%{_qt4_optflags}}" \\\
QMAKE_CFLAGS_RELEASE="${CFLAGS:-%{_qt4_optflags}}" \\\
QMAKE_CXXFLAGS_DEBUG="${CXXFLAGS:-%{_qt4_optflags}}" \\\
QMAKE_CXXFLAGS_RELEASE="${CXXFLAGS:-%{_qt4_optflags}}" \\\
QMAKE_LFLAGS_DEBUG="${LDFLAGS:-%{_qt4_ldflags}}" \\\
QMAKE_LFLAGS_RELEASE="${LDFLAGS:-%{_qt4_ldflags}}" \\\
QMAKE_STRIP=
%qmake_qt4 %{_qt4_qmake} %{_qt4_qmake_flags}

23
qconfig-multilib.h Normal file
View File

@ -0,0 +1,23 @@
/* 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
#ifndef __WORDSIZE
#include <bits/wordsize.h>
#endif
#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

10
qdbusviewer.desktop Normal file
View File

@ -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;

View File

@ -1,15 +0,0 @@
--- qt-x11-free-3.0.5/src/tools/qgpluginmanager.cpp.bero 2002-08-21 15:16:19.000000000 +0200
+++ qt-x11-free-3.0.5/src/tools/qgpluginmanager.cpp 2002-08-21 15:16:41.000000000 +0200
@@ -501,10 +501,10 @@
(*f).latin1(),
(const char*) QFile::encodeName( old->library() ) );
} else {
- qWarning("%s: Feature %s already defined in %s!",
+/* qWarning("%s: Feature %s already defined in %s!",
(const char*) QFile::encodeName( old->library() ),
(*f).latin1(),
- (const char*) QFile::encodeName( plugin->library() ) );
+ (const char*) QFile::encodeName( plugin->library() ) ); */
}
}
}

View File

@ -1,11 +0,0 @@
--- qt-x11-free-3.1.0/Makefile.orig 2002-11-14 15:44:17.000000000 +0100
+++ qt-x11-free-3.1.0/Makefile 2002-11-14 15:49:33.000000000 +0100
@@ -11,7 +11,7 @@
install: FORCE
@$(MAKE) qt.install
-all: symlinks src-qmake src-moc sub-src sub-tools sub-tutorial sub-examples
+all: symlinks src-qmake src-moc sub-src sub-tools
@echo
@echo "The Qt library is now built in ./lib"
@echo "The Qt examples are built in the directories in ./examples"

View File

@ -1,114 +0,0 @@
--- qt-x11-free-3.3.3.orig/src/widgets/qmenubar.cpp 2004-08-05 16:42:21.000000000 +0200
+++ qt-x11-free-3.3.3/src/widgets/qmenubar.cpp 2004-12-03 17:26:43.000000000 +0100
@@ -228,6 +228,10 @@
static const int motifItemHMargin = 5; // menu item hor text margin
static const int motifItemVMargin = 4; // menu item ver text margin
+// The others are 0
+static const int gtkItemHMargin = 8;
+static const int gtkItemVMargin = 8;
+
/*
+-----------------------------
@@ -292,7 +296,14 @@
setFrameStyle( QFrame::MenuBarPanel | QFrame::Raised );
QFontMetrics fm = fontMetrics();
- int h = 2*motifBarVMargin + fm.height() + motifItemVMargin + 2*frameWidth() + 2*motifItemFrame;
+
+ int h;
+ int gs = style().styleHint(QStyle::SH_GUIStyle);
+ if (gs == GtkStyle) {
+ h = fm.height() + gtkItemVMargin;
+ } else {
+ h = 2*motifBarVMargin + fm.height() + motifItemVMargin + 2*frameWidth() + 2*motifItemFrame;
+ }
setGeometry( 0, 0, width(), h );
@@ -944,12 +955,19 @@
h = QMAX( mi->pixmap()->height() + 4, QApplication::globalStrut().height() );
} else if ( !mi->text().isNull() ) { // text item
QString s = mi->text();
- w = fm.boundingRect( s ).width()
- + 2*motifItemHMargin;
+ if ( gs == GtkStyle ) {
+ w = fm.boundingRect( s ).width() + 2*gtkItemHMargin;
+ } else {
+ w = fm.boundingRect( s ).width() + 2*motifItemHMargin;
+ }
w -= s.contains('&')*fm.width('&');
w += s.contains("&&")*fm.width('&');
w = QMAX( w, QApplication::globalStrut().width() );
- h = QMAX( fm.height() + motifItemVMargin, QApplication::globalStrut().height() );
+ if (gs == GtkStyle ) {
+ h = QMAX( fm.height() + gtkItemVMargin, QApplication::globalStrut().height() );
+ } else {
+ h = QMAX( fm.height() + motifItemVMargin, QApplication::globalStrut().height() );
+ }
} else if ( mi->isSeparator() ) { // separator item
if ( style().styleHint(QStyle::SH_GUIStyle) == MotifStyle )
separator = i; //### only motif?
--- qt-x11-free-3.3.3.orig/src/widgets/qpopupmenu.cpp 2004-08-05 16:42:21.000000000 +0200
+++ qt-x11-free-3.3.3/src/widgets/qpopupmenu.cpp 2004-12-03 17:43:50.000000000 +0100
@@ -65,6 +65,8 @@
static const int motifArrowHMargin = 6; // arrow horizontal margin
static const int motifArrowVMargin = 2; // arrow vertical margin
+static const int gtkArrowHMargin = 0; // arrow horizontal margin
+static const int gtkArrowVMargin = 0; // arrow vertical margin
/*
@@ -2289,8 +2291,18 @@
QRect r( itemGeometry( actItem ) );
QPoint p;
QSize ps = popup->sizeHint();
+ // GUI Style
+ int gs = style().styleHint(QStyle::SH_GUIStyle);
+ int arrowHMargin, arrowVMargin;
+ if (gs == GtkStyle) {
+ arrowHMargin = gtkArrowHMargin;
+ arrowVMargin = gtkArrowVMargin;
+ } else {
+ arrowHMargin = motifArrowHMargin;
+ arrowVMargin = motifArrowVMargin;
+ }
if( QApplication::reverseLayout() ) {
- p = QPoint( r.left() + motifArrowHMargin - ps.width(), r.top() + motifArrowVMargin );
+ p = QPoint( r.left() + arrowHMargin - ps.width(), r.top() + arrowVMargin );
p = mapToGlobal( p );
bool right = FALSE;
@@ -2303,7 +2315,7 @@
if ( right )
p.setX( mapToGlobal( r.topRight() ).x() );
} else {
- p = QPoint( r.right() - motifArrowHMargin, r.top() + motifArrowVMargin );
+ p = QPoint( r.right() - arrowHMargin, r.top() + arrowVMargin );
p = mapToGlobal( p );
bool left = FALSE;
--- qt-x11-free-3.3.3.orig/src/kernel/qnamespace.h 2004-08-05 16:42:10.000000000 +0200
+++ qt-x11-free-3.3.3/src/kernel/qnamespace.h 2004-11-29 22:22:26.000000000 +0100
@@ -294,7 +294,8 @@
#ifdef QT_NO_COMPAT
enum GUIStyle {
WindowsStyle = 1, // ### Qt 4.0: either remove the obsolete enums or clean up compat vs.
- MotifStyle = 4 // ### QT_NO_COMPAT by reordering or combination into one enum.
+ MotifStyle = 4, // ### QT_NO_COMPAT by reordering or combination into one enum.
+ GtkStyle = 6 // Gtk compability mode
};
#else
enum GUIStyle {
@@ -302,7 +303,8 @@
WindowsStyle,
Win3Style, // OBSOLETE
PMStyle, // OBSOLETE
- MotifStyle
+ MotifStyle,
+ GtkStyle = 6 // Gtk compability mode
};
#endif

View File

@ -1,18 +0,0 @@
--- qt-x11-free-3.3.4/src/kernel/qpsprinter.cpp.cjk 2005-01-21 18:16:11.000000000 +0100
+++ qt-x11-free-3.3.4/src/kernel/qpsprinter.cpp 2005-01-26 15:09:20.911239907 +0100
@@ -4748,10 +4748,11 @@
// GB18030 fonts on Turbolinux
static const psfont SongGBK2K [] = {
- { "MSung-Light-GBK2K-H", 0, 100. },
- { "MSung-Italic-GBK2K-H", 0, 100. },
- { "MSung-Bold-GBK2K-H", 0, 100. },
- { "MSung-BoldItalic-GBK2K-H", 0, 100. },
+ { "MSungGBK-Light-GBK2K-H", 0, 100. },
+ { "MSungGBK-Light-GBK2K-H", 0, 100. },
+ { "MSungGBK-Light-GBK2K-H", 0, 100. },
+ { "MSungGBK-Light-GBK2K-H", 0, 100. },
+
};
static const psfont KaiGBK2K [] = {
{ "MKai-Medium-GBK2K-H", 0, 100. },

View File

@ -1,11 +0,0 @@
--- src/codecs/qutfcodec.cpp
+++ src/codecs/qutfcodec.cpp
@@ -165,7 +165,7 @@ public:
QString toUnicode(const char* chars, int len)
{
QString result;
- result.setLength( len ); // worst case
+ result.setLength( len + 1 ); // worst case
QChar *qch = (QChar *)result.unicode();
uchar ch;
int error = -1;

View File

@ -1,15 +0,0 @@
diff -pruN qt-x11-free-3.3.6.org/src/kernel/qscriptengine_x11.cpp qt-x11-free-3.3.6/src/kernel/qscriptengine_x11.cpp
--- qt-x11-free-3.3.6.org/src/kernel/qscriptengine_x11.cpp 2006-12-04 18:47:11.000000000 +0530
+++ qt-x11-free-3.3.6/src/kernel/qscriptengine_x11.cpp 2006-12-05 12:05:10.000000000 +0530
@@ -1412,7 +1412,10 @@ static bool indic_shape_syllable(QOpenTy
toPos += 2;
if (script == QFont::Devanagari || script == QFont::Gujarati || script == QFont::Bengali) {
if (matra_position == Post || matra_position == Split) {
- toPos = matra+1;
+ if (matra_position == Post )
+ toPos = matra;
+ else
+ toPos = matra+1;
matra -= 2;
}
} else if (script == QFont::Kannada) {

View File

@ -1,11 +0,0 @@
--- qt-x11-free-3.3.6/src/kernel/qscriptengine_x11.cpp.bak 2006-10-18 17:55:23.308589840 +0800
+++ qt-x11-free-3.3.6/src/kernel/qscriptengine_x11.cpp 2006-10-18 17:57:45.284006296 +0800
@@ -164,7 +164,7 @@
Matra, Matra, Matra, Matra,
Matra, Invalid, Invalid, Matra,
Matra, Invalid, Invalid, Matra,
- Matra, Halant, Unknown, Unknown,
+ Matra, Halant, Consonant, Unknown,
Invalid, Invalid, Invalid, Invalid,
Invalid, Invalid, Invalid, VowelMark,

View File

@ -1,12 +0,0 @@
diff -pruN qt-x11-free-3.3.6.org/src/kernel/qscriptengine_x11.cpp qt-x11-free-3.3.6/src/kernel/qscriptengine_x11.cpp
--- qt-x11-free-3.3.6.org/src/kernel/qscriptengine_x11.cpp 2007-02-13 14:35:30.000000000 +0530
+++ qt-x11-free-3.3.6/src/kernel/qscriptengine_x11.cpp 2007-02-13 14:37:58.000000000 +0530
@@ -226,7 +226,7 @@ static const unsigned char indicForms[0x
Invalid, VowelMark, VowelMark, VowelMark,
Invalid, IndependentVowel, IndependentVowel, IndependentVowel,
IndependentVowel, IndependentVowel, IndependentVowel, IndependentVowel,
- Invalid, IndependentVowel, Invalid, IndependentVowel,
+ IndependentVowel, IndependentVowel, Invalid, IndependentVowel,
IndependentVowel, IndependentVowel, Invalid, IndependentVowel,
IndependentVowel, Consonant, Consonant, Consonant,

View File

@ -1,12 +0,0 @@
diff -pruN qt-x11-free-3.3.6.org/src/kernel/qscriptengine_x11.cpp qt-x11-free-3.3.6/src/kernel/qscriptengine_x11.cpp
--- qt-x11-free-3.3.6.org/src/kernel/qscriptengine_x11.cpp 2007-02-13 14:41:25.000000000 +0530
+++ qt-x11-free-3.3.6/src/kernel/qscriptengine_x11.cpp 2007-02-13 14:40:02.000000000 +0530
@@ -253,7 +253,7 @@ static const unsigned char indicForms[0x
Unknown, Unknown, Unknown, Unknown,
Unknown, Unknown, Unknown, Unknown,
- Other, Other, Other, Other,
+ Other, Other, VowelMark, VowelMark,
Other, Other, Other, Other,
Other, Other, Other, Other,
Other, Other, Other, Other,

View File

@ -1,60 +0,0 @@
--- qt-x11-free-3.3.6/src/kernel/qscriptengine_x11.cpp.bak 2006-10-13 13:21:37.000000000 +0800
+++ qt-x11-free-3.3.6/src/kernel/qscriptengine_x11.cpp 2006-10-13 13:57:36.000000000 +0800
@@ -868,7 +868,7 @@
None, None, None, None,
None, None, None, Post,
- Post, None, Below, None,
+ None, None, None, None,
None, Post, None, None,
None, None, None, None,
None, None, Post, Post,
@@ -1271,6 +1271,16 @@
int base = 0;
int reph = -1;
+ //for the special conjuctions about Cons+0d4d+0d30 and Cons+0d40+0d31 of Malayalam
+ bool is_special_conjuction_malayalam = false;
+
+ if ((len == 3) &&
+ ((reordered[2] == 0x0d30) || (reordered[2] == 0x0d31)) &&
+ (reordered[1] == 0x0d4d) &&
+ ((reordered[0] >= 0x0d15) && (reordered[0] <= 0x0d39))) {
+ is_special_conjuction_malayalam = true;
+ }
+
#ifdef INDIC_DEBUG
IDEBUG("original:");
for (i = 0; i < len; i++) {
@@ -1547,6 +1557,15 @@
reph = i;
}
+ //for the special conjuctions about Cons+0d4d+0d30 and Cons+0d40+0d31 of Malayalam
+ if (is_special_conjuction_malayalam) {
+ unsigned short temp;
+
+ temp = reordered[0];
+ reordered[0] = reordered[2];
+ reordered[2] = temp;
+ }
+
if (item->font->stringToCMap((const QChar *)reordered.data(), len, item->glyphs, item->advances,
&item->num_glyphs, item->flags & QTextEngine::RightToLeft) != QFontEngine::NoError)
return FALSE;
@@ -1658,6 +1677,15 @@
// halant always applies
+ //for the special conjuctions about Cons+0d4d+0d30 and Cons+0d40+0d31 of Malayalam
+ if (is_special_conjuction_malayalam) {
+ unsigned int temp;
+
+ temp = properties[0];
+ properties[0] = ~PreSubstProperty;
+ properties[2] = temp;
+ }
+
#ifdef INDIC_DEBUG
{
IDEBUG("OT properties:");

View File

@ -1,11 +0,0 @@
--- qt-x11-free-3.3.6/src/kernel/qscriptengine_x11.cpp.orig 2006-11-29 17:17:26.000000000 +0100
+++ qt-x11-free-3.3.6/src/kernel/qscriptengine_x11.cpp 2006-11-29 17:22:34.000000000 +0100
@@ -864,7 +864,7 @@
None, None, None, Post,
None, None, None, None,
- None, Post, None, None,
+ None, None, None, None,
None, None, None, None,
None, None, Post, Post,

View File

@ -1,12 +0,0 @@
diff -pruN qt-x11-free-3.3.6.org/src/kernel/qfont_x11.cpp qt-x11-free-3.3.6/src/kernel/qfont_x11.cpp
--- qt-x11-free-3.3.6.org/src/kernel/qfont_x11.cpp 2006-03-08 00:00:00.000000000 +0530
+++ qt-x11-free-3.3.6/src/kernel/qfont_x11.cpp 2006-12-04 18:49:09.000000000 +0530
@@ -709,7 +709,7 @@ int QFontMetrics::charWidth( const QStri
if ( script >= QFont::Arabic && script <= QFont::Khmer ) {
// complex script shaping. Have to do some hard work
int from = QMAX( 0, pos - 8 );
- int to = QMIN( (int)str.length(), pos + 8 );
+ int to = str.length();
QConstString cstr( str.unicode()+from, to-from);
QTextEngine layout( cstr.string(), d );
layout.itemize( QTextEngine::WidthOnly );

View File

@ -1,64 +0,0 @@
--- qt-x11-free-3.3.6/src/kernel/qscriptengine_x11.cpp.bak 2006-10-13 13:21:37.000000000 +0800
+++ qt-x11-free-3.3.6/src/kernel/qscriptengine_x11.cpp 2006-10-13 13:42:11.000000000 +0800
@@ -280,7 +280,7 @@
Consonant, Consonant, Consonant, Consonant,
Consonant, Invalid, Consonant, Consonant,
- Invalid, Invalid, Consonant, Consonant,
+ Invalid, Consonant, Consonant, Consonant,
Consonant, Consonant, Unknown, Unknown,
Nukta, Other, Matra, Matra,
@@ -299,7 +299,7 @@
Other, Other, Other, Other,
Other, Other, Other, Other,
- Other, Other, Other, Other,
+ Other, Consonant, Other, Other,
Other, Other, Other, Other,
Other, Other, Other, Other,
Other, Other, Other, Other,
@@ -695,18 +695,18 @@
None, None, None, None,
None, None, None, None,
- None, None, None, None,
- None, None, None, None,
- None, None, None, None,
+ None, Below, Below, Below,
+ Below, Below, Below, Below,
+ Below, Below, None, Below,
- None, None, None, None,
- Below, None, None, None,
- Below, None, None, None,
+ Below, Below, Below, Below,
+ Below, Below, Below, Below,
+ Below, None, Below, Below,
Below, Below, Below, Post,
Below, None, Below, Below,
- None, None, None, None,
- None, None, None, None,
+ None, Below, Below, Below,
+ Below, Below, None, None,
None, None, Post, Above,
Post, Below, Below, Below,
@@ -717,14 +717,14 @@
None, None, None, None,
None, None, Above, Post,
None, None, None, None,
- None, None, None, None,
+ None, None, None, Post,
None, None, None, None,
None, None, None, None,
None, None, None, None,
None, None, None, None,
- None, None, None, None,
+ None, Below, None, None,
None, None, None, None,
None, None, None, None,
None, None, None, None,

View File

@ -1,11 +0,0 @@
--- qt-x11-free-3.3.6/src/kernel/qscriptengine_x11.cpp.bak 2006-10-18 17:55:23.000000000 +0800
+++ qt-x11-free-3.3.6/src/kernel/qscriptengine_x11.cpp 2006-10-19 11:22:13.226804056 +0800
@@ -217,7 +217,7 @@
Other, Other, Other, Other,
Other, Other, Other, Other,
- StressMark, StressMark, Other, Other,
+ StressMark, StressMark, Consonant, Consonant,
Other, Other, Other, Other,
Other, Other, Other, Other,
Other, Other, Other, Other,

View File

@ -1,11 +0,0 @@
--- qt-x11-free-3.3.6/src/kernel/qscriptengine_x11.cpp.bak 2006-10-18 17:55:23.000000000 +0800
+++ qt-x11-free-3.3.6/src/kernel/qscriptengine_x11.cpp 2006-10-19 16:42:31.641160984 +0800
@@ -786,7 +786,7 @@
Below, None, Below, Below,
Below, Below, Below, Below,
- Below, None, Below, Below,
+ Below, Below, Below, Below,
None, Below, Below, Below,
Below, Below, None, None,
None, None, Post, Above,

View File

@ -1,23 +0,0 @@
--- qt-x11-free-3.3.8/src/kernel/qscriptengine_x11.cpp.orig 2007-04-11 15:05:34.000000000 +0200
+++ qt-x11-free-3.3.8/src/kernel/qscriptengine_x11.cpp 2007-04-11 15:22:19.000000000 +0200
@@ -1240,7 +1240,7 @@
int script = item->script;
Q_ASSERT(script >= QFont::Devanagari && script <= QFont::Sinhala);
const unsigned short script_base = 0x0900 + 0x80*(script-QFont::Devanagari);
- const unsigned short ra = script_base + 0x30;
+ unsigned short ra = script_base + 0x30; //it was const unsigned short ra before modification
const unsigned short halant = script_base + 0x4d;
const unsigned short nukta = script_base + 0x3c;
@@ -1278,6 +1278,11 @@
}
#endif
+ unsigned short *chkAssamese=reordered.data();
+ if((script == QFont::Bengali) && (*chkAssamese==0x09F0)) //if it is assamese ra
+ {
+ ra = script_base + 0x70;
+ }
if (len != 1) {
unsigned short *uc = reordered.data();
bool beginsWithRa = FALSE;

View File

@ -1,11 +0,0 @@
--- qt-x11-free-3.3.8/src/kernel/qscriptengine_x11.cpp.orig 2007-04-11 15:05:34.000000000 +0200
+++ qt-x11-free-3.3.8/src/kernel/qscriptengine_x11.cpp 2007-04-11 15:22:19.000000000 +0200
@@ -601,7 +601,7 @@
None, None, None, None,
None, None, None, None,
- None, None, None, None,
+ Below, None, None, None,
None, None, None, None,
None, None, None, None,
None, None, None, None,

812
qt-4.8-poll.patch Normal file
View File

@ -0,0 +1,812 @@
diff -up qt-everywhere-opensource-src-4.8.6/src/corelib/io/qprocess_unix.cpp.poll qt-everywhere-opensource-src-4.8.6/src/corelib/io/qprocess_unix.cpp
--- qt-everywhere-opensource-src-4.8.6/src/corelib/io/qprocess_unix.cpp.poll 2014-03-30 15:36:48.000000000 -0500
+++ qt-everywhere-opensource-src-4.8.6/src/corelib/io/qprocess_unix.cpp 2014-03-31 18:04:05.958260978 -0500
@@ -158,13 +158,6 @@ static void qt_sa_sigchld_sigaction(int
}
}
-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;
@@ -256,9 +249,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";
@@ -267,8 +260,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;
@@ -1027,17 +1020,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.
@@ -1060,10 +1042,10 @@ bool QProcessPrivate::waitForStarted(int
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)
@@ -1079,6 +1061,47 @@ bool QProcessPrivate::waitForStarted(int
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);
@@ -1090,28 +1113,9 @@ bool QProcessPrivate::waitForReadyRead(i
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;
}
@@ -1121,18 +1125,18 @@ bool QProcessPrivate::waitForReadyRead(i
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;
@@ -1140,13 +1144,13 @@ bool QProcessPrivate::waitForReadyRead(i
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;
}
@@ -1162,29 +1166,9 @@ bool QProcessPrivate::waitForBytesWritte
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;
}
@@ -1195,24 +1179,24 @@ bool QProcessPrivate::waitForBytesWritte
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;
@@ -1229,29 +1213,9 @@ bool QProcessPrivate::waitForFinished(in
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;
}
@@ -1261,20 +1225,20 @@ bool QProcessPrivate::waitForFinished(in
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;
}
@@ -1284,10 +1248,10 @@ bool QProcessPrivate::waitForFinished(in
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()
diff -up qt-everywhere-opensource-src-4.8.6/src/corelib/kernel/qcore_unix.cpp.poll qt-everywhere-opensource-src-4.8.6/src/corelib/kernel/qcore_unix.cpp
--- qt-everywhere-opensource-src-4.8.6/src/corelib/kernel/qcore_unix.cpp.poll 2014-03-30 15:36:48.000000000 -0500
+++ qt-everywhere-opensource-src-4.8.6/src/corelib/kernel/qcore_unix.cpp 2014-03-31 18:01:59.369715403 -0500
@@ -99,4 +99,165 @@ int qt_safe_select(int nfds, fd_set *fdr
}
}
+#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
diff -up qt-everywhere-opensource-src-4.8.6/src/corelib/kernel/qcore_unix_p.h.poll qt-everywhere-opensource-src-4.8.6/src/corelib/kernel/qcore_unix_p.h
--- qt-everywhere-opensource-src-4.8.6/src/corelib/kernel/qcore_unix_p.h.poll 2014-03-30 15:36:48.000000000 -0500
+++ qt-everywhere-opensource-src-4.8.6/src/corelib/kernel/qcore_unix_p.h 2014-03-31 18:01:59.370715392 -0500
@@ -345,9 +345,42 @@ static inline pid_t qt_safe_waitpid(pid_
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 <poll.h>
+#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;
diff -up qt-everywhere-opensource-src-4.8.6/src/network/socket/qlocalserver_unix.cpp.poll qt-everywhere-opensource-src-4.8.6/src/network/socket/qlocalserver_unix.cpp
--- qt-everywhere-opensource-src-4.8.6/src/network/socket/qlocalserver_unix.cpp.poll 2014-03-30 15:36:49.000000000 -0500
+++ qt-everywhere-opensource-src-4.8.6/src/network/socket/qlocalserver_unix.cpp 2014-03-31 18:01:59.370715392 -0500
@@ -208,16 +208,11 @@ void QLocalServerPrivate::_q_onNewConnec
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();
diff -up qt-everywhere-opensource-src-4.8.6/src/network/socket/qlocalsocket_unix.cpp.poll qt-everywhere-opensource-src-4.8.6/src/network/socket/qlocalsocket_unix.cpp
--- qt-everywhere-opensource-src-4.8.6/src/network/socket/qlocalsocket_unix.cpp.poll 2014-03-30 15:36:49.000000000 -0500
+++ qt-everywhere-opensource-src-4.8.6/src/network/socket/qlocalsocket_unix.cpp 2014-03-31 18:01:59.370715392 -0500
@@ -56,10 +56,6 @@
#include <qdebug.h>
#include <qelapsedtimer.h>
-#ifdef Q_OS_VXWORKS
-# include <selectLib.h>
-#endif
-
#define QT_CONNECT_TIMEOUT 30000
QT_BEGIN_NAMESPACE
@@ -520,32 +516,17 @@ bool QLocalSocket::waitForConnected(int
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
}
if (result > 0)
d->_q_connectToSocket();
+ if (msec >= 0) {
+ remaining = timer.elapsed() - msec;
+ if (remaining < 0)
+ break;
+ }
}
return (state() == ConnectedState);
diff -up qt-everywhere-opensource-src-4.8.6/src/network/socket/qnativesocketengine_unix.cpp.poll qt-everywhere-opensource-src-4.8.6/src/network/socket/qnativesocketengine_unix.cpp
--- qt-everywhere-opensource-src-4.8.6/src/network/socket/qnativesocketengine_unix.cpp.poll 2014-03-30 15:36:49.000000000 -0500
+++ qt-everywhere-opensource-src-4.8.6/src/network/socket/qnativesocketengine_unix.cpp 2014-03-31 18:01:59.371715381 -0500
@@ -1068,48 +1068,40 @@ qint64 QNativeSocketEnginePrivate::nativ
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;
}
diff -up qt-everywhere-opensource-src-4.8.6/src/qt3support/network/q3socketdevice_unix.cpp.poll qt-everywhere-opensource-src-4.8.6/src/qt3support/network/q3socketdevice_unix.cpp
--- qt-everywhere-opensource-src-4.8.6/src/qt3support/network/q3socketdevice_unix.cpp.poll 2014-03-30 15:36:49.000000000 -0500
+++ qt-everywhere-opensource-src-4.8.6/src/qt3support/network/q3socketdevice_unix.cpp 2014-03-31 18:01:59.371715381 -0500
@@ -68,6 +68,7 @@ static inline int qt_socket_socket(int d
#endif
#include "q3socketdevice.h"
+#include "private/qcore_unix_p.h"
#ifndef QT_NO_NETWORK
@@ -588,19 +589,10 @@ Q_LONG Q3SocketDevice::waitForMore( int
{
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;
diff -up qt-everywhere-opensource-src-4.8.6/src/qt3support/other/q3process_unix.cpp.poll qt-everywhere-opensource-src-4.8.6/src/qt3support/other/q3process_unix.cpp
--- qt-everywhere-opensource-src-4.8.6/src/qt3support/other/q3process_unix.cpp.poll 2014-03-30 15:36:49.000000000 -0500
+++ qt-everywhere-opensource-src-4.8.6/src/qt3support/other/q3process_unix.cpp 2014-03-31 18:01:59.372715370 -0500
@@ -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;
}
}

514
qt-aarch64.patch Normal file

File diff suppressed because one or more lines are too long

238
qt-cupsEnumDests.patch Normal file
View File

@ -0,0 +1,238 @@
diff -up qt-everywhere-opensource-src-4.8.4/src/gui/painting/qcups.cpp.cupsEnumDests qt-everywhere-opensource-src-4.8.4/src/gui/painting/qcups.cpp
--- qt-everywhere-opensource-src-4.8.4/src/gui/painting/qcups.cpp.cupsEnumDests 2012-11-23 10:09:53.000000000 +0000
+++ qt-everywhere-opensource-src-4.8.4/src/gui/painting/qcups.cpp 2013-07-03 15:30:06.232936976 +0100
@@ -50,9 +50,19 @@
QT_BEGIN_NAMESPACE
+typedef int (*CupsEnumDests)(unsigned flags, int msec, int *cancel,
+ cups_ptype_t type, cups_ptype_t mask,
+ cups_dest_cb_t cb, void *user_data);
+typedef http_t * (*CupsConnectDest)(cups_dest_t *dest, unsigned flags,
+ int msec, int *cancel,
+ char *resource, size_t resourcesize,
+ cups_dest_cb_t cb, void *user_data);
+typedef int (*CupsCopyDest)(cups_dest_t *dest, int num_dests,
+ cups_dest_t **dests);
typedef int (*CupsGetDests)(cups_dest_t **dests);
typedef void (*CupsFreeDests)(int num_dests, cups_dest_t *dests);
typedef const char* (*CupsGetPPD)(const char *printer);
+typedef const char* (*CupsGetPPD2)(http_t *http, const char *printer);
typedef int (*CupsMarkOptions)(ppd_file_t *ppd, int num_options, cups_option_t *options);
typedef ppd_file_t* (*PPDOpenFile)(const char *filename);
typedef void (*PPDMarkDefaults)(ppd_file_t *ppd);
@@ -66,12 +76,24 @@ typedef const char* (*CupsLangEncoding)(
typedef int (*CupsAddOption)(const char *name, const char *value, int num_options, cups_option_t **options);
typedef int (*CupsTempFd)(char *name, int len);
typedef int (*CupsPrintFile)(const char * name, const char * filename, const char * title, int num_options, cups_option_t * options);
+typedef int (*CupsPrintFile2)(http_t *http, const char *name, const char *filename, const char *title, int num_options, cups_option_t *options);
+
+typedef struct
+{
+ cups_dest_t *printers;
+ int num_printers;
+} EnumDestsContext;
static bool cupsLoaded = false;
static int qt_cups_num_printers = 0;
+static cups_dest_t *qt_cups_printers = 0;
+static CupsEnumDests _cupsEnumDests = 0;
+static CupsConnectDest _cupsConnectDest = 0;
+static CupsCopyDest _cupsCopyDest = 0;
static CupsGetDests _cupsGetDests = 0;
static CupsFreeDests _cupsFreeDests = 0;
static CupsGetPPD _cupsGetPPD = 0;
+static CupsGetPPD2 _cupsGetPPD2 = 0;
static PPDOpenFile _ppdOpenFile = 0;
static PPDMarkDefaults _ppdMarkDefaults = 0;
static PPDClose _ppdClose = 0;
@@ -84,14 +106,35 @@ static CupsLangEncoding _cupsLangEncodin
static CupsAddOption _cupsAddOption = 0;
static CupsTempFd _cupsTempFd = 0;
static CupsPrintFile _cupsPrintFile = 0;
+static CupsPrintFile2 _cupsPrintFile2 = 0;
+
+static int enum_dest_cb (void *user_data, unsigned flags, cups_dest_t *dest)
+{
+ EnumDestsContext *context = (EnumDestsContext *) user_data;
+
+ if ((flags & (CUPS_DEST_FLAGS_UNCONNECTED |
+ CUPS_DEST_FLAGS_REMOVED |
+ CUPS_DEST_FLAGS_ERROR |
+ CUPS_DEST_FLAGS_RESOLVING |
+ CUPS_DEST_FLAGS_CONNECTING |
+ CUPS_DEST_FLAGS_CANCELED)) == 0)
+ context->num_printers = _cupsCopyDest (dest, context->num_printers,
+ &context->printers);
+
+ return 1;
+}
static void resolveCups()
{
QLibrary cupsLib(QLatin1String("cups"), 2);
if(cupsLib.load()) {
+ _cupsEnumDests = (CupsEnumDests) cupsLib.resolve("cupsEnumDests");
+ _cupsConnectDest = (CupsConnectDest) cupsLib.resolve("cupsConnectDest");
+ _cupsCopyDest = (CupsCopyDest) cupsLib.resolve("cupsCopyDest");
_cupsGetDests = (CupsGetDests) cupsLib.resolve("cupsGetDests");
_cupsFreeDests = (CupsFreeDests) cupsLib.resolve("cupsFreeDests");
_cupsGetPPD = (CupsGetPPD) cupsLib.resolve("cupsGetPPD");
+ _cupsGetPPD2 = (CupsGetPPD2) cupsLib.resolve("cupsGetPPD2");
_cupsLangGet = (CupsLangGet) cupsLib.resolve("cupsLangGet");
_cupsLangEncoding = (CupsLangEncoding) cupsLib.resolve("cupsLangEncoding");
_ppdOpenFile = (PPDOpenFile) cupsLib.resolve("ppdOpenFile");
@@ -104,14 +147,27 @@ static void resolveCups()
_cupsAddOption = (CupsAddOption) cupsLib.resolve("cupsAddOption");
_cupsTempFd = (CupsTempFd) cupsLib.resolve("cupsTempFd");
_cupsPrintFile = (CupsPrintFile) cupsLib.resolve("cupsPrintFile");
+ _cupsPrintFile2 = (CupsPrintFile2) cupsLib.resolve("cupsPrintFile2");
- if (_cupsGetDests && _cupsFreeDests) {
- cups_dest_t *printers;
+ if (_cupsEnumDests && _cupsCopyDest &&
+ _cupsConnectDest && _cupsGetPPD2 &&
+ _cupsPrintFile2) {
+ EnumDestsContext context;
+ context.printers = 0;
+ context.num_printers = 0;
+ _cupsEnumDests(0, -1, 0, 0, 0,
+ enum_dest_cb, &context);
+
+ qt_cups_printers = context.printers;
+ qt_cups_num_printers = context.num_printers;
+ } else if (_cupsGetDests && _cupsFreeDests) {
+ cups_dest_t *printers;
int num_printers = _cupsGetDests(&printers);
- if (num_printers)
- _cupsFreeDests(num_printers, printers);
- qt_cups_num_printers = num_printers;
- }
+
+ if (num_printers)
+ _cupsFreeDests(num_printers, printers);
+ qt_cups_num_printers = num_printers;
+ }
}
cupsLoaded = true;
}
@@ -134,7 +190,15 @@ QCUPSSupport::QCUPSSupport()
return;
// Update the available printer count
- qt_cups_num_printers = prnCount = _cupsGetDests(&printers);
+ if (qt_cups_printers && _cupsCopyDest) {
+ int i;
+ for (i = 0; i < qt_cups_num_printers; ++i) {
+ prnCount = _cupsCopyDest (&qt_cups_printers[i],
+ prnCount,
+ &printers);
+ }
+ } else
+ qt_cups_num_printers = prnCount = _cupsGetDests(&printers);
for (int i = 0; i < prnCount; ++i) {
if (printers[i].is_default) {
@@ -188,7 +252,19 @@ const ppd_file_t* QCUPSSupport::setCurre
currPPD = 0;
page_sizes = 0;
- const char *ppdFile = _cupsGetPPD(printers[index].name);
+ const char *ppdFile = 0;
+ if (_cupsConnectDest && _cupsGetPPD2) {
+ char resource[HTTP_MAX_URI];
+ http_t *http = _cupsConnectDest (&printers[index], 0, -1, 0,
+ resource, sizeof (resource),
+ 0, 0);
+ if (http) {
+ char *name = strrchr (resource, '/');
+ if (name)
+ ppdFile = _cupsGetPPD2 (http, ++name);
+ }
+ } else
+ ppdFile = _cupsGetPPD(printers[index].name);
if (!ppdFile)
return 0;
@@ -343,7 +419,29 @@ bool QCUPSSupport::printerHasPPD(const c
{
if (!isAvailable())
return false;
- const char *ppdFile = _cupsGetPPD(printerName);
+
+ const char *ppdFile = 0;
+ if (_cupsConnectDest && _cupsGetPPD2) {
+ int i;
+ for (i = 0; i < prnCount; ++i)
+ if (!strcmp (printers[i].name, printerName))
+ break;
+
+ if (i == prnCount)
+ return false;
+
+ char resource[HTTP_MAX_URI];
+ http_t *http = _cupsConnectDest (&printers[i], 0, -1, 0,
+ resource, sizeof (resource),
+ 0, 0);
+ if (http) {
+ char *name = strrchr (resource, '/');
+ if (name)
+ ppdFile = _cupsGetPPD2 (http, ++name);
+ }
+ } else
+ ppdFile = _cupsGetPPD(printerName);
+
if (ppdFile)
unlink(ppdFile);
return (ppdFile != 0);
@@ -394,6 +492,26 @@ QPair<int, QString> QCUPSSupport::tempFd
int QCUPSSupport::printFile(const char * printerName, const char * filename, const char * title,
int num_options, cups_option_t * options)
{
+ if (_cupsConnectDest && _cupsPrintFile2) {
+ int i;
+ for (i = 0; i < prnCount; ++i)
+ if (!strcmp (printers[i].name, printerName))
+ break;
+
+ if (i != prnCount) {
+ char resource[HTTP_MAX_URI];
+ http_t *http = _cupsConnectDest (&printers[i], 0, -1, 0,
+ resource, sizeof (resource),
+ 0, 0);
+ if (http) {
+ char *name = strrchr (resource, '/');
+ if (name)
+ return _cupsPrintFile2 (http, ++name, filename, title,
+ num_options, options);
+ }
+ }
+ }
+
return _cupsPrintFile(printerName, filename, title, num_options, options);
}
diff -up qt-everywhere-opensource-src-4.8.4/src/gui/painting/qcups_p.h.cupsEnumDests qt-everywhere-opensource-src-4.8.4/src/gui/painting/qcups_p.h
--- qt-everywhere-opensource-src-4.8.4/src/gui/painting/qcups_p.h.cupsEnumDests 2012-11-23 10:09:53.000000000 +0000
+++ qt-everywhere-opensource-src-4.8.4/src/gui/painting/qcups_p.h 2013-07-03 15:27:24.733343017 +0100
@@ -92,7 +92,7 @@ public:
QStringList options() const;
- static bool printerHasPPD(const char *printerName);
+ bool printerHasPPD(const char *printerName);
QString unicodeString(const char *s);
diff -up qt-everywhere-opensource-src-4.8.4/src/gui/painting/qprinter.cpp.cupsEnumDests qt-everywhere-opensource-src-4.8.4/src/gui/painting/qprinter.cpp
--- qt-everywhere-opensource-src-4.8.4/src/gui/painting/qprinter.cpp.cupsEnumDests 2013-07-03 15:27:24.531342277 +0100
+++ qt-everywhere-opensource-src-4.8.4/src/gui/painting/qprinter.cpp 2013-07-03 15:27:24.733343017 +0100
@@ -844,7 +844,7 @@ void QPrinter::setPrinterName(const QStr
if(d->use_default_engine
&& d->outputFormat == QPrinter::NativeFormat) {
if (QCUPSSupport::cupsVersion() >= 10200
- && QCUPSSupport::printerHasPPD(name.toLocal8Bit().constData()))
+ && QCUPSSupport().printerHasPPD(name.toLocal8Bit().constData()))
setOutputFormat(QPrinter::PdfFormat);
else
setOutputFormat(QPrinter::PostScriptFormat);

View File

@ -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
}
/*!

View File

@ -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<GX11EventSource *>(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<GX11EventSource *>(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);

View File

@ -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<T>::clea
template <typename T>
Q_OUTOFLINE_TEMPLATE int QList<T>::removeAll(const T &_t)
{
- int index = indexOf(_t);
- if (index == -1)
- return 0;
-
+ detachShared();
const T t = _t;
- detach();
-
- Node *i = reinterpret_cast<Node *>(p.at(index));
- Node *e = reinterpret_cast<Node *>(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<Node *>(p.at(i)))->t() == t) {
+ node_destruct(n);
+ p.remove(i);
+ ++removedCount;
+ } else {
+ ++i;
+ }
return removedCount;
}

View File

@ -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 <typename T>
+Q_INLINE_TEMPLATE T *QBasicAtomicPointer<T>::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 <typename T>
Q_INLINE_TEMPLATE T *QBasicAtomicPointer<T>::fetchAndAddRelaxed(qptrdiff valueToAdd)
{
return fetchAndAddOrdered(valueToAdd);

View File

@ -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)

View File

@ -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;

View File

@ -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);

View File

@ -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
-

View File

@ -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);
}

View File

@ -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;
}

View File

@ -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)) {

View File

@ -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());
}

View File

@ -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;
}

View File

@ -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}

View File

@ -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<qt_configure_event_data*>(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 windows position on the root may have changed, even
+ // though the event reports that the windows position in its
+ // parent is unchanged because the window may have been reparented.
+
int x, y;
Window child;
XTranslateCoordinates(X11->display, internalWinId(),

View File

@ -0,0 +1,12 @@
diff -ur qt-everywhere-opensource-src-4.8.5-CVE-2013-4549/src/xml/sax/qxml.cpp qt-everywhere-opensource-src-4.8.5-QTBUG-35459/src/xml/sax/qxml.cpp
--- qt-everywhere-opensource-src-4.8.5-CVE-2013-4549/src/xml/sax/qxml.cpp 2013-12-05 19:23:33.000000000 +0100
+++ qt-everywhere-opensource-src-4.8.5-QTBUG-35459/src/xml/sax/qxml.cpp 2014-01-13 20:13:59.000000000 +0100
@@ -428,7 +428,7 @@
// for the DTD currently being parsed.
static const int dtdRecursionLimit = 2;
// The maximum amount of characters an entity value may contain, after expansion.
- static const int entityCharacterLimit = 1024;
+ static const int entityCharacterLimit = 4096;
const QString &string();
void stringClear();

View File

@ -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<char, 1024> 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);
}

View File

@ -0,0 +1,19 @@
diff -up qt-everywhere-opensource-src-4.8.5/configure.mysql_config qt-everywhere-opensource-src-4.8.5/configure
--- qt-everywhere-opensource-src-4.8.5/configure.mysql_config 2013-06-07 00:16:41.000000000 -0500
+++ qt-everywhere-opensource-src-4.8.5/configure 2014-03-07 10:09:27.412071146 -0600
@@ -5480,8 +5480,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

View File

@ -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);

View File

@ -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,

View File

@ -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

View File

@ -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

View File

@ -0,0 +1,16 @@
diff -up qt-everywhere-opensource-src-4.8.5/src/3rdparty/webkit/Source/WebCore/WebCore.pri.webkit_debuginfo qt-everywhere-opensource-src-4.8.5/src/3rdparty/webkit/Source/WebCore/WebCore.pri
--- qt-everywhere-opensource-src-4.8.5/src/3rdparty/webkit/Source/WebCore/WebCore.pri.webkit_debuginfo 2013-06-07 00:16:55.000000000 -0500
+++ qt-everywhere-opensource-src-4.8.5/src/3rdparty/webkit/Source/WebCore/WebCore.pri 2013-07-11 14:04:19.937056249 -0500
@@ -5,6 +5,12 @@ include(features.pri)
# Uncomment this to enable Texture Mapper.
# CONFIG += texmap
+#
+equals(QT_ARCH, s390)|equals(QT_ARCH, arm)|equals(QT_ARCH, mips)|equals(QT_ARCH, i386)|equals(QT_ARCH, i686)|equals(QT_ARCH, x86_64)|equals(QT_ARCH, powerpc64)|equals(QT_ARCH, powerpc) {
+ message("WebCore workaround for QtWebkit: do not build with -g, but with -g1")
+ QMAKE_CXXFLAGS_RELEASE -= -g
+ QMAKE_CXXFLAGS_RELEASE += -g1
+}
QT *= network

View File

@ -0,0 +1,17 @@
diff -up qt-everywhere-opensource-src-4.8.7/src/tools/moc/main.cpp.QTBUG-22829 qt-everywhere-opensource-src-4.8.7/src/tools/moc/main.cpp
--- qt-everywhere-opensource-src-4.8.7/src/tools/moc/main.cpp.QTBUG-22829 2015-05-07 09:14:44.000000000 -0500
+++ qt-everywhere-opensource-src-4.8.7/src/tools/moc/main.cpp 2016-12-08 12:32:46.638962448 -0600
@@ -188,8 +188,12 @@ 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"];
+ pp.macros["BOOST_NEXT_PRIOR_HPP_INCLUDED"];
+ pp.macros["BOOST_TYPE_TRAITS_HPP"];
+ pp.macros["_SYS_SYSMACROS_H_OUTER"];
QByteArray filename;
QByteArray output;

View File

@ -0,0 +1,94 @@
--- src/corelib/kernel/qeventdispatcher_glib.cpp.sav 2014-03-28 15:26:37.000000000 +0100
+++ src/corelib/kernel/qeventdispatcher_glib.cpp 2014-04-24 09:44:09.358659204 +0200
@@ -255,22 +255,30 @@ struct GPostEventSource
GSource source;
QAtomicInt serialNumber;
int lastSerialNumber;
+ QEventLoop::ProcessEventsFlags processEventsFlags;
QEventDispatcherGlibPrivate *d;
};
static gboolean postEventSourcePrepare(GSource *s, gint *timeout)
{
+ GPostEventSource *source = reinterpret_cast<GPostEventSource *>(s);
QThreadData *data = QThreadData::current();
if (!data)
return false;
+ QEventLoop::ProcessEventsFlags excludeAllFlags
+ = QEventLoop::ExcludeUserInputEvents
+ | QEventLoop::ExcludeSocketNotifiers
+ | QEventLoop::X11ExcludeTimers;
+ if ((source->processEventsFlags & excludeAllFlags) == excludeAllFlags)
+ return false;
+
gint dummy;
if (!timeout)
timeout = &dummy;
const bool canWait = data->canWaitLocked();
*timeout = canWait ? -1 : 0;
- GPostEventSource *source = reinterpret_cast<GPostEventSource *>(s);
return (!canWait
|| (source->serialNumber != source->lastSerialNumber));
}
@@ -284,8 +292,14 @@ static gboolean postEventSourceDispatch(
{
GPostEventSource *source = reinterpret_cast<GPostEventSource *>(s);
source->lastSerialNumber = source->serialNumber;
- QCoreApplication::sendPostedEvents();
- source->d->runTimersOnceWithNormalPriority();
+ QEventLoop::ProcessEventsFlags excludeAllFlags
+ = QEventLoop::ExcludeUserInputEvents
+ | QEventLoop::ExcludeSocketNotifiers
+ | QEventLoop::X11ExcludeTimers;
+ if ((source->processEventsFlags & excludeAllFlags) != excludeAllFlags) {
+ QCoreApplication::sendPostedEvents();
+ source->d->runTimersOnceWithNormalPriority();
+ }
return true; // i dunno, george...
}
@@ -329,6 +343,7 @@ QEventDispatcherGlibPrivate::QEventDispa
postEventSource = reinterpret_cast<GPostEventSource *>(g_source_new(&postEventSourceFuncs,
sizeof(GPostEventSource)));
postEventSource->serialNumber = 1;
+ postEventSource->processEventsFlags = QEventLoop::AllEvents;
postEventSource->d = this;
g_source_set_can_recurse(&postEventSource->source, true);
g_source_attach(&postEventSource->source, mainContext);
@@ -423,6 +438,7 @@ bool QEventDispatcherGlib::processEvents
// tell postEventSourcePrepare() and timerSource about any new flags
QEventLoop::ProcessEventsFlags savedFlags = d->timerSource->processEventsFlags;
+ d->postEventSource->processEventsFlags = flags;
d->timerSource->processEventsFlags = flags;
d->socketNotifierSource->processEventsFlags = flags;
@@ -435,6 +451,7 @@ bool QEventDispatcherGlib::processEvents
while (!result && canWait)
result = g_main_context_iteration(d->mainContext, canWait);
+ d->postEventSource->processEventsFlags = savedFlags;
d->timerSource->processEventsFlags = savedFlags;
d->socketNotifierSource->processEventsFlags = savedFlags;
--- src/corelib/kernel/qeventdispatcher_unix.cpp.sav 2013-06-07 07:16:52.000000000 +0200
+++ src/corelib/kernel/qeventdispatcher_unix.cpp 2014-04-24 09:43:06.927589535 +0200
@@ -905,7 +905,15 @@ bool QEventDispatcherUNIX::processEvents
// we are awake, broadcast it
emit awake();
- QCoreApplicationPrivate::sendPostedEvents(0, 0, d->threadData);
+
+ QEventLoop::ProcessEventsFlags excludeAllFlags
+ = QEventLoop::ExcludeUserInputEvents
+ | QEventLoop::ExcludeSocketNotifiers
+ | QEventLoop::X11ExcludeTimers;
+ if ((flags & excludeAllFlags) == excludeAllFlags)
+ return false;
+ if(( flags & excludeAllFlags ) != excludeAllFlags )
+ QCoreApplicationPrivate::sendPostedEvents(0, 0, d->threadData);
int nevents = 0;
const bool canWait = (d->threadData->canWaitLocked()

View File

@ -0,0 +1,63 @@
Author: Jan-Marek Glogowski <glogow@fbihome.de>
Date: Thu Mar 06 18:44:43 2014 +0100
Honor QEventLoop::ExcludeSocketNotifiers in glib event loop.
Implements QEventLoop::ExcludeSocketNotifiers in the same way
QEventLoop::X11ExcludeTimers is already implemented for the glib
event loop.
--- qt4-x11-4.8.1.orig/src/corelib/kernel/qeventdispatcher_glib.cpp
+++ qt4-x11-4.8.1/src/corelib/kernel/qeventdispatcher_glib.cpp
@@ -65,6 +65,7 @@ struct GPollFDWithQSocketNotifier
struct GSocketNotifierSource
{
GSource source;
+ QEventLoop::ProcessEventsFlags processEventsFlags;
QList<GPollFDWithQSocketNotifier *> pollfds;
};
@@ -80,6 +81,9 @@ static gboolean socketNotifierSourceChec
GSocketNotifierSource *src = reinterpret_cast<GSocketNotifierSource *>(source);
bool pending = false;
+ if (src->processEventsFlags & QEventLoop::ExcludeSocketNotifiers)
+ return pending;
+
for (int i = 0; !pending && i < src->pollfds.count(); ++i) {
GPollFDWithQSocketNotifier *p = src->pollfds.at(i);
@@ -103,6 +107,9 @@ static gboolean socketNotifierSourceDisp
QEvent event(QEvent::SockAct);
GSocketNotifierSource *src = reinterpret_cast<GSocketNotifierSource *>(source);
+ if (src->processEventsFlags & QEventLoop::ExcludeSocketNotifiers)
+ return true;
+
for (int i = 0; i < src->pollfds.count(); ++i) {
GPollFDWithQSocketNotifier *p = src->pollfds.at(i);
@@ -330,6 +337,7 @@ QEventDispatcherGlibPrivate::QEventDispa
reinterpret_cast<GSocketNotifierSource *>(g_source_new(&socketNotifierSourceFuncs,
sizeof(GSocketNotifierSource)));
(void) new (&socketNotifierSource->pollfds) QList<GPollFDWithQSocketNotifier *>();
+ socketNotifierSource->processEventsFlags = QEventLoop::AllEvents;
g_source_set_can_recurse(&socketNotifierSource->source, true);
g_source_attach(&socketNotifierSource->source, mainContext);
@@ -415,6 +423,7 @@ bool QEventDispatcherGlib::processEvents
// tell postEventSourcePrepare() and timerSource about any new flags
QEventLoop::ProcessEventsFlags savedFlags = d->timerSource->processEventsFlags;
d->timerSource->processEventsFlags = flags;
+ d->socketNotifierSource->processEventsFlags = flags;
if (!(flags & QEventLoop::EventLoopExec)) {
// force timers to be sent at normal priority
@@ -426,6 +435,7 @@ bool QEventDispatcherGlib::processEvents
result = g_main_context_iteration(d->mainContext, canWait);
d->timerSource->processEventsFlags = savedFlags;
+ d->socketNotifierSource->processEventsFlags = savedFlags;
if (canWait)
emit awake();

View File

@ -0,0 +1,12 @@
--- src/gui/kernel/qclipboard_x11.cpp.sav 2014-04-25 09:52:03.855693228 +0200
+++ src/gui/kernel/qclipboard_x11.cpp 2014-04-25 09:51:58.038693777 +0200
@@ -548,7 +548,8 @@ bool QX11Data::clipboardWaitForEvent(Win
return false;
XSync(X11->display, false);
- usleep(50000);
+ if (!XPending(X11->display))
+ usleep(5000);
now.start();

View File

@ -0,0 +1,31 @@
diff -up qt-everywhere-opensource-src-4.8.6/src/3rdparty/javascriptcore/JavaScriptCore/wtf/Platform.h.s390 qt-everywhere-opensource-src-4.8.6/src/3rdparty/javascriptcore/JavaScriptCore/wtf/Platform.h
--- qt-everywhere-opensource-src-4.8.6/src/3rdparty/javascriptcore/JavaScriptCore/wtf/Platform.h.s390 2014-03-30 15:36:49.000000000 -0500
+++ qt-everywhere-opensource-src-4.8.6/src/3rdparty/javascriptcore/JavaScriptCore/wtf/Platform.h 2014-03-31 17:59:16.846465899 -0500
@@ -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) \
@@ -903,7 +915,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(MIPS64) || CPU(AARCH64)
+#if (CPU(X86_64) && (OS(UNIX) || OS(WINDOWS) || OS(SOLARIS) || OS(HPUX))) || (CPU(IA64) && !CPU(IA64_32)) || CPU(ALPHA) || CPU(AIX64) || CPU(SPARC64) || CPU(MIPS64) || CPU(AARCH64) || CPU(S390X)
#define WTF_USE_JSVALUE64 1
#elif CPU(ARM) || CPU(PPC64)
#define WTF_USE_JSVALUE32 1

View File

@ -0,0 +1,351 @@
diff -ur qt-everywhere-opensource-src-4.8.6/tools/assistant/lib/fulltextsearch/fulltextsearch.pri qt-everywhere-opensource-src-4.8.6-system-clucene/tools/assistant/lib/fulltextsearch/fulltextsearch.pri
--- qt-everywhere-opensource-src-4.8.6/tools/assistant/lib/fulltextsearch/fulltextsearch.pri 2014-04-10 20:37:12.000000000 +0200
+++ qt-everywhere-opensource-src-4.8.6-system-clucene/tools/assistant/lib/fulltextsearch/fulltextsearch.pri 2014-10-26 03:33:45.000000000 +0100
@@ -1,125 +1,7 @@
-DEFINES += _BUILD_FOR_QT_ LUCENE_DISABLE_MEMTRACKING
-win32:DEFINES += _CRT_SECURE_NO_DEPRECATE _MT
-
-CLUCENEDIR = ../../../../src/3rdparty/clucene/src/CLucene
-
-INCLUDEPATH += . .. \
- $$CLUCENEDIR \
- $$CLUCENEDIR/../ \
- $$CLUCENEDIR/analysis \
- $$CLUCENEDIR/analysis/standard \
- $$CLUCENEDIR/config \
- $$CLUCENEDIR/debug \
- $$CLUCENEDIR/document \
- $$CLUCENEDIR/index \
- $$CLUCENEDIR/queryParser \
- $$CLUCENEDIR/search \
- $$CLUCENEDIR/store \
- $$CLUCENEDIR/util
-
-
-SOURCES += $$CLUCENEDIR/StdHeader.cpp \
- $$CLUCENEDIR/analysis/AnalysisHeader.cpp \
- $$CLUCENEDIR/analysis/Analyzers.cpp \
- $$CLUCENEDIR/config/gunichartables.cpp \
- $$CLUCENEDIR/config/repl_lltot.cpp \
- $$CLUCENEDIR/config/repl_tcscasecmp.cpp \
- $$CLUCENEDIR/config/repl_tcslwr.cpp \
- $$CLUCENEDIR/config/repl_tcstod.cpp \
- $$CLUCENEDIR/config/repl_tcstoll.cpp \
- $$CLUCENEDIR/config/repl_tprintf.cpp \
- $$CLUCENEDIR/config/threads.cpp \
- $$CLUCENEDIR/config/utf8.cpp \
- $$CLUCENEDIR/debug/condition.cpp \
- $$CLUCENEDIR/debug/error.cpp \
- $$CLUCENEDIR/debug/memtracking.cpp \
- $$CLUCENEDIR/document/DateField.cpp \
- $$CLUCENEDIR/document/Document.cpp \
- $$CLUCENEDIR/document/Field.cpp \
- $$CLUCENEDIR/index/CompoundFile.cpp \
- $$CLUCENEDIR/index/DocumentWriter.cpp \
- $$CLUCENEDIR/index/FieldInfos.cpp \
- $$CLUCENEDIR/index/FieldsReader.cpp \
- $$CLUCENEDIR/index/FieldsWriter.cpp \
- $$CLUCENEDIR/index/IndexModifier.cpp \
- $$CLUCENEDIR/index/IndexReader.cpp \
- $$CLUCENEDIR/index/IndexWriter.cpp \
- $$CLUCENEDIR/index/MultiReader.cpp \
- $$CLUCENEDIR/index/SegmentInfos.cpp \
- $$CLUCENEDIR/index/SegmentMergeInfo.cpp \
- $$CLUCENEDIR/index/SegmentMergeQueue.cpp \
- $$CLUCENEDIR/index/SegmentMerger.cpp \
- $$CLUCENEDIR/index/SegmentReader.cpp \
- $$CLUCENEDIR/index/SegmentTermDocs.cpp \
- $$CLUCENEDIR/index/SegmentTermEnum.cpp \
- $$CLUCENEDIR/index/SegmentTermPositions.cpp \
- $$CLUCENEDIR/index/SegmentTermVector.cpp \
- $$CLUCENEDIR/index/Term.cpp \
- $$CLUCENEDIR/index/TermInfo.cpp \
- $$CLUCENEDIR/index/TermInfosReader.cpp \
- $$CLUCENEDIR/index/TermInfosWriter.cpp \
- $$CLUCENEDIR/index/TermVectorReader.cpp \
- $$CLUCENEDIR/index/TermVectorWriter.cpp \
- $$CLUCENEDIR/queryParser/Lexer.cpp \
- $$CLUCENEDIR/queryParser/MultiFieldQueryParser.cpp \
- $$CLUCENEDIR/queryParser/QueryParser.cpp \
- $$CLUCENEDIR/queryParser/QueryParserBase.cpp \
- $$CLUCENEDIR/queryParser/QueryToken.cpp \
- $$CLUCENEDIR/queryParser/TokenList.cpp \
- $$CLUCENEDIR/search/BooleanQuery.cpp \
- $$CLUCENEDIR/search/BooleanScorer.cpp \
- $$CLUCENEDIR/search/CachingWrapperFilter.cpp \
- $$CLUCENEDIR/search/ChainedFilter.cpp \
- $$CLUCENEDIR/search/ConjunctionScorer.cpp \
- $$CLUCENEDIR/search/DateFilter.cpp \
- $$CLUCENEDIR/search/ExactPhraseScorer.cpp \
- $$CLUCENEDIR/search/Explanation.cpp \
- $$CLUCENEDIR/search/FieldCache.cpp \
- $$CLUCENEDIR/search/FieldCacheImpl.cpp \
- $$CLUCENEDIR/search/FieldDocSortedHitQueue.cpp \
- $$CLUCENEDIR/search/FieldSortedHitQueue.cpp \
- $$CLUCENEDIR/search/FilteredTermEnum.cpp \
- $$CLUCENEDIR/search/FuzzyQuery.cpp \
- $$CLUCENEDIR/search/HitQueue.cpp \
- $$CLUCENEDIR/search/Hits.cpp \
- $$CLUCENEDIR/search/IndexSearcher.cpp \
- $$CLUCENEDIR/search/MultiSearcher.cpp \
- $$CLUCENEDIR/search/MultiTermQuery.cpp \
- $$CLUCENEDIR/search/PhrasePositions.cpp \
- $$CLUCENEDIR/search/PhraseQuery.cpp \
- $$CLUCENEDIR/search/PhraseScorer.cpp \
- $$CLUCENEDIR/search/PrefixQuery.cpp \
- $$CLUCENEDIR/search/QueryFilter.cpp \
- $$CLUCENEDIR/search/RangeFilter.cpp \
- $$CLUCENEDIR/search/RangeQuery.cpp \
- $$CLUCENEDIR/search/SearchHeader.cpp \
- $$CLUCENEDIR/search/Similarity.cpp \
- $$CLUCENEDIR/search/SloppyPhraseScorer.cpp \
- $$CLUCENEDIR/search/Sort.cpp \
- $$CLUCENEDIR/search/TermQuery.cpp \
- $$CLUCENEDIR/search/TermScorer.cpp \
- $$CLUCENEDIR/search/WildcardQuery.cpp \
- $$CLUCENEDIR/search/WildcardTermEnum.cpp \
- $$CLUCENEDIR/store/FSDirectory.cpp \
- $$CLUCENEDIR/store/IndexInput.cpp \
- $$CLUCENEDIR/store/IndexOutput.cpp \
- $$CLUCENEDIR/store/Lock.cpp \
- $$CLUCENEDIR/store/MMapInput.cpp \
- $$CLUCENEDIR/store/RAMDirectory.cpp \
- $$CLUCENEDIR/store/TransactionalRAMDirectory.cpp \
- $$CLUCENEDIR/util/BitSet.cpp \
- $$CLUCENEDIR/util/Equators.cpp \
- $$CLUCENEDIR/util/FastCharStream.cpp \
- $$CLUCENEDIR/util/fileinputstream.cpp \
- $$CLUCENEDIR/util/Misc.cpp \
- $$CLUCENEDIR/util/Reader.cpp \
- $$CLUCENEDIR/util/StringBuffer.cpp \
- $$CLUCENEDIR/util/StringIntern.cpp \
- $$CLUCENEDIR/util/ThreadLocal.cpp \
- $$CLUCENEDIR/analysis/standard/StandardAnalyzer.cpp \
- $$CLUCENEDIR/analysis/standard/StandardFilter.cpp \
- $$CLUCENEDIR/analysis/standard/StandardTokenizer.cpp
+INCLUDEPATH += /usr/include/clucene09 $$[QT_INSTALL_LIBS]/clucene09 $$[QT_INSTALL_LIBS]
+LIBS += -L$$[QT_INSTALL_LIBS]/clucene09 -lclucene
+#DEFINES += LUCENE_ENABLE_REFCOUNT (must be set at CLucene build time!)
#Header files
HEADERS += qclucene_global_p.h \
diff -ur qt-everywhere-opensource-src-4.8.6/tools/assistant/lib/fulltextsearch/qclucene-config_p.h qt-everywhere-opensource-src-4.8.6-system-clucene/tools/assistant/lib/fulltextsearch/qclucene-config_p.h
--- qt-everywhere-opensource-src-4.8.6/tools/assistant/lib/fulltextsearch/qclucene-config_p.h 2014-04-10 20:37:12.000000000 +0200
+++ qt-everywhere-opensource-src-4.8.6-system-clucene/tools/assistant/lib/fulltextsearch/qclucene-config_p.h 2014-10-26 02:28:54.000000000 +0100
@@ -15,6 +15,8 @@
**
****************************************************************************/
+#error This header must not be included when building against system CLucene.
+
#ifndef QCLUCENE_CONFIG_P_H
#define QCLUCENE_CONFIG_P_H
diff -ur qt-everywhere-opensource-src-4.8.6/tools/assistant/lib/fulltextsearch/qclucene_global_p.h qt-everywhere-opensource-src-4.8.6-system-clucene/tools/assistant/lib/fulltextsearch/qclucene_global_p.h
--- qt-everywhere-opensource-src-4.8.6/tools/assistant/lib/fulltextsearch/qclucene_global_p.h 2014-04-10 20:37:12.000000000 +0200
+++ qt-everywhere-opensource-src-4.8.6-system-clucene/tools/assistant/lib/fulltextsearch/qclucene_global_p.h 2014-10-26 02:31:54.000000000 +0100
@@ -29,20 +29,10 @@
// We mean it.
//
-#if !defined(_MSC_VER)
-# include "qclucene-config_p.h"
-#endif
-
#include <QtCore/QChar>
#include <QtCore/QString>
-#if !defined(_MSC_VER) && !defined(__MINGW32__) && defined(_CL_HAVE_WCHAR_H) && defined(_CL_HAVE_WCHAR_T)
-# if !defined(TCHAR)
-# define TCHAR wchar_t
-# endif
-#else
-# include <windows.h>
-#endif
+#include <CLucene/StdHeader.h>
QT_BEGIN_HEADER
@@ -56,52 +46,6 @@
# define QHELP_EXPORT Q_DECL_IMPORT
#endif
-//
-// W A R N I N G
-// -------------
-//
-// adjustments here, need to be done in
-// QTDIR/src/3rdparty/clucene/src/CLucene/StdHeader.h as well
-//
-#if defined(_LUCENE_DONTIMPLEMENT_NS_MACROS)
-
-#elif !defined(DISABLE_NAMESPACE)
-# ifdef QT_NAMESPACE
-# define CL_NS_DEF(sub) namespace QT_NAMESPACE { namespace lucene{ namespace sub{
-# define CL_NS_DEF2(sub,sub2) namespace QT_NAMESPACE { namespace lucene{ namespace sub{ namespace sub2 {
-
-# define CL_NS_END }}}
-# define CL_NS_END2 }}}}
-
-# define CL_NS_USE(sub) using namespace QT_NAMESPACE::lucene::sub;
-# define CL_NS_USE2(sub,sub2) using namespace QT_NAMESPACE::lucene::sub::sub2;
-
-# define CL_NS(sub) QT_NAMESPACE::lucene::sub
-# define CL_NS2(sub,sub2) QT_NAMESPACE::lucene::sub::sub2
-# else
-# define CL_NS_DEF(sub) namespace lucene{ namespace sub{
-# define CL_NS_DEF2(sub,sub2) namespace lucene{ namespace sub{ namespace sub2 {
-
-# define CL_NS_END }}
-# define CL_NS_END2 }}}
-
-# define CL_NS_USE(sub) using namespace lucene::sub;
-# define CL_NS_USE2(sub,sub2) using namespace lucene::sub::sub2;
-
-# define CL_NS(sub) lucene::sub
-# define CL_NS2(sub,sub2) lucene::sub::sub2
-# endif
-#else
-# define CL_NS_DEF(sub)
-# define CL_NS_DEF2(sub, sub2)
-# define CL_NS_END
-# define CL_NS_END2
-# define CL_NS_USE(sub)
-# define CL_NS_USE2(sub,sub2)
-# define CL_NS(sub)
-# define CL_NS2(sub,sub2)
-#endif
-
namespace {
TCHAR* QStringToTChar(const QString &str)
{
diff -ur qt-everywhere-opensource-src-4.8.6/tools/assistant/lib/fulltextsearch/qindexreader.cpp qt-everywhere-opensource-src-4.8.6-system-clucene/tools/assistant/lib/fulltextsearch/qindexreader.cpp
--- qt-everywhere-opensource-src-4.8.6/tools/assistant/lib/fulltextsearch/qindexreader.cpp 2014-04-10 20:37:12.000000000 +0200
+++ qt-everywhere-opensource-src-4.8.6-system-clucene/tools/assistant/lib/fulltextsearch/qindexreader.cpp 2014-10-26 02:48:02.000000000 +0100
@@ -18,6 +18,8 @@
#include "qindexreader_p.h"
#include "qclucene_global_p.h"
+#include <QtCore/QDir>
+
#include <CLucene.h>
#include <CLucene/index/IndexReader.h>
@@ -59,13 +61,13 @@
{
using namespace lucene::index;
- return IndexReader::isLuceneFile(filename);
+ return IndexReader::isLuceneFile(filename.toLocal8Bit().constData());
}
bool QCLuceneIndexReader::indexExists(const QString &directory)
{
using namespace lucene::index;
- return IndexReader::indexExists(directory);
+ return IndexReader::indexExists(directory.toLocal8Bit().constData());
}
QCLuceneIndexReader QCLuceneIndexReader::open(const QString &path)
@@ -73,7 +75,7 @@
using namespace lucene::index;
QCLuceneIndexReader indexReader;
- indexReader.d->reader = IndexReader::open(path);
+ indexReader.d->reader = IndexReader::open(path.toLocal8Bit().constData());
return indexReader;
}
@@ -81,25 +83,29 @@
void QCLuceneIndexReader::unlock(const QString &path)
{
using namespace lucene::index;
- IndexReader::unlock(path);
+ IndexReader::unlock(path.toLocal8Bit().constData());
}
bool QCLuceneIndexReader::isLocked(const QString &directory)
{
+ // The system CLucene fails here if the directory does not exist yet, unlike
+ // the bundled one. Work around that.
+ QDir::current().mkpath(directory);
+
using namespace lucene::index;
- return IndexReader::isLocked(directory);
+ return IndexReader::isLocked(directory.toLocal8Bit().constData());
}
quint64 QCLuceneIndexReader::lastModified(const QString &directory)
{
using namespace lucene::index;
- return quint64(IndexReader::lastModified(directory));
+ return quint64(IndexReader::lastModified(directory.toLocal8Bit().constData()));
}
qint64 QCLuceneIndexReader::getCurrentVersion(const QString &directory)
{
using namespace lucene::index;
- return qint64(IndexReader::getCurrentVersion(directory));
+ return qint64(IndexReader::getCurrentVersion(directory.toLocal8Bit().constData()));
}
void QCLuceneIndexReader::close()
@@ -155,7 +161,7 @@
void QCLuceneIndexReader::setNorm(qint32 doc, const QString &field, qreal value)
{
TCHAR *fieldName = QStringToTChar(field);
- d->reader->setNorm(int32_t(doc), fieldName, qreal(value));
+ d->reader->setNorm(int32_t(doc), fieldName, (float_t)value);
delete [] fieldName;
}
diff -ur qt-everywhere-opensource-src-4.8.6/tools/assistant/lib/fulltextsearch/qindexwriter.cpp qt-everywhere-opensource-src-4.8.6-system-clucene/tools/assistant/lib/fulltextsearch/qindexwriter.cpp
--- qt-everywhere-opensource-src-4.8.6/tools/assistant/lib/fulltextsearch/qindexwriter.cpp 2014-04-10 20:37:12.000000000 +0200
+++ qt-everywhere-opensource-src-4.8.6-system-clucene/tools/assistant/lib/fulltextsearch/qindexwriter.cpp 2014-10-26 02:48:27.000000000 +0100
@@ -18,6 +18,8 @@
#include "qindexwriter_p.h"
#include "qindexreader_p.h"
+#include <QtCore/QDir>
+
#include <CLucene.h>
#include <CLucene/index/IndexWriter.h>
@@ -50,7 +52,12 @@
: d(new QCLuceneIndexWriterPrivate())
, analyzer(analyzer)
{
- d->writer = new lucene::index::IndexWriter(path,
+ // The system CLucene cannot create directories recursively, so do it here.
+ // Ignore failure: If it failed, we will get an error from CLucene anyway.
+ if (create)
+ QDir::current().mkpath(path);
+
+ d->writer = new lucene::index::IndexWriter(path.toLocal8Bit().constData(),
analyzer.d->analyzer, create, closeDir);
}
diff -ur qt-everywhere-opensource-src-4.8.6/tools/assistant/lib/fulltextsearch/qsearchable.cpp qt-everywhere-opensource-src-4.8.6-system-clucene/tools/assistant/lib/fulltextsearch/qsearchable.cpp
--- qt-everywhere-opensource-src-4.8.6/tools/assistant/lib/fulltextsearch/qsearchable.cpp 2014-04-10 20:37:12.000000000 +0200
+++ qt-everywhere-opensource-src-4.8.6-system-clucene/tools/assistant/lib/fulltextsearch/qsearchable.cpp 2014-10-26 02:48:44.000000000 +0100
@@ -95,7 +95,7 @@
: QCLuceneSearcher()
{
lucene::search::IndexSearcher *searcher =
- new lucene::search::IndexSearcher(path);
+ new lucene::search::IndexSearcher(path.toLocal8Bit().constData());
reader.d->reader = searcher->getReader();
reader.d->deleteCLuceneIndexReader = false;
diff -ur qt-everywhere-opensource-src-4.8.6/tools/assistant/lib/lib.pro qt-everywhere-opensource-src-4.8.6-system-clucene/tools/assistant/lib/lib.pro
--- qt-everywhere-opensource-src-4.8.6/tools/assistant/lib/lib.pro 2014-04-10 20:37:12.000000000 +0200
+++ qt-everywhere-opensource-src-4.8.6-system-clucene/tools/assistant/lib/lib.pro 2014-10-26 02:27:55.000000000 +0100
@@ -43,6 +43,7 @@
qhelp_global.cpp
# access to clucene
+INCLUDEPATH += /usr/include/clucene09 $$[QT_INSTALL_LIBS]/clucene09 $$[QT_INSTALL_LIBS]
SOURCES += qhelpsearchindexwriter_clucene.cpp \
qhelpsearchindexreader_clucene.cpp
HEADERS += qhelpenginecore.h \

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,12 @@
diff -up qt-everywhere-opensource-src-4.8.7/src/corelib/global/qglobal.h.majmin qt-everywhere-opensource-src-4.8.7/src/corelib/global/qglobal.h
--- qt-everywhere-opensource-src-4.8.7/src/corelib/global/qglobal.h.majmin 2015-05-07 09:14:48.000000000 -0500
+++ qt-everywhere-opensource-src-4.8.7/src/corelib/global/qglobal.h 2016-12-08 12:10:29.677359701 -0600
@@ -52,7 +52,7 @@
/*
can be used like #if (QT_VERSION >= QT_VERSION_CHECK(4, 4, 0))
*/
-#define QT_VERSION_CHECK(major, minor, patch) ((major<<16)|(minor<<8)|(patch))
+#define QT_VERSION_CHECK(qt_version_check_major, qt_version_check_minor, qt_version_check_patch) ((qt_version_check_major<<16)|(qt_version_check_minor<<8)|(qt_version_check_patch))
#define QT_PACKAGEDATE_STR "2015-05-07"

View File

@ -0,0 +1,12 @@
diff -up qt-everywhere-opensource-src-4.8.7/config.tests/unix/alsa/alsatest.cpp.than qt-everywhere-opensource-src-4.8.7/config.tests/unix/alsa/alsatest.cpp
--- qt-everywhere-opensource-src-4.8.7/config.tests/unix/alsa/alsatest.cpp.than 2016-02-10 16:31:02.450152334 +0100
+++ qt-everywhere-opensource-src-4.8.7/config.tests/unix/alsa/alsatest.cpp 2016-02-10 16:31:51.495307579 +0100
@@ -40,7 +40,7 @@
****************************************************************************/
#include <alsa/asoundlib.h>
-#if(!(SND_LIB_MAJOR == 1 && SND_LIB_MINOR == 0 && SND_LIB_SUBMINOR >= 10))
+#if(!(SND_LIB_MAJOR == 1 && (SND_LIB_MINOR > 0 || SND_LIB_SUBMINOR >= 10)))
#error "Alsa version found too old, require >= 1.0.10"
#endif

View File

@ -0,0 +1,45 @@
diff -up qt-everywhere-opensource-src-4.8.7/config.tests/unix/ibase/ibase.cpp.ibase qt-everywhere-opensource-src-4.8.7/config.tests/unix/ibase/ibase.cpp
--- qt-everywhere-opensource-src-4.8.7/config.tests/unix/ibase/ibase.cpp.ibase 2015-05-07 09:14:42.000000000 -0500
+++ qt-everywhere-opensource-src-4.8.7/config.tests/unix/ibase/ibase.cpp 2016-11-30 10:55:05.825339674 -0600
@@ -39,7 +39,7 @@
**
****************************************************************************/
-#include <ibase.h>
+#include <firebird/ibase.h>
int main(int, char **)
{
diff -up qt-everywhere-opensource-src-4.8.7/config.tests/unix/ibase/ibase.pro.ibase qt-everywhere-opensource-src-4.8.7/config.tests/unix/ibase/ibase.pro
--- qt-everywhere-opensource-src-4.8.7/config.tests/unix/ibase/ibase.pro.ibase 2015-05-07 09:14:42.000000000 -0500
+++ qt-everywhere-opensource-src-4.8.7/config.tests/unix/ibase/ibase.pro 2016-11-30 10:56:11.017740104 -0600
@@ -1,4 +1,4 @@
SOURCES = ibase.cpp
CONFIG -= qt dylib
mac:CONFIG -= app_bundle
-LIBS += -lgds
+LIBS += -lfbclient
diff -up qt-everywhere-opensource-src-4.8.7/src/sql/drivers/ibase/qsql_ibase.h.ibase qt-everywhere-opensource-src-4.8.7/src/sql/drivers/ibase/qsql_ibase.h
--- qt-everywhere-opensource-src-4.8.7/src/sql/drivers/ibase/qsql_ibase.h.ibase 2015-05-07 09:14:48.000000000 -0500
+++ qt-everywhere-opensource-src-4.8.7/src/sql/drivers/ibase/qsql_ibase.h 2016-11-30 10:57:34.516252974 -0600
@@ -45,7 +45,7 @@
#include <QtSql/qsqlresult.h>
#include <QtSql/qsqldriver.h>
#include <QtSql/private/qsqlcachedresult_p.h>
-#include <ibase.h>
+#include <firebird/ibase.h>
QT_BEGIN_HEADER
diff -up qt-everywhere-opensource-src-4.8.7/src/sql/drivers/ibase/qsql_ibase.pri.ibase qt-everywhere-opensource-src-4.8.7/src/sql/drivers/ibase/qsql_ibase.pri
--- qt-everywhere-opensource-src-4.8.7/src/sql/drivers/ibase/qsql_ibase.pri.ibase 2015-05-07 09:14:48.000000000 -0500
+++ qt-everywhere-opensource-src-4.8.7/src/sql/drivers/ibase/qsql_ibase.pri 2016-11-30 10:57:11.783113341 -0600
@@ -2,7 +2,7 @@ HEADERS += $$PWD/qsql_ibase.h
SOURCES += $$PWD/qsql_ibase.cpp
unix {
- !contains(LIBS, .*gds.*):!contains(LIBS, .*libfb.*):LIBS += -lgds
+ !contains(LIBS, .*gds.*):!contains(LIBS, .*libfb.*):LIBS += -lfbclient
} else {
!contains(LIBS, .*gds.*):!contains(LIBS, .*fbclient.*) {
win32-borland:LIBS += gds32.lib

View File

@ -0,0 +1,35 @@
diff -up qt-everywhere-opensource-src-4.8.7/configure.gcc6 qt-everywhere-opensource-src-4.8.7/configure
--- qt-everywhere-opensource-src-4.8.7/configure.gcc6 2016-04-15 07:04:19.430268222 -0500
+++ qt-everywhere-opensource-src-4.8.7/configure 2016-04-15 07:05:22.157568689 -0500
@@ -7744,7 +7744,7 @@ case "$XPLATFORM" in
*-g++*)
# Check gcc's version
case "$(${QMAKE_CONF_COMPILER} -dumpversion)" in
- 5*|4*|3.4*)
+ 8*|7*|6*|5*|4*|3.4*)
;;
3.3*)
canBuildWebKit="no"
@@ -8060,7 +8060,7 @@ g++*)
3.*)
COMPILER_VERSION="3.*"
;;
- 5*|4.*)
+ 8*|7*|6*|5*|4.*)
COMPILER_VERSION="4"
;;
*)
diff -up qt-everywhere-opensource-src-4.8.7/src/xmlpatterns/api/qcoloroutput_p.h.gcc6 qt-everywhere-opensource-src-4.8.7/src/xmlpatterns/api/qcoloroutput_p.h
--- qt-everywhere-opensource-src-4.8.7/src/xmlpatterns/api/qcoloroutput_p.h.gcc6 2015-05-07 09:14:48.000000000 -0500
+++ qt-everywhere-opensource-src-4.8.7/src/xmlpatterns/api/qcoloroutput_p.h 2016-04-15 07:04:19.431268227 -0500
@@ -70,8 +70,8 @@ namespace QPatternist
ForegroundShift = 10,
BackgroundShift = 20,
SpecialShift = 20,
- ForegroundMask = ((1 << ForegroundShift) - 1) << ForegroundShift,
- BackgroundMask = ((1 << BackgroundShift) - 1) << BackgroundShift
+ ForegroundMask = 0x1f << ForegroundShift,
+ BackgroundMask = 0x7 << BackgroundShift
};
public:

View File

@ -0,0 +1,13 @@
diff -up qt-everywhere-opensource-src-4.8.7/src/script/script.pro.gcc8 qt-everywhere-opensource-src-4.8.7/src/script/script.pro
--- qt-everywhere-opensource-src-4.8.7/src/script/script.pro.gcc8 2015-05-07 09:14:43.000000000 -0500
+++ qt-everywhere-opensource-src-4.8.7/src/script/script.pro 2018-05-19 16:01:24.699926959 -0500
@@ -91,6 +91,9 @@ symbian {
TARGET.UID3=0x2001B2E1
}
+# hack around gcc8 optimization bug with -O2
+QMAKE_CXXFLAGS_RELEASE += -O1
+
symbian {
symbian-abld|symbian-sbsv2 {
MMP_RULES += ALWAYS_BUILD_AS_ARM

View File

@ -0,0 +1,28 @@
From: Fabian Vogt <fabian@ritter-vogt.de>
Subject: Fix build with ICU >= 59
ICU >= 59 requires C++11 for its header files.
Qt can't be compiled with -std=c++11 as a whole, so only enable
it for qlocale_icu.cpp.
Index: qt-everywhere-opensource-src-4.8.7/src/corelib/tools/tools.pri
===================================================================
--- qt-everywhere-opensource-src-4.8.7.orig/src/corelib/tools/tools.pri
+++ qt-everywhere-opensource-src-4.8.7/src/corelib/tools/tools.pri
@@ -102,7 +102,15 @@ contains(QT_CONFIG, zlib):include($$PWD/
else:include($$PWD/../../3rdparty/zlib_dependency.pri)
contains(QT_CONFIG,icu) {
- SOURCES += tools/qlocale_icu.cpp
+ cpp11.name = cpp11
+ cpp11.input = SOURCES_CPP11
+ cpp11.dependency_type = TYPE_C
+ cpp11.variable_out = OBJECTS
+ cpp11.output = ${QMAKE_VAR_OBJECTS_DIR}${QMAKE_FILE_IN_BASE}$${first(QMAKE_EXT_OBJ)}
+ cpp11.commands = $${QMAKE_CXX} $(CXXFLAGS) -std=c++11 $(INCPATH) -c ${QMAKE_FILE_IN} -o ${QMAKE_FILE_OUT}
+ QMAKE_EXTRA_COMPILERS += cpp11
+
+ SOURCES_CPP11 += tools/qlocale_icu.cpp
DEFINES += QT_USE_ICU
}

View File

@ -0,0 +1,28 @@
diff -up qt-everywhere-opensource-src-4.8.7/src/sql/drivers/mysql/qsql_mysql.cpp.mariadb qt-everywhere-opensource-src-4.8.7/src/sql/drivers/mysql/qsql_mysql.cpp
--- qt-everywhere-opensource-src-4.8.7/src/sql/drivers/mysql/qsql_mysql.cpp.mariadb 2015-05-07 09:14:48.000000000 -0500
+++ qt-everywhere-opensource-src-4.8.7/src/sql/drivers/mysql/qsql_mysql.cpp 2017-10-23 14:13:15.871808984 -0500
@@ -1105,11 +1105,16 @@ static void qLibraryInit()
}
# endif // MYSQL_VERSION_ID
#endif // Q_NO_MYSQL_EMBEDDED
+
+#if defined(MARIADB_BASE_VERSION) || defined(MARIADB_VERSION_ID)
+ qAddPostRoutine(mysql_server_end);
+#endif
}
static void qLibraryEnd()
{
#ifndef Q_NO_MYSQL_EMBEDDED
+#if !defined(MARIADB_BASE_VERSION) && !defined(MARIADB_VERSION_ID)
# if MYSQL_VERSION_ID > 40000
# if (MYSQL_VERSION_ID >= 40110 && MYSQL_VERSION_ID < 50000) || MYSQL_VERSION_ID >= 50003
mysql_library_end();
@@ -1118,6 +1123,7 @@ static void qLibraryEnd()
# endif
# endif
#endif
+#endif
}
QMYSQLDriver::QMYSQLDriver(QObject * parent)

View File

@ -0,0 +1,13 @@
diff -urp qt-everywhere-opensource-src-4.8.7/configure q/configure
--- qt-everywhere-opensource-src-4.8.7/configure 2016-04-03 16:49:50.218644449 +0200
+++ q/configure 2016-04-03 17:22:35.376405024 +0200
@@ -3331,6 +3331,9 @@ arm*)
CFG_ARCH=arm
COMPAT_ARCH=armv6
;;
+mips*)
+ CFG_ARCH=mips
+ ;;
esac
if [ -d "$relpath/src/corelib/arch/$CFG_ARCH" ]; then

View File

@ -0,0 +1,694 @@
diff -ur qt-everywhere-opensource-src-4.8.7/src/network/ssl/qsslcertificate.cpp qt-everywhere-opensource-src-4.8.7-openssl-1.1/src/network/ssl/qsslcertificate.cpp
--- qt-everywhere-opensource-src-4.8.7/src/network/ssl/qsslcertificate.cpp 2015-05-07 16:14:44.000000000 +0200
+++ qt-everywhere-opensource-src-4.8.7-openssl-1.1/src/network/ssl/qsslcertificate.cpp 2018-01-05 17:44:16.997588265 +0100
@@ -259,10 +259,10 @@
QByteArray QSslCertificate::version() const
{
QMutexLocker lock(QMutexPool::globalInstanceGet(d.data()));
- if (d->versionString.isEmpty() && d->x509)
+ if (d->versionString.isEmpty() && d->x509) {
d->versionString =
- QByteArray::number(qlonglong(q_ASN1_INTEGER_get(d->x509->cert_info->version)) + 1);
-
+ QByteArray::number(qlonglong(q_X509_get_version(d->x509)) + 1);
+ }
return d->versionString;
}
@@ -276,7 +276,7 @@
{
QMutexLocker lock(QMutexPool::globalInstanceGet(d.data()));
if (d->serialNumberString.isEmpty() && d->x509) {
- ASN1_INTEGER *serialNumber = d->x509->cert_info->serialNumber;
+ ASN1_INTEGER *serialNumber = q_X509_get_serialNumber(d->x509);
// if we cannot convert to a long, just output the hexadecimal number
if (serialNumber->length > 4) {
QByteArray hexString;
@@ -489,24 +489,33 @@
QSslKey key;
key.d->type = QSsl::PublicKey;
+#if OPENSSL_VERSION_NUMBER < 0x10100000L
X509_PUBKEY *xkey = d->x509->cert_info->key;
+#else
+ X509_PUBKEY *xkey = q_X509_get_X509_PUBKEY(d->x509);
+#endif
EVP_PKEY *pkey = q_X509_PUBKEY_get(xkey);
Q_ASSERT(pkey);
- if (q_EVP_PKEY_type(pkey->type) == EVP_PKEY_RSA) {
+ int key_id;
+#if OPENSSL_VERSION_NUMBER < 0x10100000L
+ key_id = q_EVP_PKEY_type(pkey->type);
+#else
+ key_id = q_EVP_PKEY_base_id(pkey);
+#endif
+ if (key_id == EVP_PKEY_RSA) {
key.d->rsa = q_EVP_PKEY_get1_RSA(pkey);
key.d->algorithm = QSsl::Rsa;
key.d->isNull = false;
- } else if (q_EVP_PKEY_type(pkey->type) == EVP_PKEY_DSA) {
+ } else if (key_id == EVP_PKEY_DSA) {
key.d->dsa = q_EVP_PKEY_get1_DSA(pkey);
key.d->algorithm = QSsl::Dsa;
key.d->isNull = false;
- } else if (q_EVP_PKEY_type(pkey->type) == EVP_PKEY_DH) {
+ } else if (key_id == EVP_PKEY_DH) {
// DH unsupported
} else {
// error?
}
-
q_EVP_PKEY_free(pkey);
return key;
}
@@ -687,7 +696,11 @@
unsigned char *data = 0;
int size = q_ASN1_STRING_to_UTF8(&data, q_X509_NAME_ENTRY_get_data(e));
info[QString::fromUtf8(obj)] = QString::fromUtf8((char*)data, size);
+#if OPENSSL_VERSION_NUMBER < 0x10100000L
q_CRYPTO_free(data);
+#else
+ q_CRYPTO_free(data, __FILE__, __LINE__);
+#endif
}
return info;
}
diff -ur qt-everywhere-opensource-src-4.8.7/src/network/ssl/qsslkey.cpp qt-everywhere-opensource-src-4.8.7-openssl-1.1/src/network/ssl/qsslkey.cpp
--- qt-everywhere-opensource-src-4.8.7/src/network/ssl/qsslkey.cpp 2015-05-07 16:14:44.000000000 +0200
+++ qt-everywhere-opensource-src-4.8.7-openssl-1.1/src/network/ssl/qsslkey.cpp 2018-01-05 18:00:27.453937599 +0100
@@ -321,8 +321,19 @@
{
if (d->isNull)
return -1;
+#if OPENSSL_VERSION_NUMBER < 0x10100000L
return (d->algorithm == QSsl::Rsa)
? q_BN_num_bits(d->rsa->n) : q_BN_num_bits(d->dsa->p);
+#else
+ if (d->algorithm == QSsl::Rsa) {
+ return q_RSA_bits(d->rsa);
+ } else {
+ const BIGNUM *p = (const BIGNUM *) NULL;
+ q_DSA_get0_pqg(d->dsa, &p, (const BIGNUM **) NULL, (const BIGNUM **) NULL);
+ return q_BN_num_bits(p);
+ }
+#endif
+
}
/*!
diff -ur qt-everywhere-opensource-src-4.8.7/src/network/ssl/qsslsocket_openssl.cpp qt-everywhere-opensource-src-4.8.7-openssl-1.1/src/network/ssl/qsslsocket_openssl.cpp
--- qt-everywhere-opensource-src-4.8.7/src/network/ssl/qsslsocket_openssl.cpp 2015-05-07 16:14:44.000000000 +0200
+++ qt-everywhere-opensource-src-4.8.7-openssl-1.1/src/network/ssl/qsslsocket_openssl.cpp 2018-01-05 12:06:06.336990956 +0100
@@ -93,6 +93,7 @@
bool QSslSocketPrivate::s_loadedCiphersAndCerts = false;
bool QSslSocketPrivate::s_loadRootCertsOnDemand = false;
+#if OPENSSL_VERSION_NUMBER < 0x10100000L
/* \internal
From OpenSSL's thread(3) manual page:
@@ -174,6 +175,8 @@
}
} // extern "C"
+#endif //OPENSSL_VERSION_NUMBER >= 0x10100000L
+
QSslSocketBackendPrivate::QSslSocketBackendPrivate()
: ssl(0),
ctx(0),
@@ -222,9 +225,12 @@
ciph.d->encryptionMethod = descriptionList.at(4).mid(4);
ciph.d->exportable = (descriptionList.size() > 6 && descriptionList.at(6) == QLatin1String("export"));
+#if OPENSSL_VERSION_NUMBER < 0x10100000L
ciph.d->bits = cipher->strength_bits;
ciph.d->supportedBits = cipher->alg_bits;
-
+#else
+ ciph.d->bits = q_SSL_CIPHER_get_bits(cipher, &ciph.d->supportedBits);
+#endif
}
return ciph;
}
@@ -363,7 +369,7 @@
//
// See also: QSslContext::fromConfiguration()
if (caCertificate.expiryDate() >= QDateTime::currentDateTime()) {
- q_X509_STORE_add_cert(ctx->cert_store, (X509 *)caCertificate.handle());
+ q_X509_STORE_add_cert(q_SSL_CTX_get_cert_store(ctx), (X509 *)caCertificate.handle());
}
}
@@ -500,8 +506,10 @@
*/
void QSslSocketPrivate::deinitialize()
{
+#if OPENSSL_VERSION_NUMBER < 0x10100000L
q_CRYPTO_set_id_callback(0);
q_CRYPTO_set_locking_callback(0);
+#endif
}
/*!
@@ -522,13 +530,17 @@
return false;
// Check if the library itself needs to be initialized.
+#if OPENSSL_VERSION_NUMBER < 0x10100000L
QMutexLocker locker(openssl_locks()->initLock());
+#endif
if (!s_libraryLoaded) {
s_libraryLoaded = true;
// Initialize OpenSSL.
+#if OPENSSL_VERSION_NUMBER < 0x10100000L
q_CRYPTO_set_id_callback(id_function);
q_CRYPTO_set_locking_callback(locking_function);
+#endif
if (q_SSL_library_init() != 1)
return false;
q_SSL_load_error_strings();
@@ -567,7 +579,9 @@
void QSslSocketPrivate::ensureCiphersAndCertsLoaded()
{
- QMutexLocker locker(openssl_locks()->initLock());
+#if OPENSSL_VERSION_NUMBER < 0x10100000L
+ QMutexLocker locker(openssl_locks()->initLock());
+#endif
if (s_loadedCiphersAndCerts)
return;
s_loadedCiphersAndCerts = true;
@@ -659,13 +673,18 @@
STACK_OF(SSL_CIPHER) *supportedCiphers = q_SSL_get_ciphers(mySsl);
for (int i = 0; i < q_sk_SSL_CIPHER_num(supportedCiphers); ++i) {
if (SSL_CIPHER *cipher = q_sk_SSL_CIPHER_value(supportedCiphers, i)) {
- if (cipher->valid) {
+
+#if OPENSSL_VERSION_NUMBER < 0x10100000L
+ if (cipher->valid) {
+#endif
QSslCipher ciph = QSslSocketBackendPrivate::QSslCipher_from_SSL_CIPHER(cipher);
if (!ciph.isNull()) {
if (!ciph.name().toLower().startsWith(QLatin1String("adh")))
ciphers << ciph;
}
+#if OPENSSL_VERSION_NUMBER < 0x10100000L
}
+#endif
}
}
diff -ur qt-everywhere-opensource-src-4.8.7/src/network/ssl/qsslsocket_openssl_p.h qt-everywhere-opensource-src-4.8.7-openssl-1.1/src/network/ssl/qsslsocket_openssl_p.h
--- qt-everywhere-opensource-src-4.8.7/src/network/ssl/qsslsocket_openssl_p.h 2015-05-07 16:14:44.000000000 +0200
+++ qt-everywhere-opensource-src-4.8.7-openssl-1.1/src/network/ssl/qsslsocket_openssl_p.h 2018-01-05 12:06:06.337990940 +0100
@@ -84,6 +84,10 @@
#include <openssl/tls1.h>
#endif
+#if OPENSSL_VERSION_NUMBER >= 0x10100000L
+#define OPENSSL_NO_SSL2
+#endif
+
#if OPENSSL_VERSION_NUMBER >= 0x10000000L
typedef _STACK STACK;
#endif
diff -ur qt-everywhere-opensource-src-4.8.7/src/network/ssl/qsslsocket_openssl_symbols.cpp qt-everywhere-opensource-src-4.8.7-openssl-1.1/src/network/ssl/qsslsocket_openssl_symbols.cpp
--- qt-everywhere-opensource-src-4.8.7/src/network/ssl/qsslsocket_openssl_symbols.cpp 2015-05-07 16:14:44.000000000 +0200
+++ qt-everywhere-opensource-src-4.8.7-openssl-1.1/src/network/ssl/qsslsocket_openssl_symbols.cpp 2018-01-05 17:59:10.636973932 +0100
@@ -111,16 +111,30 @@
DEFINEFUNC2(int, ASN1_STRING_to_UTF8, unsigned char **a, a, ASN1_STRING *b, b, return 0, return);
DEFINEFUNC4(long, BIO_ctrl, BIO *a, a, int b, b, long c, c, void *d, d, return -1, return)
DEFINEFUNC(int, BIO_free, BIO *a, a, return 0, return)
+#if OPENSSL_VERSION_NUMBER < 0x10100000L
DEFINEFUNC(BIO *, BIO_new, BIO_METHOD *a, a, return 0, return)
+#else
+DEFINEFUNC(BIO *, BIO_new, const BIO_METHOD *a, a, return 0, return)
+#endif
DEFINEFUNC2(BIO *, BIO_new_mem_buf, void *a, a, int b, b, return 0, return)
DEFINEFUNC3(int, BIO_read, BIO *a, a, void *b, b, int c, c, return -1, return)
+#if OPENSSL_VERSION_NUMBER < 0x10100000L
DEFINEFUNC(BIO_METHOD *, BIO_s_mem, void, DUMMYARG, return 0, return)
+#else
+DEFINEFUNC(const BIO_METHOD *, BIO_s_mem, void, DUMMYARG, return 0, return)
+#endif
DEFINEFUNC3(int, BIO_write, BIO *a, a, const void *b, b, int c, c, return -1, return)
DEFINEFUNC(int, BN_num_bits, const BIGNUM *a, a, return 0, return)
+#if OPENSSL_VERSION_NUMBER < 0x10100000L
DEFINEFUNC(int, CRYPTO_num_locks, DUMMYARG, DUMMYARG, return 0, return)
DEFINEFUNC(void, CRYPTO_set_locking_callback, void (*a)(int, int, const char *, int), a, return, DUMMYARG)
DEFINEFUNC(void, CRYPTO_set_id_callback, unsigned long (*a)(), a, return, DUMMYARG)
+#endif
+#if OPENSSL_VERSION_NUMBER < 0x10100000L
DEFINEFUNC(void, CRYPTO_free, void *a, a, return, DUMMYARG)
+#else
+DEFINEFUNC3(void, CRYPTO_free, void *a, a, const char *b, b, int c, c, return, DUMMYARG)
+#endif
DEFINEFUNC(void, DSA_free, DSA *a, a, return, DUMMYARG)
#if OPENSSL_VERSION_NUMBER < 0x00908000L
DEFINEFUNC3(X509 *, d2i_X509, X509 **a, a, unsigned char **b, b, long c, c, return 0, return)
@@ -157,6 +171,7 @@
DEFINEFUNC2(void, RAND_seed, const void *a, a, int b, b, return, DUMMYARG)
DEFINEFUNC(int, RAND_status, void, DUMMYARG, return -1, return)
DEFINEFUNC(void, RSA_free, RSA *a, a, return, DUMMYARG)
+#if OPENSSL_VERSION_NUMBER < 0x10100000L
DEFINEFUNC(int, sk_num, STACK *a, a, return -1, return)
DEFINEFUNC2(void, sk_pop_free, STACK *a, a, void (*b)(void*), b, return, DUMMYARG)
#if OPENSSL_VERSION_NUMBER >= 0x10000000L
@@ -166,6 +181,12 @@
DEFINEFUNC(void, sk_free, STACK *a, a, return, DUMMYARG)
DEFINEFUNC2(char *, sk_value, STACK *a, a, int b, b, return 0, return)
#endif
+#else
+DEFINEFUNC(int, OPENSSL_sk_num, STACK *a, a, return -1, return)
+DEFINEFUNC2(void, OPENSSL_sk_pop_free, STACK *a, a, void (*b)(void*), b, return, DUMMYARG)
+DEFINEFUNC(void, OPENSSL_sk_free, _STACK *a, a, return, DUMMYARG)
+DEFINEFUNC2(void *, OPENSSL_sk_value, STACK *a, a, int b, b, return 0, return)
+#endif
DEFINEFUNC(int, SSL_accept, SSL *a, a, return -1, return)
DEFINEFUNC(int, SSL_clear, SSL *a, a, return -1, return)
DEFINEFUNC3(char *, SSL_CIPHER_description, SSL_CIPHER *a, a, char *b, b, int c, c, return 0, return)
@@ -213,8 +234,12 @@
#else
DEFINEFUNC(long, SSL_get_verify_result, SSL *a, a, return -1, return)
#endif
+#if OPENSSL_VERSION_NUMBER < 0x10100000L
DEFINEFUNC(int, SSL_library_init, void, DUMMYARG, return -1, return)
DEFINEFUNC(void, SSL_load_error_strings, void, DUMMYARG, return, DUMMYARG)
+#else
+DEFINEFUNC2(int, OPENSSL_init_ssl, uint64_t opts, opts, const OPENSSL_INIT_SETTINGS *settings, settings, return -1, return)
+#endif
DEFINEFUNC(SSL *, SSL_new, SSL_CTX *a, a, return 0, return)
#if OPENSSL_VERSION_NUMBER >= 0x0090806fL && !defined(OPENSSL_NO_TLSEXT)
DEFINEFUNC4(long, SSL_ctrl, SSL *a, a, int cmd, cmd, long larg, larg, void *parg, parg, return -1, return)
@@ -229,13 +254,21 @@
DEFINEFUNC(const SSL_METHOD *, SSLv2_client_method, DUMMYARG, DUMMYARG, return 0, return)
#endif
DEFINEFUNC(const SSL_METHOD *, SSLv3_client_method, DUMMYARG, DUMMYARG, return 0, return)
+#if OPENSSL_VERSION_NUMBER < 0x10100000L
DEFINEFUNC(const SSL_METHOD *, SSLv23_client_method, DUMMYARG, DUMMYARG, return 0, return)
+#else
+DEFINEFUNC(const SSL_METHOD *, TLS_client_method, DUMMYARG, DUMMYARG, return 0, return)
+#endif
DEFINEFUNC(const SSL_METHOD *, TLSv1_client_method, DUMMYARG, DUMMYARG, return 0, return)
#ifndef OPENSSL_NO_SSL2
DEFINEFUNC(const SSL_METHOD *, SSLv2_server_method, DUMMYARG, DUMMYARG, return 0, return)
#endif
DEFINEFUNC(const SSL_METHOD *, SSLv3_server_method, DUMMYARG, DUMMYARG, return 0, return)
+#if OPENSSL_VERSION_NUMBER < 0x10100000L
DEFINEFUNC(const SSL_METHOD *, SSLv23_server_method, DUMMYARG, DUMMYARG, return 0, return)
+#else
+DEFINEFUNC(const SSL_METHOD *, TLS_server_method, DUMMYARG, DUMMYARG, return 0, return)
+#endif
DEFINEFUNC(const SSL_METHOD *, TLSv1_server_method, DUMMYARG, DUMMYARG, return 0, return)
#else
DEFINEFUNC(SSL_METHOD *, SSLv2_client_method, DUMMYARG, DUMMYARG, return 0, return)
@@ -274,7 +307,11 @@
DEFINEFUNC(int, X509_STORE_CTX_get_error, X509_STORE_CTX *a, a, return -1, return)
DEFINEFUNC(int, X509_STORE_CTX_get_error_depth, X509_STORE_CTX *a, a, return -1, return)
DEFINEFUNC(X509 *, X509_STORE_CTX_get_current_cert, X509_STORE_CTX *a, a, return 0, return)
+#if OPENSSL_VERSION_NUMBER < 0x10100000L
DEFINEFUNC(STACK_OF(X509) *, X509_STORE_CTX_get_chain, X509_STORE_CTX *a, a, return 0, return)
+#else
+DEFINEFUNC(STACK_OF(X509) *, X509_STORE_CTX_get0_chain, X509_STORE_CTX *a, a, return 0, return)
+#endif
DEFINEFUNC(X509_STORE_CTX *, X509_STORE_CTX_new, DUMMYARG, DUMMYARG, return 0, return)
#ifdef SSLEAY_MACROS
DEFINEFUNC2(int, i2d_DSAPrivateKey, const DSA *a, a, unsigned char **b, b, return -1, return)
@@ -282,10 +319,34 @@
DEFINEFUNC3(RSA *, d2i_RSAPrivateKey, RSA **a, a, unsigned char **b, b, long c, c, return 0, return)
DEFINEFUNC3(DSA *, d2i_DSAPrivateKey, DSA **a, a, unsigned char **b, b, long c, c, return 0, return)
#endif
+#if OPENSSL_VERSION_NUMBER < 0x10100000L
DEFINEFUNC(void, OPENSSL_add_all_algorithms_noconf, void, DUMMYARG, return, DUMMYARG)
DEFINEFUNC(void, OPENSSL_add_all_algorithms_conf, void, DUMMYARG, return, DUMMYARG)
+#else
+DEFINEFUNC2(int, OPENSSL_init_crypto, uint64_t opts, opts, const OPENSSL_INIT_SETTINGS *settings, settings, return -1, return)
+#endif
DEFINEFUNC3(int, SSL_CTX_load_verify_locations, SSL_CTX *ctx, ctx, const char *CAfile, CAfile, const char *CApath, CApath, return 0, return)
+#if OPENSSL_VERSION_NUMBER < 0x10100000L
DEFINEFUNC(long, SSLeay, void, DUMMYARG, return 0, return)
+#else
+DEFINEFUNC(unsigned long, OpenSSL_version_num, void, DUMMYARG, return 0, return)
+#endif
+DEFINEFUNC(X509_STORE *, SSL_CTX_get_cert_store, const SSL_CTX *ctx, ctx, return 0, return)
+
+DEFINEFUNC(ASN1_INTEGER *, X509_get_serialNumber, X509 *x, x, return 0, return)
+#if OPENSSL_VERSION_NUMBER >= 0x10100000L
+DEFINEFUNC(int, EVP_PKEY_id, const EVP_PKEY *pkey, pkey, return 0, return)
+DEFINEFUNC(int, EVP_PKEY_base_id, const EVP_PKEY *pkey, pkey, return 0, return)
+DEFINEFUNC2(int, SSL_CIPHER_get_bits, const SSL_CIPHER *cipher, cipher, int *alg_bits, alg_bits, return 0, return)
+DEFINEFUNC2(long, SSL_CTX_set_options, SSL_CTX *ctx, ctx, long options, options, return 0, return)
+DEFINEFUNC(long, X509_get_version, X509 *x, x, return 0, return)
+DEFINEFUNC(X509_PUBKEY *, X509_get_X509_PUBKEY, X509 *x, x, return 0, return)
+DEFINEFUNC(int, RSA_bits, const RSA *rsa, rsa, return 0, return)
+DEFINEFUNC(int, DSA_security_bits, const DSA *dsa, dsa, return 0, return)
+DEFINEFUNC(ASN1_TIME *, X509_getm_notAfter, X509 *x, x, return 0, return)
+DEFINEFUNC(ASN1_TIME *, X509_getm_notBefore, X509 *x, x, return 0, return)
+DEFINEFUNC4(void, DSA_get0_pqg, const DSA *d, d, const BIGNUM **p, p, const BIGNUM **q, q, const BIGNUM **g, g, return, return)
+#endif
#ifdef Q_OS_SYMBIAN
#define RESOLVEFUNC(func, ordinal, lib) \
@@ -580,7 +641,11 @@
static volatile bool symbolsResolved = false;
static volatile bool triedToResolveSymbols = false;
#ifndef QT_NO_THREAD
+#if OPENSSL_VERSION_NUMBER < 0x10100000L
QMutexLocker locker(QMutexPool::globalInstanceGet((void *)&q_SSL_library_init));
+#else
+ QMutexLocker locker(QMutexPool::globalInstanceGet((void *)&q_OPENSSL_init_ssl));
+#endif
#endif
if (symbolsResolved)
return true;
@@ -614,9 +679,11 @@
RESOLVEFUNC(BIO_write, 269, libs.second )
RESOLVEFUNC(BN_num_bits, 387, libs.second )
RESOLVEFUNC(CRYPTO_free, 469, libs.second )
+#if OPENSSL_VERSION_NUMBER < 0x10100000L
RESOLVEFUNC(CRYPTO_num_locks, 500, libs.second )
RESOLVEFUNC(CRYPTO_set_id_callback, 513, libs.second )
RESOLVEFUNC(CRYPTO_set_locking_callback, 516, libs.second )
+#endif
RESOLVEFUNC(DSA_free, 594, libs.second )
RESOLVEFUNC(ERR_error_string, 744, libs.second )
RESOLVEFUNC(ERR_get_error, 749, libs.second )
@@ -674,8 +741,10 @@
RESOLVEFUNC(SSL_get_peer_cert_chain, 117, libs.first )
RESOLVEFUNC(SSL_get_peer_certificate, 118, libs.first )
RESOLVEFUNC(SSL_get_verify_result, 132, libs.first )
+#if OPENSSL_VERSION_NUMBER < 0x10100000L
RESOLVEFUNC(SSL_library_init, 137, libs.first )
RESOLVEFUNC(SSL_load_error_strings, 139, libs.first )
+#endif
RESOLVEFUNC(SSL_new, 140, libs.first )
#if OPENSSL_VERSION_NUMBER >= 0x0090806fL && !defined(OPENSSL_NO_TLSEXT)
RESOLVEFUNC(SSL_ctrl, 95, libs.first )
@@ -747,9 +816,11 @@
RESOLVEFUNC(BIO_write)
RESOLVEFUNC(BN_num_bits)
RESOLVEFUNC(CRYPTO_free)
+#if OPENSSL_VERSION_NUMBER < 0x10100000L
RESOLVEFUNC(CRYPTO_num_locks)
RESOLVEFUNC(CRYPTO_set_id_callback)
RESOLVEFUNC(CRYPTO_set_locking_callback)
+#endif
RESOLVEFUNC(DSA_free)
RESOLVEFUNC(ERR_error_string)
RESOLVEFUNC(ERR_get_error)
@@ -779,10 +850,17 @@
RESOLVEFUNC(RAND_seed)
RESOLVEFUNC(RAND_status)
RESOLVEFUNC(RSA_free)
+#if OPENSSL_VERSION_NUMBER < 0x10100000L
RESOLVEFUNC(sk_free)
RESOLVEFUNC(sk_num)
RESOLVEFUNC(sk_pop_free)
RESOLVEFUNC(sk_value)
+#else
+ RESOLVEFUNC(OPENSSL_sk_free)
+ RESOLVEFUNC(OPENSSL_sk_num)
+ RESOLVEFUNC(OPENSSL_sk_pop_free)
+ RESOLVEFUNC(OPENSSL_sk_value)
+#endif
RESOLVEFUNC(SSL_CIPHER_description)
RESOLVEFUNC(SSL_CTX_check_private_key)
RESOLVEFUNC(SSL_CTX_ctrl)
@@ -797,6 +875,7 @@
RESOLVEFUNC(SSL_CTX_use_PrivateKey)
RESOLVEFUNC(SSL_CTX_use_RSAPrivateKey)
RESOLVEFUNC(SSL_CTX_use_PrivateKey_file)
+ RESOLVEFUNC(SSL_CTX_get_cert_store)
RESOLVEFUNC(SSL_accept)
RESOLVEFUNC(SSL_clear)
RESOLVEFUNC(SSL_connect)
@@ -807,8 +886,12 @@
RESOLVEFUNC(SSL_get_peer_cert_chain)
RESOLVEFUNC(SSL_get_peer_certificate)
RESOLVEFUNC(SSL_get_verify_result)
+#if OPENSSL_VERSION_NUMBER < 0x10100000L
RESOLVEFUNC(SSL_library_init)
RESOLVEFUNC(SSL_load_error_strings)
+#else
+ RESOLVEFUNC(OPENSSL_init_ssl)
+#endif
RESOLVEFUNC(SSL_new)
#if OPENSSL_VERSION_NUMBER >= 0x0090806fL && !defined(OPENSSL_NO_TLSEXT)
RESOLVEFUNC(SSL_ctrl)
@@ -819,17 +902,47 @@
RESOLVEFUNC(SSL_set_connect_state)
RESOLVEFUNC(SSL_shutdown)
RESOLVEFUNC(SSL_write)
+
+ RESOLVEFUNC(X509_get_serialNumber)
+#if OPENSSL_VERSION_NUMBER >= 0x10100000L
+ RESOLVEFUNC(SSL_CTX_ctrl)
+ RESOLVEFUNC(EVP_PKEY_id)
+ RESOLVEFUNC(EVP_PKEY_base_id)
+ RESOLVEFUNC(SSL_CIPHER_get_bits)
+ RESOLVEFUNC(SSL_CTX_set_options)
+ RESOLVEFUNC(X509_get_version)
+ RESOLVEFUNC(X509_get_X509_PUBKEY)
+ RESOLVEFUNC(RSA_bits)
+ RESOLVEFUNC(DSA_security_bits)
+ RESOLVEFUNC(DSA_get0_pqg)
+#if OPENSSL_VERSION_NUMBER < 0x10100000L
+ RESOLVEFUNC(X509_get_notAfter)
+ RESOLVEFUNC(X509_get_notBefore)
+#else
+ RESOLVEFUNC(X509_getm_notAfter)
+ RESOLVEFUNC(X509_getm_notBefore)
+#endif
+#endif
+
#ifndef OPENSSL_NO_SSL2
RESOLVEFUNC(SSLv2_client_method)
#endif
RESOLVEFUNC(SSLv3_client_method)
+#if OPENSSL_VERSION_NUMBER < 0x10100000L
RESOLVEFUNC(SSLv23_client_method)
+#else
+ RESOLVEFUNC(TLS_client_method)
+#endif
RESOLVEFUNC(TLSv1_client_method)
#ifndef OPENSSL_NO_SSL2
RESOLVEFUNC(SSLv2_server_method)
#endif
RESOLVEFUNC(SSLv3_server_method)
+#if OPENSSL_VERSION_NUMBER < 0x10100000L
RESOLVEFUNC(SSLv23_server_method)
+#else
+ RESOLVEFUNC(TLS_server_method)
+#endif
RESOLVEFUNC(TLSv1_server_method)
RESOLVEFUNC(X509_NAME_entry_count)
RESOLVEFUNC(X509_NAME_get_entry)
@@ -846,7 +959,11 @@
RESOLVEFUNC(X509_STORE_CTX_get_error)
RESOLVEFUNC(X509_STORE_CTX_get_error_depth)
RESOLVEFUNC(X509_STORE_CTX_get_current_cert)
+#if OPENSSL_VERSION_NUMBER < 0x10100000L
RESOLVEFUNC(X509_STORE_CTX_get_chain)
+#else
+ RESOLVEFUNC(X509_STORE_CTX_get0_chain)
+#endif
RESOLVEFUNC(X509_cmp)
#ifndef SSLEAY_MACROS
RESOLVEFUNC(X509_dup)
@@ -867,10 +984,18 @@
RESOLVEFUNC(d2i_DSAPrivateKey)
RESOLVEFUNC(d2i_RSAPrivateKey)
#endif
+#if OPENSSL_VERSION_NUMBER < 0x10100000L
RESOLVEFUNC(OPENSSL_add_all_algorithms_noconf)
RESOLVEFUNC(OPENSSL_add_all_algorithms_conf)
+#else
+ RESOLVEFUNC(OPENSSL_init_crypto)
+#endif
RESOLVEFUNC(SSL_CTX_load_verify_locations)
+#if OPENSSL_VERSION_NUMBER < 0x10100000L
RESOLVEFUNC(SSLeay)
+#else
+ RESOLVEFUNC(OpenSSL_version_num)
+#endif
#endif // Q_OS_SYMBIAN
symbolsResolved = true;
delete libs.first;
diff -ur qt-everywhere-opensource-src-4.8.7/src/network/ssl/qsslsocket_openssl_symbols_p.h qt-everywhere-opensource-src-4.8.7-openssl-1.1/src/network/ssl/qsslsocket_openssl_symbols_p.h
--- qt-everywhere-opensource-src-4.8.7/src/network/ssl/qsslsocket_openssl_symbols_p.h 2015-05-07 16:14:44.000000000 +0200
+++ qt-everywhere-opensource-src-4.8.7-openssl-1.1/src/network/ssl/qsslsocket_openssl_symbols_p.h 2018-01-05 17:59:42.041550255 +0100
@@ -207,16 +207,31 @@
int q_ASN1_STRING_to_UTF8(unsigned char **a, ASN1_STRING *b);
long q_BIO_ctrl(BIO *a, int b, long c, void *d);
int q_BIO_free(BIO *a);
+#if OPENSSL_VERSION_NUMBER < 0x10100000L
BIO *q_BIO_new(BIO_METHOD *a);
+#else
+BIO *q_BIO_new(const BIO_METHOD *a);
+#endif
BIO *q_BIO_new_mem_buf(void *a, int b);
int q_BIO_read(BIO *a, void *b, int c);
+#if OPENSSL_VERSION_NUMBER < 0x10100000L
BIO_METHOD *q_BIO_s_mem();
+#else
+const BIO_METHOD *q_BIO_s_mem();
+#endif
int q_BIO_write(BIO *a, const void *b, int c);
int q_BN_num_bits(const BIGNUM *a);
+#if OPENSSL_VERSION_NUMBER < 0x10100000L
int q_CRYPTO_num_locks();
void q_CRYPTO_set_locking_callback(void (*a)(int, int, const char *, int));
void q_CRYPTO_set_id_callback(unsigned long (*a)());
void q_CRYPTO_free(void *a);
+#else
+#define q_CRYPTO_num_locks() 1
+#define q_CRYPTO_set_locking_callback(a)
+#define q_CRYPTO_set_id_callback(a)
+void q_CRYPTO_free(void *a, const char *b, int c);
+#endif
void q_DSA_free(DSA *a);
#if OPENSSL_VERSION_NUMBER >= 0x00908000L
// 0.9.8 broke SC and BC by changing this function's signature.
@@ -258,6 +273,7 @@
void q_RAND_seed(const void *a, int b);
int q_RAND_status();
void q_RSA_free(RSA *a);
+#if OPENSSL_VERSION_NUMBER < 0x10100000L
int q_sk_num(STACK *a);
void q_sk_pop_free(STACK *a, void (*b)(void *));
#if OPENSSL_VERSION_NUMBER >= 0x10000000L
@@ -267,6 +283,16 @@
void q_sk_free(STACK *a);
char * q_sk_value(STACK *a, int b);
#endif
+#else
+int q_OPENSSL_sk_num(STACK *a);
+void q_OPENSSL_sk_pop_free(STACK *a, void (*b)(void *));
+void q_OPENSSL_sk_free(_STACK *a);
+void * q_OPENSSL_sk_value(STACK *a, int b);
+#define q_sk_num q_OPENSSL_sk_num
+#define q_sk_pop_free q_OPENSSL_sk_pop_free
+#define q_sk_free q_OPENSSL_sk_free
+#define q_sk_value q_OPENSSL_sk_value
+#endif
int q_SSL_accept(SSL *a);
int q_SSL_clear(SSL *a);
char *q_SSL_CIPHER_description(SSL_CIPHER *a, char *b, int c);
@@ -314,8 +340,14 @@
#else
long q_SSL_get_verify_result(SSL *a);
#endif
+#if OPENSSL_VERSION_NUMBER < 0x10100000L
int q_SSL_library_init();
void q_SSL_load_error_strings();
+#else
+int q_OPENSSL_init_ssl(uint64_t opts, const OPENSSL_INIT_SETTINGS *settings);
+#define q_SSL_library_init() q_OPENSSL_init_ssl(0, (const OPENSSL_INIT_SETTINGS *) NULL)
+#define q_SSL_load_error_strings() q_OPENSSL_init_ssl(OPENSSL_INIT_LOAD_SSL_STRINGS | OPENSSL_INIT_LOAD_CRYPTO_STRINGS, (const OPENSSL_INIT_SETTINGS *) NULL)
+#endif
SSL *q_SSL_new(SSL_CTX *a);
#if OPENSSL_VERSION_NUMBER >= 0x0090806fL && !defined(OPENSSL_NO_TLSEXT)
long q_SSL_ctrl(SSL *ssl,int cmd, long larg, void *parg);
@@ -328,11 +360,21 @@
#if OPENSSL_VERSION_NUMBER >= 0x10000000L
const SSL_METHOD *q_SSLv2_client_method();
const SSL_METHOD *q_SSLv3_client_method();
+#if OPENSSL_VERSION_NUMBER < 0x10100000L
const SSL_METHOD *q_SSLv23_client_method();
+#else
+const SSL_METHOD *q_TLS_client_method();
+#define q_SSLv23_client_method q_TLS_client_method
+#endif
const SSL_METHOD *q_TLSv1_client_method();
const SSL_METHOD *q_SSLv2_server_method();
const SSL_METHOD *q_SSLv3_server_method();
+#if OPENSSL_VERSION_NUMBER < 0x10100000L
const SSL_METHOD *q_SSLv23_server_method();
+#else
+const SSL_METHOD *q_TLS_server_method();
+#define q_SSLv23_server_method q_TLS_server_method
+#endif
const SSL_METHOD *q_TLSv1_server_method();
#else
SSL_METHOD *q_SSLv2_client_method();
@@ -377,7 +419,12 @@
int q_X509_STORE_CTX_get_error(X509_STORE_CTX *ctx);
int q_X509_STORE_CTX_get_error_depth(X509_STORE_CTX *ctx);
X509 *q_X509_STORE_CTX_get_current_cert(X509_STORE_CTX *ctx);
+#if OPENSSL_VERSION_NUMBER < 0x10100000L
STACK_OF(X509) *q_X509_STORE_CTX_get_chain(X509_STORE_CTX *ctx);
+#else
+STACK_OF(X509) *q_X509_STORE_CTX_get0_chain(X509_STORE_CTX *ctx);
+#define q_X509_STORE_CTX_get_chain q_X509_STORE_CTX_get0_chain
+#endif
#define q_BIO_get_mem_data(b, pp) (int)q_BIO_ctrl(b,BIO_CTRL_INFO,0,(char *)pp)
#define q_BIO_pending(b) (int)q_BIO_ctrl(b,BIO_CTRL_PENDING,0,NULL)
@@ -399,7 +446,25 @@
PEM_ASN1_write_bio((int (*)(void*, unsigned char**))q_i2d_DSAPrivateKey,PEM_STRING_DSA,\
bp,(char *)x,enc,kstr,klen,cb,u)
#endif
+
+X509_STORE * q_SSL_CTX_get_cert_store(const SSL_CTX *ctx);
+ASN1_INTEGER * q_X509_get_serialNumber(X509 *x);
+
+#if OPENSSL_VERSION_NUMBER < 0x10100000L
#define q_SSL_CTX_set_options(ctx,op) q_SSL_CTX_ctrl((ctx),SSL_CTRL_OPTIONS,(op),NULL)
+#define q_X509_get_version(x) X509_get_version(x)
+#else
+int q_EVP_PKEY_id(const EVP_PKEY *pkey);
+int q_EVP_PKEY_base_id(const EVP_PKEY *pkey);
+int q_SSL_CIPHER_get_bits(const SSL_CIPHER *cipher, int *alg_bits);
+long q_SSL_CTX_set_options(SSL_CTX *ctx, long options);
+long q_X509_get_version(X509 *x);
+X509_PUBKEY * q_X509_get_X509_PUBKEY(X509 *x);
+int q_RSA_bits(const RSA *rsa);
+int q_DSA_security_bits(const DSA *dsa);
+void q_DSA_get0_pqg(const DSA *d, const BIGNUM **p, const BIGNUM **q, const BIGNUM **g);
+#endif
+
#define q_SKM_sk_num(type, st) ((int (*)(const STACK_OF(type) *))q_sk_num)(st)
#define q_SKM_sk_value(type, st,i) ((type * (*)(const STACK_OF(type) *, int))q_sk_value)(st, i)
#define q_sk_GENERAL_NAME_num(st) q_SKM_sk_num(GENERAL_NAME, (st))
@@ -410,8 +475,17 @@
#define q_sk_SSL_CIPHER_value(st, i) q_SKM_sk_value(SSL_CIPHER, (st), (i))
#define q_SSL_CTX_add_extra_chain_cert(ctx,x509) \
q_SSL_CTX_ctrl(ctx,SSL_CTRL_EXTRA_CHAIN_CERT,0,(char *)x509)
+
+#if OPENSSL_VERSION_NUMBER < 0x10100000L
#define q_X509_get_notAfter(x) X509_get_notAfter(x)
#define q_X509_get_notBefore(x) X509_get_notBefore(x)
+#else
+ASN1_TIME *q_X509_getm_notAfter(X509 *x);
+ASN1_TIME *q_X509_getm_notBefore(X509 *x);
+#define q_X509_get_notAfter(x) q_X509_getm_notAfter(x)
+#define q_X509_get_notBefore(x) q_X509_getm_notBefore(x)
+#endif
+
#define q_EVP_PKEY_assign_RSA(pkey,rsa) q_EVP_PKEY_assign((pkey),EVP_PKEY_RSA,\
(char *)(rsa))
#define q_EVP_PKEY_assign_DSA(pkey,dsa) q_EVP_PKEY_assign((pkey),EVP_PKEY_DSA,\
@@ -421,10 +495,21 @@
#else
#define q_OpenSSL_add_all_algorithms() q_OPENSSL_add_all_algorithms_noconf()
#endif
+#if OPENSSL_VERSION_NUMBER < 0x10100000L
void q_OPENSSL_add_all_algorithms_noconf();
void q_OPENSSL_add_all_algorithms_conf();
+#else
+int q_OPENSSL_init_crypto(uint64_t opts, const OPENSSL_INIT_SETTINGS *settings);
+#define q_OPENSSL_add_all_algorithms_conf() q_OPENSSL_init_crypto(OPENSSL_INIT_ADD_ALL_CIPHERS | OPENSSL_INIT_ADD_ALL_DIGESTS | OPENSSL_INIT_LOAD_CONFIG, (const OPENSSL_INIT_SETTINGS *) NULL)
+# define q_OPENSSL_add_all_algorithms_noconf() q_OPENSSL_init_crypto(OPENSSL_INIT_ADD_ALL_CIPHERS | OPENSSL_INIT_ADD_ALL_DIGESTS, (const OPENSSL_INIT_SETTINGS *) NULL)
+#endif
int q_SSL_CTX_load_verify_locations(SSL_CTX *ctx, const char *CAfile, const char *CApath);
+#if OPENSSL_VERSION_NUMBER < 0x10100000L
long q_SSLeay();
+#else
+unsigned long q_OpenSSL_version_num();
+#define q_SSLeay q_OpenSSL_version_num
+#endif
// Helper function
class QDateTime;

View File

@ -0,0 +1,12 @@
diff -up qt-everywhere-opensource-src-4.8.7/qmake/Makefile.unix.qmake_LFLAGS qt-everywhere-opensource-src-4.8.7/qmake/Makefile.unix
--- qt-everywhere-opensource-src-4.8.7/qmake/Makefile.unix.qmake_LFLAGS 2015-05-07 09:14:42.000000000 -0500
+++ qt-everywhere-opensource-src-4.8.7/qmake/Makefile.unix 2018-02-15 08:25:13.168838577 -0600
@@ -3,7 +3,7 @@ BUILD_PATH = @BUILD_PATH@
QTOBJS = @QMAKE_QTOBJS@
QTSRCS = @QMAKE_QTSRCS@
QMAKESPEC = @QMAKESPEC@
-LFLAGS = @QMAKE_LFLAGS@
+LFLAGS = @QMAKE_LFLAGS@ $(QMAKE_LFLAGS_RELEASE)
#qmake code
OBJS=project.o property.o main.o makefile.o unixmake2.o unixmake.o \

View File

@ -1,77 +0,0 @@
--- src/kernel/qfontdatabase_x11.cpp
+++ src/kernel/qfontdatabase_x11.cpp
@@ -1589,15 +1589,6 @@ QFontEngine *loadEngine( QFont::Script s
if (script == QFont::Latin)
// add Euro character
FcCharSetAddChar(cs, 0x20ac);
- if (script == QFont::Han_SimplifiedChinese)
- FcCharSetAddChar(cs, 0x3400);
- if (script == QFont::Han_TraditionalChinese){
- FcCharSetAddChar(cs, 0x3435);
- FcCharSetAddChar(cs, 0xE000);
- FcCharSetAddChar(cs, 0xF6B1);
- }
- if (script == QFont::MiscellaneousSymbols)
- FcCharSetAddChar(cs, 0x2714);
FcPatternAddCharSet(pattern, FC_CHARSET, cs);
FcCharSetDestroy(cs);
}
@@ -1813,7 +1804,11 @@ static QFontEngine *loadFontConfigFont(c
FcPatternPrint(pattern);
#endif
+ // XftFontMatch calls the right ConfigSubstitute variants, but as we use
+ // FcFontMatch/Sort here we have to do it manually.
FcConfigSubstitute(0, pattern, FcMatchPattern);
+ XftDefaultSubstitute(QPaintDevice::x11AppDisplay(), QPaintDevice::x11AppScreen(), pattern);
+
// qDebug("1: pattern contains:");
// FcPatternPrint(pattern);
@@ -1847,10 +1842,6 @@ static QFontEngine *loadFontConfigFont(c
value.u.s = (const FcChar8 *)cs.data();
FcPatternAddWeak(pattern, FC_FAMILY, value, FcTrue);
}
-#ifdef FONT_MATCH_DEBUG
- printf("final pattern contains:\n");
- FcPatternPrint(pattern);
-#endif
}
if (script != QFont::Unicode) {
@@ -1860,19 +1851,15 @@ static QFontEngine *loadFontConfigFont(c
if (script == QFont::Latin)
// add Euro character
FcCharSetAddChar(cs, 0x20ac);
- if (script == QFont::Han_SimplifiedChinese)
- FcCharSetAddChar(cs, 0x3400);
- if (script == QFont::Han_TraditionalChinese) {
- FcCharSetAddChar(cs, 0x3435);
- FcCharSetAddChar(cs, 0xE000);
- FcCharSetAddChar(cs, 0xF6B1);
- }
- if (script == QFont::MiscellaneousSymbols)
- FcCharSetAddChar(cs, 0x2714);
FcPatternAddCharSet(pattern, FC_CHARSET, cs);
FcCharSetDestroy(cs);
}
+#ifdef FONT_MATCH_DEBUG
+ printf("final pattern contains:\n");
+ FcPatternPrint(pattern);
+#endif
+
QFontEngine *fe = 0;
for( int jj = (FcGetVersion() >= 20392 ? 0 : 1); jj < 2; ++jj ) {
--- src/kernel/qfontdatabase.cpp
+++ src/kernel/qfontdatabase.cpp
@@ -554,7 +554,7 @@ static const unsigned short sample_chars
// GeometricSymbols,
{ 0x2500, 0x0 },
// MiscellaneousSymbols,
- { 0x2640, 0x0 },
+ { 0x2640, 0x2714, 0x0 },
// EnclosedAndSquare,
{ 0x2460, 0x0 },
// Braille,

View File

@ -0,0 +1,17 @@
--- src/gui/kernel/qguiplatformplugin.cpp.adwaita 2015-02-12 14:32:45.217935391 +0100
+++ src/gui/kernel/qguiplatformplugin.cpp 2015-02-12 14:46:11.471866038 +0100
@@ -165,8 +165,13 @@ QString QGuiPlatformPlugin::styleName()
case DE_GNOME: {
QStringList availableStyles = QStyleFactory::keys();
// Set QGtkStyle for GNOME if available
+ QString adwaitaStyleKey = QString::fromLatin1("adwaita");
QString gtkStyleKey = QString::fromLatin1("GTK+");
- if (availableStyles.contains(gtkStyleKey)) {
+ if (availableStyles.contains(adwaitaStyleKey)) {
+ stylename = adwaitaStyleKey;
+ break;
+ }
+ else if (availableStyles.contains(gtkStyleKey)) {
stylename = gtkStyleKey;
break;
}

View File

@ -1,12 +0,0 @@
--- qt-x11-free-3.3.2/tools/designer/uic/main.cpp.sopwith 2004-06-16 17:14:17.000000000 -0400
+++ qt-x11-free-3.3.2/tools/designer/uic/main.cpp 2004-06-16 17:21:43.000000000 -0400
@@ -149,6 +149,9 @@
} else {
trmacro = &opt[1];
}
+ } else if ( opt == "nostdlib") {
+ QStringList x;
+ QApplication::setLibraryPaths(x);
} else if ( opt == "L" ) {
if ( !(n < argc-1) ) {
error = "Missing plugin path.";

View File

@ -1,14 +0,0 @@
--- qt-x11-free-3.3.2/src/kernel/qpixmap_x11.cpp.orig 2004-05-10 13:54:03.592289052 +0200
+++ qt-x11-free-3.3.2/src/kernel/qpixmap_x11.cpp 2004-05-10 13:56:10.165560473 +0200
@@ -288,8 +288,9 @@
{
#if defined(QT_CHECK_STATE)
if ( qApp->type() == QApplication::Tty ) {
- qWarning( "QPixmap: Cannot create a QPixmap when no GUI "
- "is being used" );
+// qWarning( "QPixmap: Cannot create a QPixmap when no GUI "
+// "is being used" );
+ ;
}
#endif

View File

@ -1,30 +0,0 @@
--- qt-x11-free-3.3.3/src/opengl/qgl_x11.cpp.orig 2004-08-18 14:55:20.629068213 +0200
+++ qt-x11-free-3.3.3/src/opengl/qgl_x11.cpp 2004-08-18 15:00:43.090260739 +0200
@@ -125,7 +125,7 @@
if (gl_syms_resolved)
return TRUE;
- QLibrary gl("GL");
+ QLibrary gl("GL.so.1");
gl.setAutoUnload(FALSE);
qt_glCallLists = (_glCallLists) gl.resolve("glCallLists");
@@ -283,7 +283,7 @@
typedef Status (*_XmuLookupStandardColormap)( Display *dpy, int screen, VisualID visualid, unsigned int depth,
Atom property, Bool replace, Bool retain );
_XmuLookupStandardColormap qt_XmuLookupStandardColormap;
- qt_XmuLookupStandardColormap = (_XmuLookupStandardColormap) QLibrary::resolve("Xmu", "XmuLookupStandardColormap");
+ qt_XmuLookupStandardColormap = (_XmuLookupStandardColormap) QLibrary::resolve("Xmu.so.6", "XmuLookupStandardColormap");
if (!qt_XmuLookupStandardColormap)
qFatal("Unable to resolve Xmu symbols - please check your Xmu library installation.");
#define XmuLookupStandardColormap qt_XmuLookupStandardColormap
--- qt-x11-free-3.3.3/src/tools/qlibrary.cpp.orig 2004-08-18 14:56:00.322185890 +0200
+++ qt-x11-free-3.3.3/src/tools/qlibrary.cpp 2004-08-18 14:57:51.939637946 +0200
@@ -425,6 +425,7 @@
} else {
tmpfilename = QString( "lib%1" ).arg( filename );
}
+ if ( !filename.contains(".so") )
tmpfilename += filter;
if(QFile::exists(tmpfilename) || it == filters.end()) {
filename = tmpfilename;

View File

@ -1,20 +0,0 @@
--- qt-x11-free-3.3.3/tools/tools.pro.qembed 2004-06-08 10:05:03.000000000 +0200
+++ qt-x11-free-3.3.3/tools/tools.pro 2004-08-11 15:47:35.393118498 +0200
@@ -5,6 +5,7 @@
SUBDIRS = assistant/lib \
designer \
assistant \
+ qembed \
linguist
unix:SUBDIRS += qtconfig
}
--- qt-x11-free-3.3.3/tools/qembed/qembed.pro.qembed 2004-06-08 10:08:40.000000000 +0200
+++ qt-x11-free-3.3.3/tools/qembed/qembed.pro 2004-08-11 15:51:12.008859486 +0200
@@ -2,3 +2,7 @@
SOURCES = qembed.cpp
TARGET = qembed
REQUIRES=full-config nocrosscompiler
+DESTDIR = ../../bin
+target.path=$$bins.path
+INSTALLS += target
+

View File

@ -1,11 +0,0 @@
--- qt-x11-free-3.3.3/src/kernel/qapplication_x11.cpp.orig 2004-11-09 18:57:15.012843629 +0100
+++ qt-x11-free-3.3.3/src/kernel/qapplication_x11.cpp 2004-11-09 19:02:31.351637807 +0100
@@ -1412,7 +1412,7 @@
False, XA_ATOM, &type, &format, &nitems, &after, &data);
if (type == XA_ATOM && format == 32) {
- ts.writeBlock((const char *) data, nitems * 4);
+ ts.writeBlock((const char *) data, nitems * sizeof(long));
offset += nitems;
} else
after = 0;

View File

@ -1,11 +0,0 @@
--- qt-x11-free-3.3.5/configure.gcc4-buildkey 2005-09-11 18:15:27.000000000 +0200
+++ qt-x11-free-3.3.5/configure 2005-09-11 18:18:53.000000000 +0200
@@ -3093,7 +3093,7 @@
COMPILER_VERSION="3.*"
;;
*4.*)
- COMPILER_VERSION="4"
+ COMPILER_VERSION="4.*"
;;
*)
;;

View File

@ -1,18 +0,0 @@
Index: tools/designer/uic/form.cpp
===================================================================
--- qt/tools/designer/uic/form.cpp (revision 460038)
+++ qt/tools/designer/uic/form.cpp (working copy)
@@ -731,6 +731,13 @@
while ( !n2.isNull() ) {
if ( n2.tagName() == "includehint" ) {
QString file = n2.firstChild().toText().data();
+ int colons = file.find("::");
+
+ if (colons != -1)
+ {
+ file = file.right(file.length() - colons - 2);
+ }
+
localIncludes += file;
}
n2 = n2.nextSibling().toElement();

View File

@ -1,55 +0,0 @@
--- qt-x11-free-3.3.6/src/kernel/qapplication_x11.cpp.orig 2006-06-20 15:45:44.000000000 +0200
+++ qt-x11-free-3.3.6/src/kernel/qapplication_x11.cpp 2006-06-20 15:51:13.000000000 +0200
@@ -3294,11 +3294,7 @@
// filtering opportunity first to ensure all input methods work
// properly regardless of application design.
-#ifndef QT_NO_IM_EXTENSIONS
if( keywidget && keywidget->isEnabled() && keywidget->isInputMethodEnabled() ) {
-#else
- if( keywidget && keywidget->isEnabled() ) {
-#endif
if( ( event->type==XKeyPress || event->type==XKeyRelease ) &&
sm_blockUserInput ) // block user interaction during session management
return TRUE;
@@ -5220,11 +5216,12 @@
} else {
key = (int)(long)keyDict->find( keycode );
if ( key )
- if( !willRepeat ) // Take out key of dictionary only if this call.
+ if( !willRepeat && statefulTranslation ) // Take out key of dictionary only if this call.
keyDict->take( keycode );
long s = (long)textDict->find( keycode );
if ( s ) {
- textDict->take( keycode );
+ if( statefulTranslation )
+ textDict->take( keycode );
ascii = (char)(s-256);
}
}
--- qt-x11-free-3.3.6/src/kernel/qwidget_x11.cpp.orig 2006-06-20 15:46:49.000000000 +0200
+++ qt-x11-free-3.3.6/src/kernel/qwidget_x11.cpp 2006-06-20 15:48:14.000000000 +0200
@@ -2699,11 +2699,10 @@
{
QInputContext *qic = 0;
-#if !defined(QT_NO_IM_EXTENSIONS)
if ( isInputMethodEnabled() ) {
+#if !defined(QT_NO_IM_EXTENSIONS)
qic = icHolderWidget()->ic;
#else
- {
// icHolderWidget is always topLevelWidget
QTLWExtra *topdata = icHolderWidget()->topData();
qic = (QInputContext *)topdata->xic;
@@ -2754,10 +2753,8 @@
*/
void QWidget::createInputContext()
{
-#if !defined(QT_NO_IM_EXTENSIONS)
if( !isInputMethodEnabled() || QApplication::closingDown() )
return;
-#endif
QWidget *icWidget = icHolderWidget();
#ifndef QT_NO_IM

View File

@ -1,11 +0,0 @@
--- qt-x11-free-3.3.6/src/kernel/qfontdatabase_x11.cpp.fonts 2004-08-05 16:42:06.000000000 +0200
+++ qt-x11-free-3.3.6/src/kernel/qfontdatabase_x11.cpp 2004-09-28 16:11:54.955374161 +0200
@@ -975,7 +981,7 @@
};
const XftDefaultFont defaults[] = {
{ "Serif", "serif", FALSE },
- { "Sans Serif", "sans-serif", FALSE },
+ { "Sans", "sans-serif", FALSE },
{ "Monospace", "monospace", TRUE },
{ 0, 0, FALSE }
};

View File

@ -1,92 +0,0 @@
--- qt-x11-free-3.3.6/src/widgets/qtextedit.cpp.preedit 2006-06-28 17:18:08.000000000 +0200
+++ qt-x11-free-3.3.6/src/widgets/qtextedit.cpp 2006-06-28 17:20:09.000000000 +0200
@@ -1906,9 +1906,6 @@
void QTextEdit::removeSelectedText( int selNum )
{
- if(selNum != 0)
- resetInputContext();
-
QTextCursor c1 = doc->selectionStartCursor( selNum );
c1.restoreState();
QTextCursor c2 = doc->selectionEndCursor( selNum );
@@ -3171,7 +3168,6 @@
return;
}
#endif
- resetInputContext();
QTextParagraph *p = doc->paragAt( para );
if ( !p )
return;
@@ -3198,7 +3194,6 @@
return;
}
#endif
- resetInputContext();
for ( int i = 0; i < (int)doc->numSelections(); ++i )
doc->removeSelection( i );
@@ -3240,7 +3235,6 @@
if ( d->optimMode )
return;
#endif
- resetInputContext();
QTextParagraph *p = doc->paragAt( para );
if ( !p )
return;
@@ -3285,7 +3279,6 @@
if ( isReadOnly() || !doc->commands()->isUndoAvailable() || !undoEnabled )
return;
- resetInputContext();
for ( int i = 0; i < (int)doc->numSelections(); ++i )
doc->removeSelection( i );
@@ -3336,7 +3329,6 @@
if ( isReadOnly() || !doc->commands()->isRedoAvailable() || !undoEnabled )
return;
- resetInputContext();
for ( int i = 0; i < (int)doc->numSelections(); ++i )
doc->removeSelection( i );
@@ -3450,7 +3442,6 @@
{
if ( isReadOnly() )
return;
- resetInputContext();
normalCopy();
removeSelectedText();
updateMicroFocusHint();
@@ -3938,7 +3929,6 @@
return;
}
#endif
- resetInputContext();
if ( !isModified() && isReadOnly() &&
this->context() == context && this->text() == text )
return;
@@ -4112,7 +4102,6 @@
if ( !p )
return;
- resetInputContext();
if ( index > p->length() - 1 )
index = p->length() - 1;
@@ -4169,7 +4158,6 @@
return;
}
#endif
- resetInputContext();
if ( doc->hasSelection( selNum ) ) {
doc->removeSelection( selNum );
repaintChanged();
@@ -5072,7 +5060,6 @@
{
if ( dc == doc )
return;
- resetInputContext();
doc = dc;
delete cursor;
cursor = new QTextCursor( doc );

View File

@ -1,36 +0,0 @@
--- qt-x11-free-3.3.6/mkspecs/linux-g++/qmake.conf.orig 2006-06-21 15:37:53.000000000 +0200
+++ qt-x11-free-3.3.6/mkspecs/linux-g++/qmake.conf 2006-06-21 15:38:02.000000000 +0200
@@ -84,7 +84,7 @@
QMAKE_MOVE = mv -f
QMAKE_DEL_FILE = rm -f
QMAKE_DEL_DIR = rmdir
-QMAKE_STRIP = strip
-QMAKE_STRIPFLAGS_LIB += --strip-unneeded
+QMAKE_STRIP =
+QMAKE_STRIPFLAGS_LIB +=
QMAKE_CHK_DIR_EXISTS = test -d
QMAKE_MKDIR = mkdir -p
--- qt-x11-free-3.3.6/mkspecs/linux-g++-32/qmake.conf.orig 2006-06-21 15:37:09.000000000 +0200
+++ qt-x11-free-3.3.6/mkspecs/linux-g++-32/qmake.conf 2006-06-21 15:37:19.000000000 +0200
@@ -84,7 +84,7 @@
QMAKE_MOVE = mv -f
QMAKE_DEL_FILE = rm -f
QMAKE_DEL_DIR = rmdir
-QMAKE_STRIP = strip
-QMAKE_STRIPFLAGS_LIB += --strip-unneeded
+QMAKE_STRIP =
+QMAKE_STRIPFLAGS_LIB +=
QMAKE_CHK_DIR_EXISTS = test -d
QMAKE_MKDIR = mkdir -p
--- qt-x11-free-3.3.6/mkspecs/linux-g++-64/qmake.conf.orig 2006-06-21 15:36:23.000000000 +0200
+++ qt-x11-free-3.3.6/mkspecs/linux-g++-64/qmake.conf 2006-06-21 15:36:56.000000000 +0200
@@ -87,7 +87,7 @@
QMAKE_MOVE = mv -f
QMAKE_DEL_FILE = rm -f
QMAKE_DEL_DIR = rmdir
-QMAKE_STRIP = strip
-QMAKE_STRIPFLAGS_LIB += --strip-unneeded
+QMAKE_STRIP =
+QMAKE_STRIPFLAGS_LIB +=
QMAKE_CHK_DIR_EXISTS = test -d
QMAKE_MKDIR = mkdir -p

View File

@ -1,14 +0,0 @@
--- qt-x11-free-3.3.7/src/tools/qsettings.cpp.tn 2006-11-09 20:53:25.000000000 +0100
+++ qt-x11-free-3.3.7/src/tools/qsettings.cpp 2006-11-09 20:59:53.000000000 +0100
@@ -994,7 +994,10 @@
#endif
QFile file( filename + ".tmp" );
- if (! file.open(IO_WriteOnly)) {
+ mode_t old_umask = umask(0022);
+ bool f = file.open(IO_WriteOnly);
+ umask(old_umask);
+ if (! f) {
#ifdef QT_CHECK_STATE
qWarning("QSettings::sync: failed to open '%s' for writing",

View File

@ -1,70 +0,0 @@
diff -Nur qt-x11-free-3.3.8/src/sql/drivers/mysql/qsql_mysql.cpp qt-x11-free-3.3.8-me/src/sql/drivers/mysql/qsql_mysql.cpp
--- qt-x11-free-3.3.8/src/sql/drivers/mysql/qsql_mysql.cpp 2007-01-11 14:38:34.000000000 +0100
+++ qt-x11-free-3.3.8-snapshot-me/src/sql/drivers/mysql/qsql_mysql.cpp 2007-05-22 17:15:26.000000000 +0200
@@ -37,7 +37,6 @@
#include "qsql_mysql.h"
#include <private/qsqlextension_p.h>
-#include <qapplication.h>
#include <qdatetime.h>
#include <qvaluevector.h>
#include <qsqlrecord.h>
@@ -52,6 +51,9 @@
QPtrDict<QSqlOpenExtension> *qSqlOpenExtDict();
+static int qMySqlConnectionCount = 0;
+static bool qMySqlInitHandledByUser = FALSE;
+
class QMYSQLOpenExtension : public QSqlOpenExtension
{
public:
@@ -354,9 +356,8 @@
{
#ifndef Q_NO_MYSQL_EMBEDDED
# if MYSQL_VERSION_ID >= 40000
- static bool init = FALSE;
- if ( init )
- return;
+ if ( qMySqlInitHandledByUser || qMySqlConnectionCount > 1 )
+ return;
// this should only be called once
// has no effect on client/server library
@@ -366,8 +367,6 @@
qWarning( "QMYSQLDriver::qServerInit: unable to start server." );
# endif
}
- qAddPostRoutine(qServerEnd);
- init = TRUE;
# endif // MYSQL_VERSION_ID
#endif // Q_NO_MYSQL_EMBEDDED
@@ -392,8 +391,10 @@
d->mysql = (MYSQL *) con;
setOpen( TRUE );
setOpenError( FALSE );
+ if (qMySqlConnectionCount == 1)
+ qMySqlInitHandledByUser = TRUE;
} else {
- qServerInit();
+ qServerInit();
}
}
@@ -402,10 +403,15 @@
qSqlOpenExtDict()->insert( this, new QMYSQLOpenExtension(this) );
d = new QMYSQLDriverPrivate();
d->mysql = 0;
+ qMySqlConnectionCount++;
}
QMYSQLDriver::~QMYSQLDriver()
{
+ qMySqlConnectionCount--;
+ if (qMySqlConnectionCount == 0 && !qMySqlInitHandledByUser)
+ qServerEnd();
+
delete d;
if ( !qSqlOpenExtDict()->isEmpty() ) {
QSqlOpenExtension *ext = qSqlOpenExtDict()->take( this );

View File

@ -1,40 +0,0 @@
--- qt-x11-free-3.3.8/src/widgets/qtextedit.cpp.im 2007-03-19 10:19:10.000000000 +0100
+++ qt-x11-free-3.3.8/src/widgets/qtextedit.cpp 2007-03-19 10:19:47.000000000 +0100
@@ -5059,6 +5059,10 @@
void QTextEdit::setDocument( QTextDocument *dc )
{
+ if ( dc == 0 ) {
+ qWarning( "Q3TextEdit::setDocument() called with null Q3TextDocument pointer" );
+ return;
+ }
if ( dc == doc )
return;
resetInputContext();
--- qt-x11-free-3.3.8/src/widgets/qlineedit.cpp.im 2007-03-19 10:20:03.000000000 +0100
+++ qt-x11-free-3.3.8/src/widgets/qlineedit.cpp 2007-03-19 10:22:11.000000000 +0100
@@ -457,10 +457,10 @@
\property QLineEdit::text
\brief the line edit's text
- Setting this property clears the selection, clears the undo/redo
- history, moves the cursor to the end of the line and resets the
- \c modified property to FALSE. The text is not validated when
- inserted with setText().
+ Note that setting this property clears the selection, clears the
+ undo/redo history, moves the cursor to the end of the line and
+ resets the \c modified property to FALSE. The text is not
+ validated when inserted with setText().
The text is truncated to maxLength() length.
@@ -1014,6 +1014,9 @@
/*!
Selects text from position \a start and for \a length characters.
+ Note that this function sets the cursor's position to the end of
+ the selection regardless of its current position.
+
\sa deselect() selectAll() getSelection() cursorForward() cursorBackward()
*/

View File

@ -1,83 +0,0 @@
--- qt-x11-free-3.3.8/src/kernel/qwidget_x11.cpp 2007-02-02 15:01:13.000000000 +0100
+++ qt-x11-free-3.3.7/src/kernel/qwidget_x11.cpp 2006-10-19 16:25:16.000000000 +0200
@@ -1442,7 +1442,16 @@
QWidget *tlw = topLevelWidget();
if ( tlw->isVisible() && !tlw->topData()->embedded && !qt_deferred_map_contains(tlw) ) {
XSetInputFocus( x11Display(), tlw->winId(), RevertToNone, qt_x_time);
- focusInputContext();
+
+#ifndef QT_NO_XIM
+ // trigger input context creation if it hasn't happened already
+ createInputContext();
+
+ if (tlw->topData()->xic) {
+ QInputContext *qic = (QInputContext *) tlw->topData()->xic;
+ qic->setFocus();
+ }
+#endif
}
}
@@ -2717,16 +2726,14 @@
{
#ifndef QT_NO_XIM
QWidget *tlw = topLevelWidget();
- if (!tlw->isPopup() || isInputMethodEnabled()) {
- QTLWExtra *topdata = tlw->topData();
+ QTLWExtra *topdata = tlw->topData();
- // trigger input context creation if it hasn't happened already
- createInputContext();
+ // trigger input context creation if it hasn't happened already
+ createInputContext();
- if (topdata->xic) {
- QInputContext *qic = (QInputContext *) topdata->xic;
- qic->setFocus();
- }
+ if (topdata->xic) {
+ QInputContext *qic = (QInputContext *) topdata->xic;
+ qic->setFocus();
}
#endif // QT_NO_XIM
}
--- qt-x11-free-3.3.8/src/widgets/qtextedit.cpp 2007-02-02 15:01:23.000000000 +0100
+++ qt-x11-free-3.3.7/src/widgets/qtextedit.cpp 2006-10-19 16:25:34.000000000 +0200
@@ -4972,10 +4972,6 @@
void QTextEdit::setDocument( QTextDocument *dc )
{
- if ( dc == 0 ) {
- qWarning( "Q3TextEdit::setDocument() called with null Q3TextDocument pointer" );
- return;
- }
if ( dc == doc )
return;
resetInputContext();
--- qt-x11-free-3.3.8/src/widgets/qlineedit.cpp 2007-02-02 15:01:24.000000000 +0100
+++ qt-x11-free-3.3.7/src/widgets/qlineedit.cpp 2006-10-19 16:25:36.000000000 +0200
@@ -446,10 +446,10 @@
\property QLineEdit::text
\brief the line edit's text
- Note that setting this property clears the selection, clears the
- undo/redo history, moves the cursor to the end of the line and
- resets the \c modified property to FALSE. The text is not
- validated when inserted with setText().
+ Setting this property clears the selection, clears the undo/redo
+ history, moves the cursor to the end of the line and resets the
+ \c modified property to FALSE. The text is not validated when
+ inserted with setText().
The text is truncated to maxLength() length.
@@ -1002,9 +1002,6 @@
/*!
Selects text from position \a start and for \a length characters.
- Note that this function sets the cursor's position to the end of
- the selection regardless of its current position.
-
\sa deselect() selectAll() getSelection() cursorForward() cursorBackward()
*/

Some files were not shown because too many files have changed in this diff Show More