1Qt 5.9.2 is a bug-fix release. It maintains both forward and backward
2compatibility (source and binary) with Qt 5.9.0.
3
4For more details, refer to the online documentation included in this
5distribution. The documentation is also available online:
6
7http://doc.qt.io/qt-5/index.html
8
9The Qt version 5.9 series is binary compatible with the 5.8.x series.
10Applications compiled for 5.8 will continue to run with 5.9.
11
12Some of the changes listed in this file include issue tracking numbers
13corresponding to tasks in the Qt Bug Tracker:
14
15https://bugreports.qt.io/
16
17Each of these identifiers can be entered in the bug tracker to obtain more
18information about a particular change.
19
20****************************************************************************
21*                        Important Behavior Changes                        *
22****************************************************************************
23
24 - Building examples inside the Qt source tree while not building Qt itself
25   is rejected now, because this can cause hard to debug configuration
26   issues. If building isolated examples is needed, you may still use shadow
27   builds.
28
29 - This version of Qt restores compatibility with pre-5.9.0 calculation of
30   QCryptographicHash algorithms that were labelled "Sha3_nnn": that is,
31   applications compiled with old versions of Qt will continue using the
32   Keccak algorithm.  Applications recompiled with this version will use
33   SHA-3, unless QT_SHA3_KECCAK_COMPAT is #define'd prior to #include
34   <QCryptographicHash>.
35
36****************************************************************************
37*                               General Notes                              *
38****************************************************************************
39
40Binary Compatibility Note
41-------------------------
42
43 - The variable QOperatingSystemVersion::AndroidOreo was added in this
44   release. Code that uses this variable will not run under Qt 5.9.1. If
45   backwards compatibility is desired, use instead
46   QOperatingSystemVersion(QOperatingSystemVersion::Android, 8)
47   [This is similar to QOperatingSystemVersion::MacOSHighSierra added in
48   5.9.1]
49
50 - This version of Qt changes the values assigned to enumerations
51   QCryptographicHash::Sha3_nnn. Applications compiled with this version and
52   using those enumerations will not work with Qt 5.9.0 and 5.9.1, unless
53   QT_SHA3_KECCAK_COMPAT is defined.
54
55Deprecation Notice
56------------------
57
58 - Starting with Qt 5.10, IPv6 support will be mandatory for all platforms.
59   Systems without proper IPv6 support, such as the getaddrinfo() function
60   or the proper socket address structures, will not be able to build
61   QtNetwork anymore.
62
63Third-Party Code
64----------------
65
66 - [QTBUG-31020] zlib was updated to version 1.2.11.
67 - libpng was updated to version 1.6.32
68
69****************************************************************************
70*                               Library                                    *
71****************************************************************************
72
73QtCore
74------
75
76 - [QTBUG-61350] Fixed the conversion from string to double of the strings
77   "0E+1" and "0E-1" (with capital E), which QString::toDouble(),
78   QByteArray::toDouble() and similar functions reported as invalid.
79
80 - QFile:
81   * [QTBUG-57023] Reverted an incorrect change from Qt 5.9.0 that forbade
82     the creation and access to Alternate Data Streams on NTFS on Windows.
83     This means that file names containing a colon (':') are allowed again,
84     but note that they are not regular files.
85
86 - QFileInfo:
87   * [QTBUG-62802] Relative symbolic links on Windows are now resolved to
88     their absolute path by symLinkTarget().
89
90 - QFileSystemWatcher:
91   * [QTBUG-62242] Fixed a crash on Windows if this class was instantiated
92     before QCoreApplication was created.
93   * [QTBUG-61792] Fixed an issue on Windows that would cause this class not
94     to monitor files properly if the directory containing the monitored
95     files was added to the list of watched paths after the files.
96
97 - QLocale:
98   * [QTBUG-53565] Fixed the conversion of QTime to string form and parsing
99     from string form to always treat the value as the decimal fraction of
100     the seconds component. That is, the string format ".z" produces/parses
101     ".2" for 200 milliseconds and ".002" for 2 milliseconds. Use of "z" or
102     "zzz" is discouraged outside decimal fractions to avoid surprises.
103   * [QTBUG-61949] Fixed bcp57Name() to return "en" for the QLocale::c()
104     locale. Previously, it returned "C", which is not a valid BCP47
105     language tag.
106
107 - QProcess:
108   * [QTBUG-61634] Added a workaround for a rare race-condition bug in
109     some C libraries that caused the child process started by QProcess to
110     hang after trying to launch a non-existent executable or change to a
111     non-existent directory.
112   * [QTBUG-62584] Fixed a race-condition bug that could cause
113     waitForXxx() functions to hang forever if a slot triggered by that
114     function futher started a nested event loop.
115
116 - QTimeZone:
117   * [QTBUG-63205] Fixed a bug that would cause QTimeZone to mis-parse
118     timezone files on Unix systems if they contained leap second
119     information.
120
121 - QVariant:
122   * [QTBUG-61471] Fixed QVariant to actually perform the conversions
123     between QVariantHash and QVariantMap in the respective .toHash() and
124     .toMap() functions. QVariant already reported true in .canConvert()
125     between those two types.
126
127QtDBus
128------
129
130  - [QTBUG-62284] Fixed a race condition in QDBusAbstractInterface that
131    could cause the class to never see the notification that the remote
132    service became available and cause isValid() to change to true.
133
134QtGui
135-----
136
137 - Text:
138   * [QTBUG-61520] Fixed matching of non-regular font weights for
139     application fonts on macOS.
140
141QtNetwork
142---------
143
144 - [QTBUG-61692] Fixed the handling of application-wide proxy settings (set
145   with QNetworkProxy): previously, QTcpSocket would directly fall back to
146   the system settings if the object-specific setting was
147   QNetworkProxy::DefaultProxy.
148
149 - QLocalSocket:
150   * [QTBUG-61643] Fixed an issue with Qt pipe-handling code that could
151     cause deadlocks on Windows, most often if the QLocalSocket object tried
152     to wait for more data during application shutdown.
153
154QtTest
155------
156
157 - Added flowId to messages when logging in TeamCity format. FlowId is used
158   to distinguish logging from multiple processes running in parallel.
159
160QtWidgets
161---------
162
163 - Android:
164   * [QTBUG-48639] Fixed label duplication for buttons when using style
165     sheets with the Android style.
166
167 - QLineEdit:
168   * [QTBUG-60319] Fixed behavior of the ImSurroundingText query.
169     Previously, it returned a masked text whose length may be less than
170     the cursor position. Now it returns unmasked text, so the text length
171     is always greater than or equal to the cursor position.
172
173 - QMenu:
174   * [QTBUG-59794] Fixed menu size issue when using high DPI on
175     multi-screen system.
176
177****************************************************************************
178*                       Compiler-specific Changes                          *
179****************************************************************************
180
181clang
182-----
183
184 - [QTBUG-61840][QTBUG-62085] Fixed an issue that caused recent Clang
185   versions to print a warning about [[nodiscard].
186
187Visual Studio
188-------------
189
190 - [QTBUG-61902] Changed Qt uses of certain C++ Standard Library functions
191   that Visual Studio warns about. Now Qt public headers call
192   Microsoft-specific versions that do not produce warnings.
193
194****************************************************************************
195*                         Platform-specific Changes                        *
196****************************************************************************
197
198macOS
199-----
200
201 - [QTBUG-59222] Switching focus objects inside a top level window while
202   composing text using dead keys or input method events would leave the
203   application in an inconsistent state. The composition now automatically
204   cancels when the focus object changes.
205
206Windows
207-------
208
209 - [QTBUG-57916] Fixed build with ANGLE and newer MinGW versions.
210 - [QTBUG-62083] Fixed Qt trying to steal certain events from user windows if
211   the event ID was WM_USER.
212
213****************************************************************************
214*                                Tools                                     *
215****************************************************************************
216
217configure & build system
218------------------------
219
220 - [QTBUG-35928][QTBUG-41908][Apple] Qt can now be built using just the
221   Xcode Command Line Tools, without needing to install the full Xcode IDE.
222 - [QTBUG-55755][Windows] All Qt .exe files now include meta information,
223   like .dll files already did.
224 - [QTBUG-58012] (Re-)added a way to specify alternative ICU libraries.
225 - [QTBUG-62150] Fixed detection of ICU in static builds.
226 - [QTBUG-53537][X11] Added missing detection of Xinerama.
227 - [QTBUG-61731][X11] Fixed detection of AT-SPI, allowing accessibility
228   support to be built again.
229 - [X11] Fixed detection of x11-xcb with pkg-config.
230 - [CMake] All Qt module defines are now propagated to the config files.
231
232qmake
233-----
234
235 - [QTBUG-31034] Added qmake feature and configure option to use ccache.
236 - [QTBUG-48342] Fixed generation of extraneous slashes in -project mode.
237 - [QTBUG-55633] Fixed misparsing of some string literal concatenations
238   as C++11 raw strings. This affects dependency scanning.
239 - [QTBUG-59301][Xcode] Fixed duplicate references in project files.
240 - [QTBUG-59827][nmake] The 'clean' target now deletes backup files of
241   MSVC manifests.
242 - [QTBUG-60455][Android] libc++ is now used instead of libstdc++ when
243   building with the android-clang mkspec.
244 - [QTBUG-60430][iOS] Fixed handling of the deprecated variable
245   QMAKE_IOS_TARGETED_DEVICE_FAMILY.
246 - [QTBUG-60899][WinRT] Fixed capability handling for Win10 targets.
247 - [WinRT] Added support for new Win10 capabilities.
248 - [QTBUG-61335][MinGW] Worked around LTO+MRI linker issue when cross-
249   building from Linux.
250 - [QTBUG-61411][Windows] _UNICODE is now defined, consistently with VS.
251 - [QTBUG-61688][MSVC] Fixed compilation of precompiled headers with
252   CONFIG+=silent. Done by removing redundant progress messages.
253 - [QTBUG-61690][QTBUG-61735] Fixed detection of compiler default search
254   paths for various compilers and platforms.
255 - [QTBUG-63197][Windows] Fixed moc'ing in a build directory with spaces
256   when INCLUDEPATH contains 40+ entries.
257 - [Android] Fixed building with ndkr16+ by using unified headers.
258 - [Windows] Fixed repeated installation of read-only files.
259 - [VS] Fixed deployment rules in created solution files.
260