[Development] Shall we turn on /utf-8 compiler option when build qt for Windows?

2017-01-28 Thread Liang Jian
Start from qt-5.8 I can't build qt anymore under Windows(simplified
chinese locale). Since there is a file
src/plugins/generic/tuiotouch/qtuiohandler.cpp which contain non-latin-1
character, msvc2015 assume the source code's character set should be CP936
which make the complilation fail.
I can only build qt by comment the line which contain the specical
character in src/plugins/generic/tuiotouch/qtuiohandler.cpp.
But if I turn on -developer-build in configuration step, thing will get
worse than before, since -developer-build means treat warning as error, and
again I can't build qt anymore since there are other files contain
non-latin1 character (such as qstring.cpp), the build will fail due to the
character set warning.
I am working on a Windows 10 x64 simplifed chinese machine, msvc2015
update3
For more detail please refer to
https://bugreports.qt.io/browse/QTBUG-58161

As a workaround, I have to modify the file
qtbase/mkspecs/common/msvc-desktop.conf
QMAKE_CFLAGS= -nologo -Zc:wchar_t /utf-8
After I add /utf-8 compiler option the build goes well.
Shall we turn on this compiler option by default?
___
Development mailing list
Development@qt-project.org
http://lists.qt-project.org/mailman/listinfo/development


Re: [Development] Incorrect TLS Session Verification on macOS with OrLater Options

2017-01-28 Thread Mikkel Krautz
On Sat, Jan 28, 2017 at 12:16 AM, Jason A. Donenfeld  wrote:
> Hi,
>
> The file src/network/ssl/qsslsocket_mac.cpp contains a nasty bug
> preventing the use of setProtocol(QSsl::TlsV1_2OrLater):
>
> bool QSslSocketBackendPrivate::verifySessionProtocol() const
> {
>bool protocolOk = false;
>if (configuration.protocol == QSsl::AnyProtocol)
>protocolOk = true;
>else if (configuration.protocol == QSsl::TlsV1SslV3)
>protocolOk = (sessionProtocol() >= QSsl::SslV3);
>else if (configuration.protocol == QSsl::SecureProtocols)
>protocolOk = (sessionProtocol() >= QSsl::TlsV1_0);
>else
>protocolOk = (sessionProtocol() == configuration.protocol);
>
>return protocolOk;
> }
>
> In the else clause, it checks for equality between sessionProtocol()
> and the configuration protocol. If the configuration protocol is
> *OrLater, this will always be false, and so verification will never
> succeed. And indeed, sessionProtocol() never returns an OrLater
> response:
>
> switch (protocol) {
>case kSSLProtocol2:
>return QSsl::SslV2;
>case kSSLProtocol3:
>return QSsl::SslV3;
>case kTLSProtocol1:
>return QSsl::TlsV1_0;
>case kTLSProtocol11:
>return QSsl::TlsV1_1;
>case kTLSProtocol12:
>return QSsl::TlsV1_2;
>default:
>return QSsl::UnknownProtocol;
>}
>
> The solution is to properly match the OrLaters and use the usual >= 
> comparison.
>
> A current workaround is to hard code the SSL version and not use an
> OrLater, which is a bummer. Please fix and backport to LTS.
>
> Thanks,
> Jason
> ___
> Development mailing list
> Development@qt-project.org
> http://lists.qt-project.org/mailman/listinfo/development

Hi Jason,

Thanks for reporting this.

I'm working on fixing it here (currently WIP):
https://codereview.qt-project.org/#/c/183781/

Thanks,
Mikkel
___
Development mailing list
Development@qt-project.org
http://lists.qt-project.org/mailman/listinfo/development


Re: [Development] Policy for examples with large resources?

2017-01-28 Thread Alejandro Exojo
On Friday 27 January 2017 15:48:54 Sean Harmer wrote:
> Obviously putting these directly in the qt3d repo is not ideal yet we need 
> examples to demonstrate this stuff (and more in the future). Is there a way
> we  can get a git-lfs repo set up as a submodule to be referenced by the
> qt3d repo?
> 
> Or is there some other solution that would be preferred?

I wholeheartedly recommend that you diverge as little as possible from Git 
LFS. The experience on the client side is really good, and with git v2.11 
(easy to compile locally if your vendor doesn't ship it) the speed has been 
increased 70 times with a new filter system, so it is close to the speed that 
native support would give you.

The problem for the Qt project is server side. Github, Gitlab and Bitbucket 
have support for LFS, but there is no production ready open source standalone 
LFS server (https://github.com/git-lfs/git-lfs/wiki/Implementations) that 
could live side by side with gerrit. Using those 3rd parties would be an 
option, but I don't see how, given that contribution to gerrit is different 
than the pull-request model of those.

The LFS blobs are uploaded as a pre-push hook, so that could be replaced by a 
script that runs rsync to upload your .git/lfs/objects that are not yet on the 
server. That way you ensure all versions are kept.

Then, the download of files happens in the "smudge" filter. You could replace 
that by a script that checks if the blob is there, downloads it, then calls 
git-lfs-smudge. I think you bypass all Git LFS usage of the network, but then 
your history would still be compatible, and the workflow good.

Oh, and there is also a custom transfer support, but I haven't tried myself: 
https://github.com/git-lfs/git-lfs/blob/master/docs/custom-transfers.md

-- 
Viking Software, Qt and C++ developers for hire
http://www.vikingsoft.eu
___
Development mailing list
Development@qt-project.org
http://lists.qt-project.org/mailman/listinfo/development