Skip to content

Commit

Permalink
Merge "Merge remote-tracking branch 'origin/5.7' into 5.8" into refs/…
Browse files Browse the repository at this point in the history
…staging/5.8
  • Loading branch information
liangqi authored and The Qt Project committed Nov 26, 2016
2 parents 011aeb1 + bce25a6 commit d34be32
Show file tree
Hide file tree
Showing 16 changed files with 313 additions and 67 deletions.
221 changes: 221 additions & 0 deletions dist/changes-5.7.1
Original file line number Diff line number Diff line change
@@ -0,0 +1,221 @@
Qt 5.7.1 is a bug-fix release. It maintains both forward and backward
compatibility (source and binary) with Qt 5.7.0.

For more details, refer to the online documentation included in this
distribution. The documentation is also available online:

http://doc.qt.io/qt-5/index.html

The Qt version 5.7 series is binary compatible with the 5.6.x series.
Applications compiled for 5.6 will continue to run with 5.7.

Some of the changes listed in this file include issue tracking numbers
corresponding to tasks in the Qt Bug Tracker:

https://bugreports.qt.io/

Each of these identifiers can be entered in the bug tracker to obtain more
information about a particular change.

This release contains all fixes included in the Qt 5.6.2 release.

****************************************************************************
* Important Behavior Changes *
****************************************************************************

- [QTBUG-45031] The NSURLConnection backend of QNetworkAccessManager has
been removed, since SecureTransport is the default SSL backend on iOS
and is enabled by default. This means that building with -no-openssl
-no-securetransport will no longer provide SSL capabilities on iOS.

- QtCore / QDataStream:
* [QTBUG-54022] Incomplete reads of Qt containers are now handled same
way as for primitive types, meaning that previous errors are latched.

****************************************************************************
* Library *
****************************************************************************

QtCore
------

- QLockFile:
* Fixed permissions on lock files on Unix to allow for adjustments via
umask.

- QMimeType:
* [QTBUG-50776] QMimeType::comment() now uses the default locale rather
than system locale, so that applications can control which language is
being used.

- QUrl:
* QUrl::resolved() no longer treats a URL with a scheme as a relative URL
if it matches this URL's scheme. For now it still treats "file:name.txt"
as relative for compatibility, but be warned that in Qt 5.8 it will no
longer consider those to be relative. Both isRelative() and RFC 3986 say
that such URLs are not relative, so starting from Qt 5.8, resolved() will
return them as is.

- QXmlStreamReader:
* Fixed a bug in the XML parser that prevented to load XML that
contained invalid characters for XML 1.0.

- QXmlStreamWriter:
* Fixed a bug that prevented the generation of valid XML files when
using encoding with 8 bit per character but not ASCII compatible.
QXMLStreamWriter generated XML markup using always ASCII in this case.

QtGui
-----

- QGuiApplication:
* [QTBUG-51703] Fixed a bug that would cause QGuiApplication::sync() to
be left undefined for Qt builds without session management support.

- QIconLoaderEngine:
* Fixed theme lookup for scalable entries

- QTextDocument:
* [QTBUG-48182] Fixed a bug that would return a wrong position when
searching backward from the end of the document.

- Text:
* [QTBUG-49452] Fixed a performance regression in Freetype engine that
was introduced in Qt 5.5.
* [QTBUG-53911] Fixed a crash that could happen if you were doing many
different text layouts with different fonts and superscript or
subscript alignment.
* [QTBUG-42033] Fixed bug where a QTextLayout with
ShowLineAndParagraphSeparators would modify the layout's input string.
* [QTBUG-54180] Fixed performance regression when rapidly switching
between a large set of fonts.

QtNetwork
---------

- QSslSocket:
* [QTBUG-55170] Fixed a bug in SecureTransport backend that would cause
a memory usage growth in case 'readBufferMaxSize' is set.
* [QTBUG-52975] Fixed a bug in SecureTransport backend where transmit
was using invalid SSL context and reporting (incorrectly) some irrelevant
errors as a result.

QtSql
-----

- [QTBUG-53969][QTBUG-53237] Fixed QSqlQuery::prepare value truncation
error when using UNSIGNED values in a MySQL database.

QtWidgets
---------

- QAbstractItemDelegate:
* [QTBUG-16469] Show localized detailed tooltips and "What's this?"
texts.

- QTreeView:
* [QTBUG-52793] Fixed a key navigation bug when the columns were
reordered.

****************************************************************************
* Platform-specific Changes *
****************************************************************************

Android
-------

- [QTBUG-50724] Added support for clang compiler
- [QTBUG-53511] Fixed CJK font resolution on Android 7.

FreeBSD
-------

- The freebsd-g++ mkspec was moved back and no longer requires the
"unsupported/" prefix, matching the FreeBSD ports tree, as FreeBSD 9.3
still defaults to using GCC. Users of GCC that did not previously use
the ports patch will need to adapt their build scripts and drop the
"unsupported/" prefix.

Linux
-----

- [QTBUG-54733] It is now possible to opt out from installing signal
handlers when running with eglfs and linuxfb by setting the
QT_QPA_NO_SIGNAL_HANDLER environment variable to a non-zero value.
- [QTBUG-55140] xcb with EGL and OpenGL ES, as well as eglfs with the
eglfs_x11 backend, are now supported on DRIVE CX boards when using the
linux-drive-cx-g++ device spec.


Windows
-------

- [QTBUG-41186] QWindow::fromWinId() may return 0 when passing invalid
window handles.
- [QTBUG-55595] Fixed crash when loading color fonts from data.
- [QTBUG-55097] Fixed rendering Adobe/Mozilla format color fonts with
other colors than black after Windows 10 Anniversary update.
- [QTBUG-54494] Fixed stretch when combined with either no or vertical
hinting preference or a device pixel ratio different from 1.
- [QTBUG-51024] Fixed height of text bounding box when using no or
vertical hinting preference, or when the device pixel ratio is
different from 1.

****************************************************************************
* Tools *
****************************************************************************

configure & build system
------------------------

- [QTBUG-35886][QTBUG-51417] Fixed Fontconfig vs. system FreeType
configuration.
- [QTBUG-43784][X11] Fixed detection of GLX with -qt-xcb.
- [QTBUG-51534][Windows] The configure.exe bootstrapping now prefers
cl over clang-cl, to avoid header incompatibility problems.
- [QTBUG-52940] Fixed missing plugins.qmltypes files in static builds.
- [QTBUG-52951] Fixed dynamic library support detection for platforms
without libdl.
- [QTBUG-53038] Fixed running of configure tests outside qtbase when
cross compiling on Windows (for example for Android).
- [QTBUG-53312] The flags supplied by the configure -D/-I/-L/-l options
are now applied after Qt's own flags. This helps in some cases when
the provided paths contain files which conflict with the Qt build.
- [QTBUG-53926] Fixed linkage of QML plugins in static prefix builds.
- [QTBUG-55011][Unix] Fixed -no-pkg-config being ignored by some
configure tests, which led to build failures later on.
- Fixed configure tests outside qtbase when $MAKEFLAGS contains the
-i flag.
- [Android] Some unused plugins are not built anymore.
- [MinGW] Added support for -separate-debug-info.
- [Unix] Added configure -no-opengles3 option.
- [Unix] Fixed MySQL detection/use on RHEL 6.6.

qmake
-----

- [QTBUG-41830] Fixed nested custom functions inheriting their callers'
arguments.
- [QTBUG-53895][MSVC] Started using separate PDB files for compiling
and linking.
- [QTBUG-54036][Darwin] Fixed installation of debug symbols.
- [QTBUG-54299] Various QMAKE_EXTRA_COMPILERS' .depends entries are now
appended to rather than overwritten.
- [QTBUG-54346][MSys/Apple] Fixed detection of QMAKE_DEFAULT_{INC,LIB}DIRS.
- [QTBUG-54550] Fixed access to freed memory in $$absolute_path().
- [QTBUG-54674] The obsolete -target xp is now properly rejected.
- [QTBUG-55183][nmake] _WINDLL is now automatically defined when building
a DLL, consistently with Visual Studio.
- [QTBUG-55505] Fixed build of projects with spaces in the source or build
path against static builds of Qt.
- [QTBUG-55649][QTBUG-55915][Xcode] Fixed support for Xcode 8.
- [QTBUG-56162][MinGW] Fixed -release -force-debug-info missing both
optimization and debug info.
- Fixed several cases where the error() function would not abort qmake.
- Interrupting a command run via system() will now abort qmake as well.
- The packagesExist() function will now warn when used when Qt was
configured with -no-pkg-config.
- [Android] The default compiler flags were adjusted to match newer
NDK versions.
- [Darwin] Fixed detection of QMAKE_DEFAULT_INCDIRS.
- [Darwin][make] Added support for building Xcode asset catalogs.
1 change: 1 addition & 0 deletions mkspecs/android-clang/qmake.conf
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,7 @@ QMAKE_COMPILER = gcc clang llvm
CONFIG += android_install unversioned_soname unversioned_libname plugin_with_soname android_deployment_settings

include(../common/linux.conf)
include(../common/gcc-base-unix.conf)
include(../common/clang.conf)
include(../common/android-base-head.conf)

Expand Down
9 changes: 7 additions & 2 deletions qmake/generators/win32/mingw_make.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -308,7 +308,12 @@ void MingwMakefileGenerator::writeBuildRulesPart(QTextStream &t)
{
t << "first: all\n";
t << "all: " << escapeDependencyPath(fileFixify(Option::output.fileName()))
<< ' ' << depVar("ALL_DEPS") << " $(DESTDIR_TARGET)\n\n";
<< ' ' << depVar("ALL_DEPS");
if (project->first("TEMPLATE") == "aux") {
t << "\n\n";
return;
}
t << " $(DESTDIR_TARGET)\n\n";
t << "$(DESTDIR_TARGET): " << depVar("PRE_TARGETDEPS") << " $(OBJECTS) " << depVar("POST_TARGETDEPS");
if(!project->isEmpty("QMAKE_PRE_LINK"))
t << "\n\t" <<var("QMAKE_PRE_LINK");
Expand All @@ -318,7 +323,7 @@ void MingwMakefileGenerator::writeBuildRulesPart(QTextStream &t)
} else {
t << "\n\t" << objectsLinkLine << " " ;
}
} else if (project->first("TEMPLATE") != "aux") {
} else {
t << "\n\t$(LINKER) $(LFLAGS) " << var("QMAKE_LINK_O_FLAG") << "$(DESTDIR_TARGET) " << objectsLinkLine << " $(LIBS)";
}
if(!project->isEmpty("QMAKE_POST_LINK"))
Expand Down
9 changes: 7 additions & 2 deletions qmake/generators/win32/msvc_nmake.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -517,7 +517,12 @@ void NmakeMakefileGenerator::writeBuildRulesPart(QTextStream &t)

t << "first: all\n";
t << "all: " << escapeDependencyPath(fileFixify(Option::output.fileName()))
<< ' ' << depVar("ALL_DEPS") << " $(DESTDIR_TARGET)\n\n";
<< ' ' << depVar("ALL_DEPS");
if (templateName == "aux") {
t << "\n\n";
return;
}
t << " $(DESTDIR_TARGET)\n\n";
t << "$(DESTDIR_TARGET): " << depVar("PRE_TARGETDEPS") << " $(OBJECTS) " << depVar("POST_TARGETDEPS");

if(!project->isEmpty("QMAKE_PRE_LINK"))
Expand All @@ -526,7 +531,7 @@ void NmakeMakefileGenerator::writeBuildRulesPart(QTextStream &t)
t << "\n\t$(LIBAPP) $(LIBFLAGS) " << var("QMAKE_LINK_O_FLAG") << "$(DESTDIR_TARGET) @<<\n\t "
<< "$(OBJECTS)"
<< "\n<<";
} else if (templateName != "aux") {
} else {
const bool embedManifest = ((templateName == "app" && project->isActiveConfig("embed_manifest_exe"))
|| (templateName == "lib" && project->isActiveConfig("embed_manifest_dll")
&& !(project->isActiveConfig("plugin") && project->isActiveConfig("no_plugin_manifest"))
Expand Down
24 changes: 14 additions & 10 deletions qmake/generators/win32/winmakefile.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -568,16 +568,18 @@ void Win32MakefileGenerator::writeStandardParts(QTextStream &t)
t << "####### Build rules\n\n";
writeBuildRulesPart(t);

if(project->isActiveConfig("shared") && !project->values("DLLDESTDIR").isEmpty()) {
const ProStringList &dlldirs = project->values("DLLDESTDIR");
for (ProStringList::ConstIterator dlldir = dlldirs.begin(); dlldir != dlldirs.end(); ++dlldir) {
t << "\t-$(COPY_FILE) $(DESTDIR_TARGET) "
<< escapeFilePath(Option::fixPathToTargetOS((*dlldir).toQString(), false)) << endl;
if (project->first("TEMPLATE") != "aux") {
if (project->isActiveConfig("shared") && !project->values("DLLDESTDIR").isEmpty()) {
const ProStringList &dlldirs = project->values("DLLDESTDIR");
for (ProStringList::ConstIterator dlldir = dlldirs.begin(); dlldir != dlldirs.end(); ++dlldir) {
t << "\t-$(COPY_FILE) $(DESTDIR_TARGET) "
<< escapeFilePath(Option::fixPathToTargetOS((*dlldir).toQString(), false)) << endl;
}
}
}
t << endl;
t << endl;

writeRcFilePart(t);
writeRcFilePart(t);
}

writeMakeQmake(t);

Expand All @@ -601,8 +603,10 @@ void Win32MakefileGenerator::writeStandardParts(QTextStream &t)
const ProStringList &quc = project->values("QMAKE_EXTRA_COMPILERS");
for (ProStringList::ConstIterator it = quc.begin(); it != quc.end(); ++it) {
const ProStringList &inputs = project->values(ProKey(*it + ".input"));
for (ProStringList::ConstIterator input = inputs.begin(); input != inputs.end(); ++input)
t << escapeFilePath(*input) << ' ';
for (ProStringList::ConstIterator input = inputs.begin(); input != inputs.end(); ++input) {
const ProStringList &val = project->values((*input).toKey());
t << escapeFilePaths(val).join(' ') << ' ';
}
}
}
t << endl << endl;
Expand Down
5 changes: 3 additions & 2 deletions src/corelib/json/qjsonparser.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -500,9 +500,10 @@ namespace {
memcpy(newValues, data, size*sizeof(QJsonPrivate::Value));
data = newValues;
} else {
data = static_cast<QJsonPrivate::Value *>(realloc(data, alloc*sizeof(QJsonPrivate::Value)));
if (!data)
void *newValues = realloc(data, alloc * sizeof(QJsonPrivate::Value));
if (!newValues)
return false;
data = static_cast<QJsonPrivate::Value *>(newValues);
}
return true;
}
Expand Down
5 changes: 3 additions & 2 deletions src/corelib/json/qjsonparser_p.h
Original file line number Diff line number Diff line change
Expand Up @@ -108,11 +108,12 @@ class Parser
inline int reserveSpace(int space) {
if (current + space >= dataLength) {
dataLength = 2*dataLength + space;
data = (char *)realloc(data, dataLength);
if (!data) {
char *newData = (char *)realloc(data, dataLength);
if (!newData) {
lastError = QJsonParseError::DocumentTooLarge;
return -1;
}
data = newData;
}
int pos = current;
current += space;
Expand Down
2 changes: 1 addition & 1 deletion src/corelib/mimetypes/qmimedatabase.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -264,7 +264,7 @@ bool QMimeDatabasePrivate::inherits(const QString &mime, const QString &parent)
\code
<?xml version="1.0" encoding="UTF-8"?>
<mime-info xmlns="http://www.freedesktop.org/standards/shared-mime-info">
<mime-type type="application/vnd.nokia.qt.qmakeprofile">
<mime-type type="application/vnd.qt.qmakeprofile">
<comment xml:lang="en">Qt qmake Profile</comment>
<glob pattern="*.pro" weight="50"/>
</mime-type>
Expand Down
2 changes: 1 addition & 1 deletion src/corelib/tools/qdatetime.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -3835,7 +3835,7 @@ QString QDateTime::toString(Qt::DateFormat format) const
\li the abbreviated localized day name (e.g. 'Mon' to 'Sun').
Uses the system locale to localize the name, i.e. QLocale::system().
\row \li dddd
\li the long localized day name (e.g. 'Monday' to 'Qt::Sunday').
\li the long localized day name (e.g. 'Monday' to 'Sunday').
Uses the system locale to localize the name, i.e. QLocale::system().
\row \li M \li the month as number without a leading zero (1-12)
\row \li MM \li the month as number with a leading zero (01-12)
Expand Down
Loading

0 comments on commit d34be32

Please sign in to comment.