From 7d74853436d2f573380236d443144bfd44040662 Mon Sep 17 00:00:00 2001 From: Davide Beatrici Date: Sat, 1 Sep 2018 13:11:15 +0200 Subject: [PATCH 01/30] buildenv/1.3.x/win32-static: update ASIO SDK from version 2.3 to 2.3.1 --- buildenv/1.3.x/win32-static/asio.build | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) diff --git a/buildenv/1.3.x/win32-static/asio.build b/buildenv/1.3.x/win32-static/asio.build index f8d418b5..95874d50 100755 --- a/buildenv/1.3.x/win32-static/asio.build +++ b/buildenv/1.3.x/win32-static/asio.build @@ -1,5 +1,5 @@ #!/usr/bin/env mumble-build -# Copyright 2014-2015 The 'mumble-releng' Authors. All rights reserved. +# Copyright 2014-2018 The 'mumble-releng' Authors. All rights reserved. # Use of this source code is governed by a BSD-style license that # can be found in the LICENSE file in the source tree or at # . @@ -7,17 +7,18 @@ urls=( # Note: We do not want to redistribute the ASIO SDK for now. # That's why we only refer to the SDK on Steinberg's site. - "http://www.steinberg.net/sdk_downloads/asiosdk2.3.zip" + "https://www.steinberg.net/sdk_downloads/ASIOSDK2.3.1.zip" ) digests=( - "sha1:4ed6c150dcc1ee55d4ae32dfabad306547e9f15d" - "sha256:69225020e9144af568784c6076b55939a55369edaf0ffcdf4d5e5b5898f31b9b" + "sha1:3f7188391f0d8f020ea1330d9cf4824d029d6156" + "sha256:31074764475059448a9b7a56f103f4723ed60465e0e9d1a9446ca03dcf840f04" + "blake2:eeb36014b6f297a11e36836ba6fc74eb54029d89886d0d6000e9f401b37fa733c57ceeb5a6de16366c58e23d491b1a82489396a8c323be37d9d21d06aeeda85d" ) function extract { - unzip -q -o asiosdk2.3.zip - cd ASIOSDK2.3 + unzip -q -o ASIOSDK2.3.1.zip + cd "asiosdk2.3.1 svnrev312937/ASIOSDK2.3.1" } function build { From ec067ec46df5b96ab2141a0ad786d1a8905db49f Mon Sep 17 00:00:00 2001 From: Davide Beatrici Date: Sat, 1 Sep 2018 13:14:49 +0200 Subject: [PATCH 02/30] buildenv/1.3.x/win32-static: update Berkeley DB links and add BLAKE2 checksum --- buildenv/1.3.x/win32-static/berkeleydb.build | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/buildenv/1.3.x/win32-static/berkeleydb.build b/buildenv/1.3.x/win32-static/berkeleydb.build index 213a98c2..6cfb024e 100755 --- a/buildenv/1.3.x/win32-static/berkeleydb.build +++ b/buildenv/1.3.x/win32-static/berkeleydb.build @@ -1,17 +1,18 @@ #!/usr/bin/env mumble-build -# Copyright 2013-2014 The 'mumble-releng' Authors. All rights reserved. +# Copyright 2013-2018 The 'mumble-releng' Authors. All rights reserved. # Use of this source code is governed by a BSD-style license that # can be found in the LICENSE file in the source tree or at # . urls=( - "http://releng-distfiles.mumble.info/releng-distfiles/db-5.3.28.tar.gz" - "http://download.oracle.com/berkeley-db/db-5.3.28.tar.gz" + "https://s3.amazonaws.com/mumble-releng-distfiles/db-5.3.28.tar.gz" + "https://download.oracle.com/berkeley-db/db-5.3.28.tar.gz" ) digests=( "sha1:fa3f8a41ad5101f43d08bc0efb6241c9b6fc1ae9" "sha256:e0a992d740709892e81f9d93f06daf305cf73fb81b545afe72478043172c3628" + "blake2:5b77a4ec0945fa96ce6c2b452fb4b029295e037fa64d5ff8dcb3b5e01ee3501fd75d9a73b8f5fa54d8907717d93546fbb5348ee70119e877fa2f17d301ecf50d" ) function extract { From 9d03bc03df315137400fe3097ebdc27b53272263 Mon Sep 17 00:00:00 2001 From: Davide Beatrici Date: Sat, 1 Sep 2018 13:26:02 +0200 Subject: [PATCH 03/30] buildenv/1.3.x/win32-static: update Bonjour from version 765.30.11 to 878.30.4 --- buildenv/1.3.x/win32-static/bonjour.build | 18 ++++----- ...esponder-625.60.4-fix-MSVC2010-build.patch | 38 ------------------- 2 files changed, 8 insertions(+), 48 deletions(-) delete mode 100644 buildenv/1.3.x/win32-static/patches/mDNSResponder-625.60.4-fix-MSVC2010-build.patch diff --git a/buildenv/1.3.x/win32-static/bonjour.build b/buildenv/1.3.x/win32-static/bonjour.build index 7f177450..41479493 100755 --- a/buildenv/1.3.x/win32-static/bonjour.build +++ b/buildenv/1.3.x/win32-static/bonjour.build @@ -1,28 +1,26 @@ #!/usr/bin/env mumble-build -# Copyright 2013-2014 The 'mumble-releng' Authors. All rights reserved. +# Copyright 2013-2018 The 'mumble-releng' Authors. All rights reserved. # Use of this source code is governed by a BSD-style license that # can be found in the LICENSE file in the source tree or at # . urls=( - "http://releng-distfiles.mumble.info/releng-distfiles/mDNSResponder-765.30.11.tar.gz" - "https://opensource.apple.com/tarballs/mDNSResponder/mDNSResponder-765.30.11.tar.gz" + "https://s3.amazonaws.com/mumble-releng-distfiles/mDNSResponder-878.30.4.tar.gz" + "https://opensource.apple.com/tarballs/mDNSResponder/mDNSResponder-878.30.4.tar.gz" ) digests=( - "sha1:9f47d11c5b7ef2d4e2961c1c6f8cb33f358a5587" - "sha256:e7a98aaa3a4327c65f19a2d656aa9e3ff0208c71773e9c2aecee48cf76e1e7a7" - "blake2:99c4314793d5deaa2749ca9ee14467d2fbe31e3b7b45b5540dc6719ab9b19bb321e91140ab0327e44759808c915db4517df2fe0f9867d11d276a193e7faf5740" + "sha1:6661247c232e296c8646130a26686b904db7c912" + "sha256:83ae1245ce8612438dd358a83c8c4a4f1348725d0dbf0703cf520882589229af" + "blake2:14953fce0f4fd6a13062c04da0224b2d2115694eecaa29220b4668bd1460e9c0723f8c05ee8b171dd6090fd6015138edb75788450298c29c576230bce727595d" ) function extract { - tar -zxf mDNSResponder-765.30.11.tar.gz - cd mDNSResponder-765.30.11 + tar -zxf mDNSResponder-878.30.4.tar.gz + cd mDNSResponder-878.30.4 } function prepare { - patch -p1 < ${MUMBLE_BUILDENV_ROOT}/patches/mDNSResponder-625.60.4-fix-MSVC2010-build.patch - cd mDNSWindows # Fix build with MSVC Express. diff --git a/buildenv/1.3.x/win32-static/patches/mDNSResponder-625.60.4-fix-MSVC2010-build.patch b/buildenv/1.3.x/win32-static/patches/mDNSResponder-625.60.4-fix-MSVC2010-build.patch deleted file mode 100644 index bd474d23..00000000 --- a/buildenv/1.3.x/win32-static/patches/mDNSResponder-625.60.4-fix-MSVC2010-build.patch +++ /dev/null @@ -1,38 +0,0 @@ ---- ./mDNSShared/dnssd_clientstub.c -+++ ./mDNSShared/dnssd_clientstub.c -@@ -609,24 +609,30 @@ static DNSServiceErrorType ConnectToServ - - static DNSServiceErrorType deliver_request(ipc_msg_hdr *hdr, DNSServiceOp *sdr) - { -+ uint32_t datalen; -+ char *data; -+ dnssd_sock_t listenfd, errsd; -+ DNSServiceErrorType err; -+ int MakeSeparateReturnSocket; -+ - if (!hdr) - { - syslog(LOG_WARNING, "dnssd_clientstub deliver_request: !hdr"); - return kDNSServiceErr_Unknown; - } - -- uint32_t datalen = hdr->datalen; // We take a copy here because we're going to convert hdr->datalen to network byte order -+ datalen = hdr->datalen; // We take a copy here because we're going to convert hdr->datalen to network byte order - #if defined(USE_TCP_LOOPBACK) || defined(USE_NAMED_ERROR_RETURN_SOCKET) -- char *const data = (char *)hdr + sizeof(ipc_msg_hdr); -+ data = (char *)hdr + sizeof(ipc_msg_hdr); - #endif -- dnssd_sock_t listenfd = dnssd_InvalidSocket, errsd = dnssd_InvalidSocket; -- DNSServiceErrorType err = kDNSServiceErr_Unknown; // Default for the "goto cleanup" cases -+ listenfd = dnssd_InvalidSocket, errsd = dnssd_InvalidSocket; -+ err = kDNSServiceErr_Unknown; // Default for the "goto cleanup" cases - - // Note: need to check hdr->op, not sdr->op. - // hdr->op contains the code for the specific operation we're currently doing, whereas sdr->op - // contains the original parent DNSServiceOp (e.g. for an add_record_request, hdr->op will be - // add_record_request but the parent sdr->op will be connection_request or reg_service_request) -- const int MakeSeparateReturnSocket = (sdr->primary || -+ MakeSeparateReturnSocket = (sdr->primary || - hdr->op == reg_record_request || hdr->op == add_record_request || hdr->op == update_record_request || hdr->op == remove_record_request); - - if (!DNSServiceRefValid(sdr)) From ba5013e497eac20fb8d277404ff915f07b3c1fcc Mon Sep 17 00:00:00 2001 From: Davide Beatrici Date: Mon, 3 Sep 2018 17:32:59 +0200 Subject: [PATCH 04/30] buildenv/1.3.x/win32-static: update Boost from version 1.63.0 to 1.68.0 --- buildenv/1.3.x/win32-static/boost.build | 19 ++++++++++--------- .../patches/boost-1.68.0-msvc-build-fix.patch | 16 ++++++++++++++++ 2 files changed, 26 insertions(+), 9 deletions(-) create mode 100644 buildenv/1.3.x/win32-static/patches/boost-1.68.0-msvc-build-fix.patch diff --git a/buildenv/1.3.x/win32-static/boost.build b/buildenv/1.3.x/win32-static/boost.build index 82ecbbc6..733be4d6 100755 --- a/buildenv/1.3.x/win32-static/boost.build +++ b/buildenv/1.3.x/win32-static/boost.build @@ -1,26 +1,27 @@ #!/usr/bin/env mumble-build -# Copyright 2013-2015 The 'mumble-releng' Authors. All rights reserved. +# Copyright 2013-2018 The 'mumble-releng' Authors. All rights reserved. # Use of this source code is governed by a BSD-style license that # can be found in the LICENSE file in the source tree or at # . urls=( - "http://releng-distfiles.mumble.info/releng-distfiles/boost_1_63_0.zip" - "https://downloads.sourceforge.net/project/boost/boost/1.63.0/boost_1_63_0.zip" + "https://s3.amazonaws.com/mumble-releng-distfiles/boost_1_68_0.zip" + "https://downloads.sourceforge.net/project/boost/boost/1.68.0/boost_1_68_0.zip" ) digests=( - "sha1:4364989afbe6b11f2d5e59df902c3ca4d7851824" - "sha256:97ce6635df1f44653a597343cd5757bb8b6b992beb3720f5fc761e3644bcbe7b" + "sha1:c4cd90922d22ca17d9b8330441637397395e5812" + "sha256:3b1db0b67079266c40b98329d85916e910bbadfc3db3e860c049056788d4d5cd" + "blake2:008accf70eecf31a825a02e7e8675281c4c40eae1100928016fac37544c634352a134cc2eef1a900fe395b90174d58eba55cff744944fea870e96d2863402b3c" ) function extract { - unzip -q -o boost_1_63_0.zip - cd boost_1_63_0 + unzip -q -o boost_1_68_0.zip + cd boost_1_68_0 } function prepare { - : + patch -p1 < ${MUMBLE_BUILDENV_ROOT}/patches/boost-1.68.0-msvc-build-fix.patch } function build { @@ -46,4 +47,4 @@ function install { fi cmd /c b2 architecture=x86 address-model=${BOOST_ADDRESS_MODEL} --toolset=${BOOST_TOOLSET} --prefix=$(cygpath -w "${MUMBLE_PREFIX}/Boost") --without-mpi --without-python --layout=tagged link=static runtime-link=shared threading=multi variant=${BOOST_VARIANT} install -} \ No newline at end of file +} diff --git a/buildenv/1.3.x/win32-static/patches/boost-1.68.0-msvc-build-fix.patch b/buildenv/1.3.x/win32-static/patches/boost-1.68.0-msvc-build-fix.patch new file mode 100644 index 00000000..ef2f28e1 --- /dev/null +++ b/buildenv/1.3.x/win32-static/patches/boost-1.68.0-msvc-build-fix.patch @@ -0,0 +1,16 @@ +https://github.com/boostorg/build/commit/d11e3e4ef342b7723b3cf554fde7677873c47040 + +--- ./tools/build/src/tools/msvc.jam ++++ ./tools/build/src/tools/msvc.jam +@@ -1077,6 +1077,11 @@ local rule set-setup-command ( targets * + if ! [ on $(targets) return $(.SETUP) ] + { + local setup-script = [ on $(targets) return $(.SETUP-SCRIPT) ] ; ++ # If no setup script was given, then we don't need to do anything. ++ if ! $(setup-script) ++ { ++ return ; ++ } + local setup-options = [ on $(targets) return $(.SETUP-OPTIONS) ] ; + local key = .setup-command-$(setup-script:E=)-$(setup-options:E=) ; + if ! $($(key)) From e771172bf1c091e1c7955c03446dfc8308cbff68 Mon Sep 17 00:00:00 2001 From: Davide Beatrici Date: Sat, 1 Sep 2018 13:44:16 +0200 Subject: [PATCH 05/30] buildenv/1.3.x/win32-static: update bzip2 links and add SHA256 and BLAKE2 checksums --- buildenv/1.3.x/win32-static/bzip2.build | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/buildenv/1.3.x/win32-static/bzip2.build b/buildenv/1.3.x/win32-static/bzip2.build index 643b95a0..06e1a458 100755 --- a/buildenv/1.3.x/win32-static/bzip2.build +++ b/buildenv/1.3.x/win32-static/bzip2.build @@ -1,16 +1,18 @@ #!/usr/bin/env mumble-build -# Copyright 2013-2014 The 'mumble-releng' Authors. All rights reserved. +# Copyright 2013-2018 The 'mumble-releng' Authors. All rights reserved. # Use of this source code is governed by a BSD-style license that # can be found in the LICENSE file in the source tree or at # . urls=( - "http://releng-distfiles.mumble.info/releng-distfiles/bzip2-1.0.6.tar.gz" + "https://s3.amazonaws.com/mumble-releng-distfiles/bzip2-1.0.6.tar.gz" "http://www.bzip.org/1.0.6/bzip2-1.0.6.tar.gz" ) digests=( "sha1:3f89f861209ce81a6bab1fd1998c0ef311712002" + "sha256:a2848f34fcd5d6cf47def00461fcb528a0484d8edef8208d6d2e2909dc61d9cd" + "blake2:b31533af7c71d715e6600874bb0a11b9b3aebbb08af0414a6d88bd5a2ad879a482ad408338159cb6c241815da8f48798d2ea7789ea971431d0be42ee827b0a7e" ) function extract { From a9051fd1d416904b16e778016185901bcac532e1 Mon Sep 17 00:00:00 2001 From: Davide Beatrici Date: Sun, 2 Sep 2018 22:30:49 +0200 Subject: [PATCH 06/30] buildenv/1.3.x/win32-static: update CMake from version 3.7.2 to 3.12.1 --- buildenv/1.3.x/win32-static/cmake.build | 16 +++++++++------- 1 file changed, 9 insertions(+), 7 deletions(-) diff --git a/buildenv/1.3.x/win32-static/cmake.build b/buildenv/1.3.x/win32-static/cmake.build index 89f714e3..f5cfea38 100755 --- a/buildenv/1.3.x/win32-static/cmake.build +++ b/buildenv/1.3.x/win32-static/cmake.build @@ -1,21 +1,23 @@ #!/usr/bin/env mumble-build -# Copyright 2013-2014 The 'mumble-releng' Authors. All rights reserved. +# Copyright 2013-2018 The 'mumble-releng' Authors. All rights reserved. # Use of this source code is governed by a BSD-style license that # can be found in the LICENSE file in the source tree or at # . urls=( - "http://releng-distfiles.mumble.info/releng-distfiles/cmake-3.7.2-win32-x86.zip" - "https://cmake.org/files/v3.7/cmake-3.7.2-win32-x86.zip" + "https://s3.amazonaws.com/mumble-releng-distfiles/cmake-3.12.1-win32-x86.zip" + "https://cmake.org/files/v3.12/cmake-3.12.1-win32-x86.zip" ) digests=( - "sha256:ec5e299d412e0272e01d4de5bf07718f42c96361f83d51cc39f91bf49cc3e5c3" + "sha1:4822a0ad1ade7e42f692596c6794d41551c3390e" + "sha256:b9d5107bbc122cbfab539547bfd4965216620ed279e5b28461adb91d29407a5a" + "blake2:fbd30c2201588f737137c55c793e9af01273d69acb91e955189168736b592b5f85f6e37f180bbae047d28d7aafcaea3cdbb823c4b7c9a9eb2398946c08847677" ) function extract { - unzip -q -o cmake-3.7.2-win32-x86.zip - cd cmake-3.7.2-win32-x86 + unzip -q -o cmake-3.12.1-win32-x86.zip + cd cmake-3.12.1-win32-x86 } function build { @@ -25,5 +27,5 @@ function build { function install { mkdir -p ${MUMBLE_PREFIX}/cmake/ cp -R * ${MUMBLE_PREFIX}/cmake/ - chmod +rx ${MUMBLE_PREFIX}/cmake/bin/*.{dll,exe} + chmod +rx ${MUMBLE_PREFIX}/cmake/bin/*.exe } From 83185d90eaf1050f1bd260a5b57a2d41e0d5901c Mon Sep 17 00:00:00 2001 From: Davide Beatrici Date: Thu, 6 Sep 2018 18:01:00 +0200 Subject: [PATCH 07/30] buildenv/1.3.x/win32-static: update Expat from version 2.2.0 to 2.2.6 --- buildenv/1.3.x/win32-static/expat.build | 19 ++++++++++--------- 1 file changed, 10 insertions(+), 9 deletions(-) diff --git a/buildenv/1.3.x/win32-static/expat.build b/buildenv/1.3.x/win32-static/expat.build index 4ffb0b68..26150a42 100755 --- a/buildenv/1.3.x/win32-static/expat.build +++ b/buildenv/1.3.x/win32-static/expat.build @@ -1,22 +1,23 @@ #!/usr/bin/env mumble-build -# Copyright 2013-2014 The 'mumble-releng' Authors. All rights reserved. +# Copyright 2013-2018 The 'mumble-releng' Authors. All rights reserved. # Use of this source code is governed by a BSD-style license that # can be found in the LICENSE file in the source tree or at # . urls=( - "http://releng-distfiles.mumble.info/releng-distfiles/expat-2.2.0.tar.bz2" - "http://downloads.sourceforge.net/project/expat/expat/2.2.0/expat-2.2.0.tar.bz2" + "https://s3.amazonaws.com/mumble-releng-distfiles/expat-2.2.6.tar.bz2" + "https://downloads.sourceforge.net/project/expat/expat/2.2.6/expat-2.2.6.tar.bz2" ) digests=( - "sha1:8453bc52324be4c796fd38742ec48470eef358b3" - "sha256:d9e50ff2d19b3538bd2127902a89987474e1a4db8e43a66a4d1a712ab9a504ff" + "sha1:c8947fc3119a797b55485f2f7bdaaeb49cc9df01" + "sha256:17b43c2716d521369f82fc2dc70f359860e90fa440bea65b3b85f0b246ea81f2" + "blake2:386736da1f2204fa8f15ee4d1b3d11f01ed691efe6951b9f24f2bd30ab5494e75da6a97ceb1ffe4a0a8ecdc80f96f51d21c54f35a2cbc352a9fe9425545bf15b" ) function extract { - tar -jxf expat-2.2.0.tar.bz2 - cd expat-2.2.0 + tar -jxf expat-2.2.6.tar.bz2 + cd expat-2.2.6 } function build { @@ -28,8 +29,8 @@ function build { cd lib export CFLAGS="/nologo /DWIN32 /DCOMPILED_FROM_DSP /DXML_BUILDING_EXPAT ${RTLIB_FLAG} /Zi /Fdlibexpat.pdb /c" - cmd /c cl.exe ${CFLAGS} xmlparse.c xmlrole.c xmltok.c - cmd /c lib.exe xmlparse.obj xmlrole.obj xmltok.obj /out:libexpat.lib + cmd /c cl.exe ${CFLAGS} loadlibrary.c xmlparse.c xmlrole.c xmltok.c + cmd /c lib.exe loadlibrary.obj xmlparse.obj xmlrole.obj xmltok.obj /out:libexpat.lib } function install { From 1e83144424c3434bc6478d78862d5e39a4eaef53 Mon Sep 17 00:00:00 2001 From: Davide Beatrici Date: Tue, 4 Sep 2018 21:36:46 +0200 Subject: [PATCH 08/30] buildenv/1.3.x/win32-static: update FreeType from version 2.7.1 to 2.9.1 --- buildenv/1.3.x/win32-static/freetype.build | 18 +++++++++--------- ...reetype-2.9.1-missing-header-file-fix.patch | 13 +++++++++++++ 2 files changed, 22 insertions(+), 9 deletions(-) create mode 100644 buildenv/1.3.x/win32-static/patches/freetype-2.9.1-missing-header-file-fix.patch diff --git a/buildenv/1.3.x/win32-static/freetype.build b/buildenv/1.3.x/win32-static/freetype.build index ca715896..81f573c1 100755 --- a/buildenv/1.3.x/win32-static/freetype.build +++ b/buildenv/1.3.x/win32-static/freetype.build @@ -1,27 +1,27 @@ #!/usr/bin/env mumble-build -# Copyright 2016 The 'mumble-releng' Authors. All rights reserved. +# Copyright 2016-2018 The 'mumble-releng' Authors. All rights reserved. # Use of this source code is governed by a BSD-style license that # can be found in the LICENSE file in the source tree or at # . urls=( - "http://releng-distfiles.mumble.info/releng-distfiles/freetype-2.7.1.tar.gz" - "http://download.savannah.gnu.org/releases/freetype/freetype-2.7.1.tar.gz" + "https://s3.amazonaws.com/mumble-releng-distfiles/freetype-2.9.1.tar.gz" + "https://download.savannah.gnu.org/releases/freetype/freetype-2.9.1.tar.gz" ) digests=( - "sha1:60fb8097901a887b8e8f6e7f777ef0516ae68022" - "sha256:162ef25aa64480b1189cdb261228e6c5c44f212aac4b4621e28cf2157efb59f5" - "blake2:27ae208b19eab8df1611056ad10d7caab12640f0ae91e92259f44c16260aa484b2e33156215f0501a1548e52e816420554a2b28c7b541af8f95ac52f204648a2" + "sha1:7498739e34e5dca4c61d05efdde6191ba69a2df0" + "sha256:ec391504e55498adceb30baceebd147a6e963f636eb617424bcfc47a169898ce" + "blake2:d6b54f146b03aa77396d1e58e12152f3e4367262c1c22b5ef69937d2868fde02db6d1584cb8bdbe499fce6ba1e26c45a7d8acb38bcbf562599b183ec5e71da69" ) function extract { - tar -zxf freetype-2.7.1.tar.gz - cd freetype-2.7.1 + tar -zxf freetype-2.9.1.tar.gz + cd freetype-2.9.1 } function prepare { - : + patch -p1 < ${MUMBLE_BUILDENV_ROOT}/patches/freetype-2.9.1-missing-header-file-fix.patch } function build { diff --git a/buildenv/1.3.x/win32-static/patches/freetype-2.9.1-missing-header-file-fix.patch b/buildenv/1.3.x/win32-static/patches/freetype-2.9.1-missing-header-file-fix.patch new file mode 100644 index 00000000..95c063d9 --- /dev/null +++ b/buildenv/1.3.x/win32-static/patches/freetype-2.9.1-missing-header-file-fix.patch @@ -0,0 +1,13 @@ +--- ./CMakeLists.txt ++++ ./CMakeLists.txt +@@ -231,6 +231,10 @@ if (UNIX) + FTCONFIG_H "${FTCONFIG_H}") + file(WRITE "${PROJECT_BINARY_DIR}/include/freetype/config/ftconfig.h" + "${FTCONFIG_H}") ++else () ++ file(COPY "${PROJECT_SOURCE_DIR}/include/freetype/config/ftconfig.h" ++ DESTINATION "${PROJECT_BINARY_DIR}/include/freetype/config/" ++ ) + endif () + + From db0f765f3379fadba2c6d4efec0019e669841b7b Mon Sep 17 00:00:00 2001 From: Davide Beatrici Date: Sat, 1 Sep 2018 14:01:45 +0200 Subject: [PATCH 09/30] buildenv/1.3.x/win32-static: update G15SDK link and add BLAKE2 checksum --- buildenv/1.3.x/win32-static/g15sdk.build | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/buildenv/1.3.x/win32-static/g15sdk.build b/buildenv/1.3.x/win32-static/g15sdk.build index 69aea4b2..6dcd9748 100755 --- a/buildenv/1.3.x/win32-static/g15sdk.build +++ b/buildenv/1.3.x/win32-static/g15sdk.build @@ -1,16 +1,17 @@ #!/usr/bin/env mumble-build -# Copyright 2014-2015 The 'mumble-releng' Authors. All rights reserved. +# Copyright 2014-2018 The 'mumble-releng' Authors. All rights reserved. # Use of this source code is governed by a BSD-style license that # can be found in the LICENSE file in the source tree or at # . urls=( - "http://releng-distfiles.mumble.info/releng-distfiles/G15SDK.zip" + "https://s3.amazonaws.com/mumble-releng-distfiles/G15SDK.zip" ) digests=( "sha1:0beefc23e7b5b2341aef77330afba323c376ca8c" "sha256:c10883e4a1cf22f9c01cd7f6212301fd9991bca44d7d6485ae236b70b7157ae2" + "blake2:90abb799d1b22838c3d9ddc9ec0f99f368f6f09d880b253c015afded672cf3e335e2d7ab14c58c92f182396a616e532e54f2e4940c422dd9746233b5b17a2cce" ) function extract { From 49ccbc47d463568436819f7244abdaa6e9d66290 Mon Sep 17 00:00:00 2001 From: Davide Beatrici Date: Wed, 5 Sep 2018 00:46:51 +0200 Subject: [PATCH 10/30] buildenv/1.3.x/win32-static: update HarfBuzz from version 1.4.5 to 1.8.8 --- .../cmake/harfbuzz-ng-CMakeLists.txt | 67 ------------------- buildenv/1.3.x/win32-static/harfbuzz-ng.build | 43 +++--------- 2 files changed, 10 insertions(+), 100 deletions(-) delete mode 100644 buildenv/1.3.x/win32-static/cmake/harfbuzz-ng-CMakeLists.txt mode change 100755 => 100644 buildenv/1.3.x/win32-static/harfbuzz-ng.build diff --git a/buildenv/1.3.x/win32-static/cmake/harfbuzz-ng-CMakeLists.txt b/buildenv/1.3.x/win32-static/cmake/harfbuzz-ng-CMakeLists.txt deleted file mode 100644 index 2880c1ad..00000000 --- a/buildenv/1.3.x/win32-static/cmake/harfbuzz-ng-CMakeLists.txt +++ /dev/null @@ -1,67 +0,0 @@ -# Copyright 2013-2016 The 'mumble-releng' Authors. All rights reserved. -# Use of this source code is governed by a BSD-style license that -# can be found in the LICENSE file in the source tree or at -# . - -cmake_minimum_required(VERSION 2.8.11) - -execute_process(COMMAND cygpath -w $ENV{MUMBLE_PREFIX} OUTPUT_VARIABLE mumble_prefix OUTPUT_STRIP_TRAILING_WHITESPACE) - -add_definitions( - -DHAVE_ATEXIT - -DHB_NO_WIN1256 - - -DHAVE_OT - -DHB_NO_UNICODE_FUNCS - - -D_CRT_SECURE_NO_WARNINGS -) - -if(NOT CMAKE_CL_64) - add_definitions(/arch:IA32) -endif() - -include_directories( - src - include -) - -# If you need a reference to update this -# list of source files, see the Android.mk -# in the Harfbuzz source tree. -set (harfbuzz_ng_src - src/hb-blob.cc - src/hb-buffer-serialize.cc - src/hb-buffer.cc - src/hb-common.cc - src/hb-face.cc - src/hb-font.cc - src/hb-ot-tag.cc - src/hb-set.cc - src/hb-shape.cc - src/hb-shape-plan.cc - src/hb-shaper.cc - src/hb-unicode.cc - src/hb-warning.cc - src/hb-ot-font.cc - src/hb-ot-layout.cc - src/hb-ot-map.cc - src/hb-ot-math.cc - src/hb-ot-shape.cc - src/hb-ot-shape-complex-arabic.cc - src/hb-ot-shape-complex-default.cc - src/hb-ot-shape-complex-hangul.cc - src/hb-ot-shape-complex-hebrew.cc - src/hb-ot-shape-complex-indic.cc - src/hb-ot-shape-complex-indic-table.cc - src/hb-ot-shape-complex-myanmar.cc - src/hb-ot-shape-complex-thai.cc - src/hb-ot-shape-complex-tibetan.cc - src/hb-ot-shape-complex-use.cc - src/hb-ot-shape-complex-use-table.cc - src/hb-ot-shape-normalize.cc - src/hb-ot-shape-fallback.cc - src/hb-ot-var.cc -) - -add_library(harfbuzz STATIC ${harfbuzz_ng_src}) diff --git a/buildenv/1.3.x/win32-static/harfbuzz-ng.build b/buildenv/1.3.x/win32-static/harfbuzz-ng.build old mode 100755 new mode 100644 index 3454ad27..6c9be09d --- a/buildenv/1.3.x/win32-static/harfbuzz-ng.build +++ b/buildenv/1.3.x/win32-static/harfbuzz-ng.build @@ -1,27 +1,27 @@ #!/usr/bin/env mumble-build -# Copyright 2016 The 'mumble-releng' Authors. All rights reserved. +# Copyright 2016-2018 The 'mumble-releng' Authors. All rights reserved. # Use of this source code is governed by a BSD-style license that # can be found in the LICENSE file in the source tree or at # . urls=( - "http://releng-distfiles.mumble.info/releng-distfiles/harfbuzz-1.4.5.tar.bz2" - "https://www.freedesktop.org/software/harfbuzz/release/harfbuzz-1.4.5.tar.bz2" + "https://s3.amazonaws.com/mumble-releng-distfiles/harfbuzz-1.8.8.tar.bz2" + "https://www.freedesktop.org/software/harfbuzz/release/harfbuzz-1.8.8.tar.bz2" ) digests=( - "sha1:e979eb20b789c1fc47107ef93a584924e34dd195" - "sha256:d0e05438165884f21658154c709075feaf98c93ee5c694b951533ac425a9a711" - "blake2:8f2fb5c20c92afe3fb344bf4d4024090d68ab60c6d899c9805eec0bc6d0a714a3d98bfb6718ea4225da68b19e95db357c744dcba310076f4c56ed590985c9d1d" + "sha1:be496408b2bb3dc794891e8b0e977cd75f02d71d" + "sha256:a8e5c86e4d99e1cc9865ec1b8e9b05b98e413c2a885cd11f8e9bb9502dd3e3a9" + "blake2:c5b2b89f6fbefa004927c0ed5dc314d3f8fd4ce8c58918f4020a91247d9e781ff1ffb4ba05b138b4b1aebbdcad2041d749301143523a808f61f013e2efb5efdd" ) function extract { - tar -jxf harfbuzz-1.4.5.tar.bz2 - cd harfbuzz-1.4.5 + tar -jxf harfbuzz-1.8.8.tar.bz2 + cd harfbuzz-1.8.8 } function prepare { - cp ${MUMBLE_BUILDENV_ROOT}/cmake/harfbuzz-ng-CMakeLists.txt ./CMakeLists.txt + : } function build { @@ -38,28 +38,5 @@ function install { mkdir -p ${MUMBLE_PREFIX}/harfbuzz-ng/lib cp harfbuzz.lib ${MUMBLE_PREFIX}/harfbuzz-ng/lib/harfbuzz.lib mkdir -p ${MUMBLE_PREFIX}/harfbuzz-ng/include/harfbuzz - - # Keep in sync with src/Makefile.sources's - # HB_BASE_headers + HB_NODIST_headers + HB_OT_headers - cp \ - src/hb.h \ - src/hb-blob.h \ - src/hb-buffer.h \ - src/hb-common.h \ - src/hb-deprecated.h \ - src/hb-face.h \ - src/hb-font.h \ - src/hb-set.h \ - src/hb-shape.h \ - src/hb-shape-plan.h \ - src/hb-unicode.h \ - src/hb-version.h \ - src/hb-ot.h \ - src/hb-ot-font.h \ - src/hb-ot-layout.h \ - src/hb-ot-math.h \ - src/hb-ot-shape.h \ - src/hb-ot-tag.h \ - src/hb-ot-var.h \ - ${MUMBLE_PREFIX}/harfbuzz-ng/include/harfbuzz/ + cp src/*.h ${MUMBLE_PREFIX}/harfbuzz-ng/include/harfbuzz/ } From 7e21d24bb0f0b0e7cfbaa3c127ee8ae22de979dc Mon Sep 17 00:00:00 2001 From: Davide Beatrici Date: Sat, 1 Sep 2018 14:30:26 +0200 Subject: [PATCH 11/30] buildenv/1.3.x/win32-static: update Jom links and add BLAKE2 checksum --- buildenv/1.3.x/win32-static/jom.build | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/buildenv/1.3.x/win32-static/jom.build b/buildenv/1.3.x/win32-static/jom.build index 2e9a91fd..5bd2bdff 100755 --- a/buildenv/1.3.x/win32-static/jom.build +++ b/buildenv/1.3.x/win32-static/jom.build @@ -1,17 +1,18 @@ #!/usr/bin/env mumble-build -# Copyright 2015 The 'mumble-releng' Authors. All rights reserved. +# Copyright 2015-2018 The 'mumble-releng' Authors. All rights reserved. # Use of this source code is governed by a BSD-style license that # can be found in the LICENSE file in the source tree or at # . urls=( - "http://releng-distfiles.mumble.info/releng-distfiles/jom_1_1_2.zip" + "https://s3.amazonaws.com/mumble-releng-distfiles/jom_1_1_2.zip" "https://download.qt.io/official_releases/jom/jom_1_1_2.zip" ) digests=( "sha1:80ee5678e714de99ddaf5f7593ab04db1c7928e4" "sha256:4136b9c5fadc8a15a3db115e037f25f5f5009c9f1290231f8aab28776d190ef2" + "blake2:30630e8c63cf9721b3f33e7bc9e581c28646abc32887c915d29ecdd64848fe4a27d97356eb7ca4aa33bcc94457794b90ebfcf778ca05ad87e49426be7763c9f4" ) function extract { From 6f9b9ce8979086ec103f5f15b902b28e8fe45b54 Mon Sep 17 00:00:00 2001 From: Davide Beatrici Date: Sat, 1 Sep 2018 14:33:51 +0200 Subject: [PATCH 12/30] buildenv/1.3.x/win32-static: update libflac links --- buildenv/1.3.x/win32-static/libflac.build | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/buildenv/1.3.x/win32-static/libflac.build b/buildenv/1.3.x/win32-static/libflac.build index 13bcbbc7..71158810 100755 --- a/buildenv/1.3.x/win32-static/libflac.build +++ b/buildenv/1.3.x/win32-static/libflac.build @@ -1,12 +1,12 @@ #!/usr/bin/env mumble-build -# Copyright 2013-2014 The 'mumble-releng' Authors. All rights reserved. +# Copyright 2013-2018 The 'mumble-releng' Authors. All rights reserved. # Use of this source code is governed by a BSD-style license that # can be found in the LICENSE file in the source tree or at # . urls=( - "http://releng-distfiles.mumble.info/releng-distfiles/flac-1.3.2.tar.xz" - "http://downloads.xiph.org/releases/flac/flac-1.3.2.tar.xz" + "https://s3.amazonaws.com/mumble-releng-distfiles/flac-1.3.2.tar.xz" + "https://ftp.osuosl.org/pub/xiph/releases/flac/flac-1.3.2.tar.xz" ) digests=( From bc76a21417c9d7f2e22eee216afa4926922ae9a5 Mon Sep 17 00:00:00 2001 From: Davide Beatrici Date: Sat, 1 Sep 2018 19:58:01 +0200 Subject: [PATCH 13/30] buildenv/1.3.x/win32-static: update mcpp links and add SHA256 and BLAKE2 checksums --- buildenv/1.3.x/win32-static/libmcpp.build | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/buildenv/1.3.x/win32-static/libmcpp.build b/buildenv/1.3.x/win32-static/libmcpp.build index 543cf867..d8bc8650 100755 --- a/buildenv/1.3.x/win32-static/libmcpp.build +++ b/buildenv/1.3.x/win32-static/libmcpp.build @@ -1,16 +1,18 @@ #!/usr/bin/env mumble-build -# Copyright 2013-2014 The 'mumble-releng' Authors. All rights reserved. +# Copyright 2013-2018 The 'mumble-releng' Authors. All rights reserved. # Use of this source code is governed by a BSD-style license that # can be found in the LICENSE file in the source tree or at # . urls=( - "http://releng-distfiles.mumble.info/releng-distfiles/mcpp-2.7.2.tar.gz" - "http://downloads.sourceforge.net/project/mcpp/mcpp/V.2.7.2/mcpp-2.7.2.tar.gz" + "https://s3.amazonaws.com/mumble-releng-distfiles/mcpp-2.7.2.tar.gz" + "https://downloads.sourceforge.net/project/mcpp/mcpp/V.2.7.2/mcpp-2.7.2.tar.gz" ) digests=( "sha1:703356b7c2cd30d7fb6000625bf3ccc2eb977ecb" + "sha256:3b9b4421888519876c4fc68ade324a3bbd81ceeb7092ecdbbc2055099fcb8864" + "blake2:4368fd1c667923ab3b60ce79f8421c549a9d9105957ca87b9ba49be513cb1be7f220a3ddbaf306e860014d5211af480d07170d912d3d4a80345d8eab45fd6c00" ) function extract { From 7a3031933c772b37ee2ccab658db0ced525e3f0c Mon Sep 17 00:00:00 2001 From: Davide Beatrici Date: Tue, 4 Sep 2018 15:59:32 +0200 Subject: [PATCH 14/30] buildenv/1.3.x/win32-static: update libjpeg-turbo from version 1.5.1 to 2.0.0 --- buildenv/1.3.x/win32-static/libjpeg-turbo.build | 17 +++++++++-------- .../libjpeg-turbo-1.5.0-msvc-no-manifest.patch | 10 ---------- .../libjpeg-turbo-2.0.0-msvc-no-manifest.patch | 10 ++++++++++ 3 files changed, 19 insertions(+), 18 deletions(-) delete mode 100644 buildenv/1.3.x/win32-static/patches/libjpeg-turbo-1.5.0-msvc-no-manifest.patch create mode 100644 buildenv/1.3.x/win32-static/patches/libjpeg-turbo-2.0.0-msvc-no-manifest.patch diff --git a/buildenv/1.3.x/win32-static/libjpeg-turbo.build b/buildenv/1.3.x/win32-static/libjpeg-turbo.build index 151c8360..6408672e 100755 --- a/buildenv/1.3.x/win32-static/libjpeg-turbo.build +++ b/buildenv/1.3.x/win32-static/libjpeg-turbo.build @@ -1,26 +1,27 @@ #!/usr/bin/env mumble-build -# Copyright 2015 The 'mumble-releng' Authors. All rights reserved. +# Copyright 2015-2018 The 'mumble-releng' Authors. All rights reserved. # Use of this source code is governed by a BSD-style license that # can be found in the LICENSE file in the source tree or at # . urls=( - "http://releng-distfiles.mumble.info/releng-distfiles/libjpeg-turbo-1.5.1.tar.gz" - "http://downloads.sourceforge.net/project/libjpeg-turbo/1.5.1/libjpeg-turbo-1.5.1.tar.gz" + "https://s3.amazonaws.com/mumble-releng-distfiles/libjpeg-turbo-2.0.0.tar.gz" + "https://downloads.sourceforge.net/project/libjpeg-turbo/2.0.0/libjpeg-turbo-2.0.0.tar.gz" ) digests=( - "sha1:ebb3f9e94044c77831a3e8c809c7ea7506944622" - "sha256:41429d3d253017433f66e3d472b8c7d998491d2f41caa7306b8d9a6f2a2c666c" + "sha1:fe49aea935617748c21ecbe46c986d6c1b98f39b" + "sha256:778876105d0d316203c928fd2a0374c8c01f755d0a00b12a1c8934aeccff8868" + "blake2:fd4974f0500d23e72d0d0cfd31e7c4eba485779932d5c9515645eff4f7dccf97a2aff61b42be0f539905e6dcd6db2acec48cb7bb5ae61cae7152cd06902c36fe" ) function extract { - tar -zxf libjpeg-turbo-1.5.1.tar.gz - cd libjpeg-turbo-1.5.1 + tar -zxf libjpeg-turbo-2.0.0.tar.gz + cd libjpeg-turbo-2.0.0 } function prepare { - patch -p1 < ${MUMBLE_BUILDENV_ROOT}/patches/libjpeg-turbo-1.5.0-msvc-no-manifest.patch + patch -p1 < ${MUMBLE_BUILDENV_ROOT}/patches/libjpeg-turbo-2.0.0-msvc-no-manifest.patch } function build { diff --git a/buildenv/1.3.x/win32-static/patches/libjpeg-turbo-1.5.0-msvc-no-manifest.patch b/buildenv/1.3.x/win32-static/patches/libjpeg-turbo-1.5.0-msvc-no-manifest.patch deleted file mode 100644 index 928fb56b..00000000 --- a/buildenv/1.3.x/win32-static/patches/libjpeg-turbo-1.5.0-msvc-no-manifest.patch +++ /dev/null @@ -1,10 +0,0 @@ ---- ./CMakeLists.txt -+++ ./CMakeLists.txt -@@ -137,6 +137,7 @@ else() - endif() - - if(MSVC) -+ set(CMAKE_EXE_LINKER_FLAGS "/MANIFEST:NO ${CMAKE_EXE_LINKER_FLAGS}") - option(WITH_CRT_DLL - "Link all libjpeg-turbo libraries and executables with the C run-time DLL (msvcr*.dll) instead of the static C run-time library (libcmt*.lib.) The default is to use the C run-time DLL only with the libraries and executables that need it." - FALSE) diff --git a/buildenv/1.3.x/win32-static/patches/libjpeg-turbo-2.0.0-msvc-no-manifest.patch b/buildenv/1.3.x/win32-static/patches/libjpeg-turbo-2.0.0-msvc-no-manifest.patch new file mode 100644 index 00000000..2e77c278 --- /dev/null +++ b/buildenv/1.3.x/win32-static/patches/libjpeg-turbo-2.0.0-msvc-no-manifest.patch @@ -0,0 +1,10 @@ +--- ./CMakeLists.txt ++++ ./CMakeLists.txt +@@ -298,6 +298,7 @@ set(TURBOJPEG_SO_VERSION 0.2.0) + ############################################################################### + + if(MSVC) ++ set(CMAKE_EXE_LINKER_FLAGS "/MANIFEST:NO ${CMAKE_EXE_LINKER_FLAGS}") + option(WITH_CRT_DLL + "Link all ${CMAKE_PROJECT_NAME} libraries and executables with the C run-time DLL (msvcr*.dll) instead of the static C run-time library (libcmt*.lib.) The default is to use the C run-time DLL only with the libraries and executables that need it." + FALSE) From bb3c72ee4dcd2bad4609feb8efabf6afc5fafcad Mon Sep 17 00:00:00 2001 From: Davide Beatrici Date: Sat, 8 Sep 2018 20:33:05 +0200 Subject: [PATCH 15/30] buildenv/1.3.x/win32-static: update libogg from version 1.3.2 to 1.3.3 --- buildenv/1.3.x/win32-static/libogg.build | 33 +++++++++++-------- .../patches/libogg-static-VS2010-Zi.patch | 12 ------- 2 files changed, 19 insertions(+), 26 deletions(-) delete mode 100644 buildenv/1.3.x/win32-static/patches/libogg-static-VS2010-Zi.patch diff --git a/buildenv/1.3.x/win32-static/libogg.build b/buildenv/1.3.x/win32-static/libogg.build index 65c70b93..6e65c0c6 100755 --- a/buildenv/1.3.x/win32-static/libogg.build +++ b/buildenv/1.3.x/win32-static/libogg.build @@ -1,28 +1,27 @@ #!/usr/bin/env mumble-build -# Copyright 2013-2015 The 'mumble-releng' Authors. All rights reserved. +# Copyright 2013-2018 The 'mumble-releng' Authors. All rights reserved. # Use of this source code is governed by a BSD-style license that # can be found in the LICENSE file in the source tree or at # . urls=( - "http://releng-distfiles.mumble.info/releng-distfiles/libogg-1.3.2.tar.gz" - "http://downloads.xiph.org/releases/ogg/libogg-1.3.2.tar.gz" + "https://s3.amazonaws.com/mumble-releng-distfiles/libogg-1.3.3.tar.gz" + "https://downloads.xiph.org/releases/ogg/libogg-1.3.3.tar.gz" ) digests=( - "sha1:df7f3977bbeda67306bc2a427257dd7375319d7d" - "sha256:e19ee34711d7af328cb26287f4137e70630e7261b17cbe3cd41011d73a654692" + "sha1:28ba40fd2e2d41988f658a0016fa7b534e509bc0" + "sha256:c2e8a485110b97550f453226ec644ebac6cb29d1caef2902c007edab4308d985" + "blake2:7b229408df807da06a697e55a4c58599bae30ff57b6245f0e723a9896f29c48a98e6874d1147452cf5b4e992f21b3bd441b758e8743a250bc7fe552700a4ddc1" ) function extract { - tar -zxf libogg-1.3.2.tar.gz - cd libogg-1.3.2 + tar -zxf libogg-1.3.3.tar.gz + cd libogg-1.3.3 } function prepare { - patch -p1 < ${MUMBLE_BUILDENV_ROOT}/patches/libogg-static-vs2010-Zi.patch - - cd win32/VS2010 + cd win32/VS2015 if [ ${MUMBLE_BUILD_USE_LTCG} -eq 0 ]; then sed -i -e 's,true,,g' libogg_static.vcxproj fi @@ -36,11 +35,17 @@ function prepare { } function build { - # Generate config_types.h so we can use the MSVS2010 libogg with MinGW. + # Generate config_types.h so we can use the MSVS2015 libogg with MinGW. ./configure --host=i686-w64-mingw32 --prefix=${MUMBLE_SNDFILE_PREFIX} --disable-shared --enable-static - cd win32/VS2010 - cmd /c msbuild.exe libogg_static.sln /p:Configuration=${MUMBLE_BUILD_CONFIGURATION} /p:PlatformToolset=${MUMBLE_VSTOOLSET} + if [ "${ARCH}" == "x86" ]; then + VS_PLATFORM="Win32" + elif [ "${ARCH}" == "amd64" ]; then + VS_PLATFORM="x64" + fi + + cd win32/VS2015 + cmd /c msbuild.exe libogg_static.sln /p:Configuration=${MUMBLE_BUILD_CONFIGURATION} /p:Platform=${VS_PLATFORM} /p:PlatformToolset=${MUMBLE_VSTOOLSET} cd ../.. } @@ -54,7 +59,7 @@ function install { fi mkdir -p ${PREFIX}/lib - cp win32/VS2010/${VS_PLATFORM}/${MUMBLE_BUILD_CONFIGURATION}/libogg_static.lib ${PREFIX}/lib/ogg.lib + cp win32/VS2015/${VS_PLATFORM}/${MUMBLE_BUILD_CONFIGURATION}/libogg_static.lib ${PREFIX}/lib/ogg.lib mkdir -p ${PREFIX}/include/ogg cp include/ogg/*.h ${PREFIX}/include/ogg/ diff --git a/buildenv/1.3.x/win32-static/patches/libogg-static-VS2010-Zi.patch b/buildenv/1.3.x/win32-static/patches/libogg-static-VS2010-Zi.patch deleted file mode 100644 index 775d29b4..00000000 --- a/buildenv/1.3.x/win32-static/patches/libogg-static-VS2010-Zi.patch +++ /dev/null @@ -1,12 +0,0 @@ ---- ./win32/VS2010/libogg_static.vcxproj -+++ ./win32/VS2010/libogg_static.vcxproj -@@ -120,8 +120,7 @@ - - - Level4 -- -- -+ ProgramDatabase - CompileAsC - 4244;%(DisableSpecificWarnings) - Cdecl From cb39e06b42597474c0b7e512d6691f2d80693c9c Mon Sep 17 00:00:00 2001 From: Davide Beatrici Date: Sat, 1 Sep 2018 20:09:07 +0200 Subject: [PATCH 16/30] buildenv/1.3.x/win32-static: update libpng from version 1.6.28 to 1.6.35 --- buildenv/1.3.x/win32-static/libpng.build | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/buildenv/1.3.x/win32-static/libpng.build b/buildenv/1.3.x/win32-static/libpng.build index d2b218e2..38755258 100755 --- a/buildenv/1.3.x/win32-static/libpng.build +++ b/buildenv/1.3.x/win32-static/libpng.build @@ -1,23 +1,23 @@ #!/usr/bin/env mumble-build -# Copyright 2015 The 'mumble-releng' Authors. All rights reserved. +# Copyright 2015-2018 The 'mumble-releng' Authors. All rights reserved. # Use of this source code is governed by a BSD-style license that # can be found in the LICENSE file in the source tree or at # . urls=( - "http://releng-distfiles.mumble.info/releng-distfiles/libpng-1.6.28.tar.gz" - "http://downloads.sourceforge.net/project/libpng/libpng16/1.6.28/libpng-1.6.28.tar.gz" + "https://s3.amazonaws.com/mumble-releng-distfiles/libpng-1.6.35.tar.gz" + "https://downloads.sourceforge.net/project/libpng/libpng16/1.6.35/libpng-1.6.35.tar.gz" ) digests=( - "sha1:004556d65f21baed83755f8e094112711e39ebae" - "sha256:b6cec903e74e9fdd7b5bbcde0ab2415dd12f2f9e84d9e4d9ddd2ba26a41623b2" - "blake2:e2bfd1358cff076beb310606baf8be8c251ab800f166d6cc59f46b9ea65e30f42ac2da24dfc18d4974c775f9838668dbdb721fdaa6ddce5d1aba552d4aeed590" + "sha1:9894e5a7764cdc15b8dadbb4912b083b8a08d531" + "sha256:2b82ab3e996803b80bc73206857e826a155d3ebb374e8eb03a87a63c6f672cf7" + "blake2:c95a2da7fe146cd532d720ddc61190318663a500787b733fb5729b4d0e64d46ae4628af732c614a4f9f5a46916b260ddaa5ba2541a34d24572c9fffbf7d976b9" ) function extract { - tar -zxf libpng-1.6.28.tar.gz - cd libpng-1.6.28 + tar -zxf libpng-1.6.35.tar.gz + cd libpng-1.6.35 } function prepare { From 428487a0ccd4fe5375dab0549ec4cb37d4a87a30 Mon Sep 17 00:00:00 2001 From: Davide Beatrici Date: Sat, 1 Sep 2018 20:14:49 +0200 Subject: [PATCH 17/30] buildenv/1.3.x/win32-static: update libsndfile links --- buildenv/1.3.x/win32-static/libsndfile.build | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/buildenv/1.3.x/win32-static/libsndfile.build b/buildenv/1.3.x/win32-static/libsndfile.build index c6b39392..46975897 100755 --- a/buildenv/1.3.x/win32-static/libsndfile.build +++ b/buildenv/1.3.x/win32-static/libsndfile.build @@ -1,11 +1,11 @@ #!/usr/bin/env mumble-build -# Copyright 2013-2014 The 'mumble-releng' Authors. All rights reserved. +# Copyright 2013-2018 The 'mumble-releng' Authors. All rights reserved. # Use of this source code is governed by a BSD-style license that # can be found in the LICENSE file in the source tree or at # . urls=( - "http://releng-distfiles.mumble.info/releng-distfiles/libsndfile-1.0.28.tar.gz" + "https://s3.amazonaws.com/mumble-releng-distfiles/libsndfile-1.0.28.tar.gz" "http://www.mega-nerd.com/libsndfile/files/libsndfile-1.0.28.tar.gz" ) From 98f9facc693fab34d287255799461a85956a79b5 Mon Sep 17 00:00:00 2001 From: Davide Beatrici Date: Sat, 8 Sep 2018 20:37:28 +0200 Subject: [PATCH 18/30] buildenv/1.3.x/win32-static: update libvorbis from version 1.3.5 to 1.3.6 --- buildenv/1.3.x/win32-static/libvorbis.build | 22 +++++++++++++------ .../patches/libvorbis-mumblebuild-props.patch | 6 ++--- 2 files changed, 18 insertions(+), 10 deletions(-) diff --git a/buildenv/1.3.x/win32-static/libvorbis.build b/buildenv/1.3.x/win32-static/libvorbis.build index 92b6a679..2c707add 100755 --- a/buildenv/1.3.x/win32-static/libvorbis.build +++ b/buildenv/1.3.x/win32-static/libvorbis.build @@ -1,21 +1,23 @@ #!/usr/bin/env mumble-build -# Copyright 2013-2014 The 'mumble-releng' Authors. All rights reserved. +# Copyright 2013-2018 The 'mumble-releng' Authors. All rights reserved. # Use of this source code is governed by a BSD-style license that # can be found in the LICENSE file in the source tree or at # . urls=( - "http://releng-distfiles.mumble.info/releng-distfiles/libvorbis-1.3.5.tar.gz" - "http://downloads.xiph.org/releases/vorbis/libvorbis-1.3.5.tar.gz" + "https://s3.amazonaws.com/mumble-releng-distfiles/libvorbis-1.3.6.tar.gz" + "https://downloads.xiph.org/releases/vorbis/libvorbis-1.3.6.tar.gz" ) digests=( - "sha256:6efbcecdd3e5dfbf090341b485da9d176eb250d893e3eb378c428a2db38301ce" + "sha1:91f140c220d1fe3376d637dc5f3d046263784b1f" + "sha256:6ed40e0241089a42c48604dc00e362beee00036af2d8b3f46338031c9e0351cb" + "blake2:a05f1d8b3c7f44b5969b58fc9784c8e775ff5bae165f871c242b731d429293d6daa45e3ad1dfb4fcf0aa8e0290285cf87d88a961decb8cde4c28e9a9a9357ae5" ) function extract { - tar -zxf libvorbis-1.3.5.tar.gz - cd libvorbis-1.3.5 + tar -zxf libvorbis-1.3.6.tar.gz + cd libvorbis-1.3.6 } function prepare { @@ -35,8 +37,14 @@ function prepare { } function build { + if [ "${ARCH}" == "x86" ]; then + VS_PLATFORM="Win32" + elif [ "${ARCH}" == "amd64" ]; then + VS_PLATFORM="x64" + fi + cd win32/VS2010 - cmd /c msbuild.exe vorbis_static.sln /p:Configuration=${MUMBLE_BUILD_CONFIGURATION} /p:PlatformToolset=${MUMBLE_VSTOOLSET} + cmd /c msbuild.exe vorbis_static.sln /p:Configuration=${MUMBLE_BUILD_CONFIGURATION} /p:Platform=${VS_PLATFORM} /p:PlatformToolset=${MUMBLE_VSTOOLSET} cd ../.. } diff --git a/buildenv/1.3.x/win32-static/patches/libvorbis-mumblebuild-props.patch b/buildenv/1.3.x/win32-static/patches/libvorbis-mumblebuild-props.patch index 56fe8ed8..7b430670 100644 --- a/buildenv/1.3.x/win32-static/patches/libvorbis-mumblebuild-props.patch +++ b/buildenv/1.3.x/win32-static/patches/libvorbis-mumblebuild-props.patch @@ -4,8 +4,8 @@  -- 1.2.0 -+ 1.3.2 +- 1.3.2 ++ 1.3.3 <_ProjectFileVersion>10.0.30319.1 @@ -13,6 +13,6 @@ + ProgramDatabase - ..\..\..\..\libogg-$(LIBOGG_VERSION)\include;..\..\..\..\ogg\include;..\..\..\..\..\..\..\core\ogg\libogg\include;%(AdditionalIncludeDirectories) + ..\..\..\..\libogg-$(LIBOGG_VERSION)\include;..\..\..\..\libogg\include;..\..\..\..\..\..\..\core\ogg\libogg\include;%(AdditionalIncludeDirectories) From df8af83607831460af09b5163e33e16039b9e7cc Mon Sep 17 00:00:00 2001 From: Davide Beatrici Date: Sun, 9 Sep 2018 21:19:42 +0200 Subject: [PATCH 19/30] buildenv/1.3.x/win32-static: update MariaDB Connector/C from version 2.3.2 to 3.0.6 --- .../1.3.x/win32-static/mariadb-client.build | 33 +++++++---------- ...iadb-connector-c-3.0.6-cmake-cmp0074.patch | 11 ++++++ ...adb-connector-c-3.0.6-cmake-pdb-path.patch | 11 ++++++ ...tor-c-3.0.6-ensure-MultiThreadedDLL.patch} | 2 +- ...adb-connector-c-3.0.6-win32-link-fix.patch | 37 +++++++++++++++++++ 5 files changed, 73 insertions(+), 21 deletions(-) create mode 100644 buildenv/1.3.x/win32-static/patches/mariadb-connector-c-3.0.6-cmake-cmp0074.patch create mode 100644 buildenv/1.3.x/win32-static/patches/mariadb-connector-c-3.0.6-cmake-pdb-path.patch rename buildenv/1.3.x/win32-static/patches/{mariadb-connector-c-2.1.1-ensure-MultiThreadedDLL.patch => mariadb-connector-c-3.0.6-ensure-MultiThreadedDLL.patch} (94%) create mode 100644 buildenv/1.3.x/win32-static/patches/mariadb-connector-c-3.0.6-win32-link-fix.patch diff --git a/buildenv/1.3.x/win32-static/mariadb-client.build b/buildenv/1.3.x/win32-static/mariadb-client.build index ebcb164c..6ac89673 100755 --- a/buildenv/1.3.x/win32-static/mariadb-client.build +++ b/buildenv/1.3.x/win32-static/mariadb-client.build @@ -1,40 +1,33 @@ #!/usr/bin/env mumble-build -# Copyright 2013-2015 The 'mumble-releng' Authors. All rights reserved. +# Copyright 2013-2018 The 'mumble-releng' Authors. All rights reserved. # Use of this source code is governed by a BSD-style license that # can be found in the LICENSE file in the source tree or at # . urls=( - "http://releng-distfiles.mumble.info/releng-distfiles/mariadb-connector-c-2.3.2-src.tar.gz" - "https://downloads.mariadb.org/f/connector-c-2.3.2/mariadb-connector-c-2.3.2-src.tar.gz" + "https://s3.amazonaws.com/mumble-releng-distfiles/mariadb-connector-c-3.0.6-src.tar.gz" + "https://downloads.mariadb.org/f/connector-c-3.0.6/mariadb-connector-c-3.0.6-src.tar.gz" ) digests=( - "sha1:f114087dae2371c8a402c3d15893bc1c870b7810" - "sha256:4063c8655dc37608d4eade981e25b76f67f5d36e8426dc7f20d59e48ebba628a" - "blake2:d1814d825e325e85b5fdb5c60515595534727a59e8d67d111e184a31433ba63d37fba7b98fb865f55c37e18a4142acffb637251bb9472d4a1cee43bcc7acf2e9" + "sha1:2cd90593ece987e3367b42d22acd4756478f8614" + "sha256:2b2d18dc969dc385f7f740e4db112300e11bc626c9ba9aa05c284704095b9e48" + "blake2:7245c0e13e569454d1cc70e3579afcbd53c64a0a7e828012b38d73f7d737a81b4fdf0363bd1b156dae783806a51773dbceb2ea06621bd4a73773edb78a70249a" ) function extract { - tar -zxf mariadb-connector-c-2.3.2-src.tar.gz - cd mariadb-connector-c-2.3.2-src + tar -zxf mariadb-connector-c-3.0.6-src.tar.gz + cd mariadb-connector-c-3.0.6-src } function prepare { - # Avoid resetting the CMAKE_INSTALL_PREFIX to empty string - # on Windows. - sed -i -e 's, SET(CMAKE_INSTALL_PREFIX ""),,g' CMakeLists.txt - - # Our static OpenSSL has the e_capi (CryptoAPI) engine - # linked in. This adds a depedency on crypt32.lib. - # We seemingly can't easily disable the .DLL from building, - # so we'll just add crypt32.lib as a dependant library. - sed -i -e 's,ws2_32,ws2_32 crypt32,g' CMakeLists.txt - # Do not build an installer for us. sed -i -e 's,ADD_SUBDIRECTORY(win/packaging),,g' CMakeLists.txt - patch -p1 < ${MUMBLE_BUILDENV_ROOT}/patches/mariadb-connector-c-2.1.1-ensure-MultiThreadedDLL.patch + patch -p1 < ${MUMBLE_BUILDENV_ROOT}/patches/mariadb-connector-c-3.0.6-cmake-cmp0074.patch + patch -p1 < ${MUMBLE_BUILDENV_ROOT}/patches/mariadb-connector-c-3.0.6-win32-link-fix.patch + patch -p1 < ${MUMBLE_BUILDENV_ROOT}/patches/mariadb-connector-c-3.0.6-cmake-pdb-path.patch + patch -p1 < ${MUMBLE_BUILDENV_ROOT}/patches/mariadb-connector-c-3.0.6-ensure-MultiThreadedDLL.patch } function build { @@ -44,7 +37,7 @@ function build { BUILD_TYPE="Debug" fi - cmd /c $(cygpath -w ${MUMBLE_PREFIX}/cmake/bin/cmake.exe) -G "NMake Makefiles" -DCMAKE_BUILD_TYPE=${BUILD_TYPE} -DCMAKE_INSTALL_PREFIX=$(cygpath -w ${MUMBLE_PREFIX}/mariadbclient) -DWITH_EXTERNAL_ZLIB=on -DZLIB_ROOT=$(cygpath -w ${MUMBLE_PREFIX}/zlib) -DWITH_OPENSSL=on -DOPENSSL_ROOT_DIR=$(cygpath -w ${MUMBLE_PREFIX}/OpenSSL) + cmd /c $(cygpath -w ${MUMBLE_PREFIX}/cmake/bin/cmake.exe) -G "NMake Makefiles" -DCMAKE_BUILD_TYPE=${BUILD_TYPE} -DCMAKE_INSTALL_PREFIX=$(cygpath -w ${MUMBLE_PREFIX}/mariadbclient) -DWITH_SSL=OPENSSL -DWITH_EXTERNAL_ZLIB=on -DZLIB_ROOT=$(cygpath -w ${MUMBLE_PREFIX}/zlib) cmd /c nmake } diff --git a/buildenv/1.3.x/win32-static/patches/mariadb-connector-c-3.0.6-cmake-cmp0074.patch b/buildenv/1.3.x/win32-static/patches/mariadb-connector-c-3.0.6-cmake-cmp0074.patch new file mode 100644 index 00000000..36fa0aa0 --- /dev/null +++ b/buildenv/1.3.x/win32-static/patches/mariadb-connector-c-3.0.6-cmake-cmp0074.patch @@ -0,0 +1,11 @@ +--- ./CMakeLists.txt ++++ ./CMakeLists.txt +@@ -5,7 +5,7 @@ + CMAKE_MINIMUM_REQUIRED(VERSION 2.8 FATAL_ERROR) + INCLUDE(CheckFunctionExists) + IF(COMMAND CMAKE_POLICY) +- SET(NEW_POLICIES CMP0003 CMP0022 CMP0023) ++ SET(NEW_POLICIES CMP0003 CMP0022 CMP0023 CMP0074) + FOREACH(TYPE OLD NEW) + FOREACH(P ${${TYPE}_POLICIES}) + IF(POLICY ${P}) diff --git a/buildenv/1.3.x/win32-static/patches/mariadb-connector-c-3.0.6-cmake-pdb-path.patch b/buildenv/1.3.x/win32-static/patches/mariadb-connector-c-3.0.6-cmake-pdb-path.patch new file mode 100644 index 00000000..7eef5d7d --- /dev/null +++ b/buildenv/1.3.x/win32-static/patches/mariadb-connector-c-3.0.6-cmake-pdb-path.patch @@ -0,0 +1,11 @@ +--- ./libmariadb/CMakeLists.txt ++++ ./libmariadb/CMakeLists.txt +@@ -450,7 +450,7 @@ INSTALL(TARGETS libmariadb + + IF(WIN32) + IF(${CMAKE_BUILD_TYPE} STREQUAL "RelWithDebInfo") +- SET(PDB_LOCATION ${CC_BINARY_DIR}/libmariadb/RelWIthDebInfo/libmariadb.pdb) ++ SET(PDB_LOCATION ${CC_BINARY_DIR}/libmariadb/libmariadb.pdb) + INSTALL(FILES ${PDB_LOCATION} DESTINATION "${INSTALL_LIBDIR}" + COMPONENT Development) + ENDIF() diff --git a/buildenv/1.3.x/win32-static/patches/mariadb-connector-c-2.1.1-ensure-MultiThreadedDLL.patch b/buildenv/1.3.x/win32-static/patches/mariadb-connector-c-3.0.6-ensure-MultiThreadedDLL.patch similarity index 94% rename from buildenv/1.3.x/win32-static/patches/mariadb-connector-c-2.1.1-ensure-MultiThreadedDLL.patch rename to buildenv/1.3.x/win32-static/patches/mariadb-connector-c-3.0.6-ensure-MultiThreadedDLL.patch index 056e605b..82d79aa7 100644 --- a/buildenv/1.3.x/win32-static/patches/mariadb-connector-c-2.1.1-ensure-MultiThreadedDLL.patch +++ b/buildenv/1.3.x/win32-static/patches/mariadb-connector-c-3.0.6-ensure-MultiThreadedDLL.patch @@ -1,6 +1,6 @@ --- ./CMakeLists.txt +++ ./CMakeLists.txt -@@ -45,7 +45,6 @@ IF(MSVC) +@@ -111,7 +111,6 @@ FOREACH(COMPILER CXX C) SET(COMPILER_FLAGS "${CMAKE_${COMPILER}_FLAGS_${BUILD_TYPE}}") IF (NOT COMPILER_FLAGS STREQUAL "") diff --git a/buildenv/1.3.x/win32-static/patches/mariadb-connector-c-3.0.6-win32-link-fix.patch b/buildenv/1.3.x/win32-static/patches/mariadb-connector-c-3.0.6-win32-link-fix.patch new file mode 100644 index 00000000..a910c794 --- /dev/null +++ b/buildenv/1.3.x/win32-static/patches/mariadb-connector-c-3.0.6-win32-link-fix.patch @@ -0,0 +1,37 @@ +--- ./CMakeLists.txt ++++ ./CMakeLists.txt +@@ -319,6 +319,8 @@ IF(NOT WITH_SSL STREQUAL "OFF") + SET(SSL_LIBRARIES secur32) + SET(TLS_LIBRARY_VERSION "Schannel ${CMAKE_SYSTEM_VERSION}") + ENDIF() ++ ++ SET(SSL_LIBRARIES ${SSL_LIBRARIES} crypt32) + ENDIF() + MESSAGE1(TLS_LIBRARY_VERSION "TLS library/version: ${TLS_LIBRARY_VERSION}") + +@@ -339,7 +341,7 @@ CONFIGURE_FILE(${CC_SOURCE_DIR}/include/ + INCLUDE_DIRECTORIES(${CC_BINARY_DIR}/include) + + IF(WIN32) +- SET(SYSTEM_LIBS ws2_32 advapi32 kernel32 shlwapi crypt32) ++ SET(SYSTEM_LIBS ws2_32 advapi32 kernel32 shlwapi ${LIBZ}) + ELSE() + SET(SYSTEM_LIBS ${SYSTEM_LIBS} ${LIBPTHREAD} ${LIBDL} ${LIBM}) + IF(ICONV_EXTERNAL) + +--- ./plugins/auth/CMakeLists.txt ++++ ./plugins/auth/CMakeLists.txt +@@ -39,11 +39,8 @@ IF(GSSAPI_SOURCES) + ENDIF() + + IF(${WITH_SSL} STREQUAL "OPENSSL" OR ${WITH_SSL} STREQUAL "SCHANNEL") +- IF(WIN32) +- SET(SHA256_LIBS crypt32) +- ELSE() +- SET(SHA256_LIBS ${SSL_LIBRARIES}) +- ENDIF() ++ SET(SHA256_LIBS ${SSL_LIBRARIES}) ++ + REGISTER_PLUGIN(TARGET sha256_password + TYPE MARIADB_CLIENT_PLUGIN_AUTH + CONFIGURATIONS DYNAMIC STATIC OFF From d353b5ad3f4d6d2152e5b595e16bc91a3edbfa3f Mon Sep 17 00:00:00 2001 From: Davide Beatrici Date: Sat, 1 Sep 2018 20:43:57 +0200 Subject: [PATCH 20/30] buildenv/1.3.x/win32-static: update NASM from version 2.11 to 2.13 --- buildenv/1.3.x/win32-static/nasm.build | 15 ++++++++------- 1 file changed, 8 insertions(+), 7 deletions(-) diff --git a/buildenv/1.3.x/win32-static/nasm.build b/buildenv/1.3.x/win32-static/nasm.build index 82acfdcb..b050c3db 100755 --- a/buildenv/1.3.x/win32-static/nasm.build +++ b/buildenv/1.3.x/win32-static/nasm.build @@ -1,22 +1,23 @@ #!/usr/bin/env mumble-build -# Copyright 2013-2014 The 'mumble-releng' Authors. All rights reserved. +# Copyright 2013-2018 The 'mumble-releng' Authors. All rights reserved. # Use of this source code is governed by a BSD-style license that # can be found in the LICENSE file in the source tree or at # . urls=( - "http://releng-distfiles.mumble.info/releng-distfiles/nasm-2.11-win32.zip" - "http://www.nasm.us/pub/nasm/releasebuilds/2.11/win32/nasm-2.11-win32.zip" + "https://s3.amazonaws.com/mumble-releng-distfiles/nasm-2.13-win32.zip" + "https://www.nasm.us/pub/nasm/releasebuilds/2.13/win32/nasm-2.13-win32.zip" ) digests=( - "sha1:d02cd111fc74daaf901a714d4d325fef5f769224" - "sha256:abcad8089bdf03c10e0cd621415ae71cd8289d346000ee8b1e8aaf27f6d98de9" + "sha1:2211e41a4123bb4c47eafe9c62341e5d47a9b045" + "sha256:8058831e3f251fa1f7b59ad38597687aee837972f97186bc579bfc7828b3e295" + "blake2:b7453bd0db91e60414a578df947d75d007a99c278fd38082ea774b7b88539fb1d9ad7b21534d7cd7ecb530e94877a6b702101b5f7d54a616653478fad95a3e25" ) function extract { - unzip -q -o nasm-2.11-win32.zip - cd nasm-2.11 + unzip -q -o nasm-2.13-win32.zip + cd nasm-2.13 } function build { From 2009845d992f18bad192fce6ff2cf5aabeb913ea Mon Sep 17 00:00:00 2001 From: Davide Beatrici Date: Wed, 5 Sep 2018 23:22:58 +0200 Subject: [PATCH 21/30] buildenv/1.3.x/win32-static: update OpenSSL from version 1.0.2k to 1.0.2p --- buildenv/1.3.x/win32-static/openssl.build | 15 ++++++++------- 1 file changed, 8 insertions(+), 7 deletions(-) mode change 100755 => 100644 buildenv/1.3.x/win32-static/openssl.build diff --git a/buildenv/1.3.x/win32-static/openssl.build b/buildenv/1.3.x/win32-static/openssl.build old mode 100755 new mode 100644 index 465ff279..f8b31b0f --- a/buildenv/1.3.x/win32-static/openssl.build +++ b/buildenv/1.3.x/win32-static/openssl.build @@ -1,22 +1,23 @@ #!/usr/bin/env mumble-build -# Copyright 2013-2017 The 'mumble-releng' Authors. All rights reserved. +# Copyright 2013-2018 The 'mumble-releng' Authors. All rights reserved. # Use of this source code is governed by a BSD-style license that # can be found in the LICENSE file in the source tree or at # . urls=( - "http://releng-distfiles.mumble.info/releng-distfiles/openssl-1.0.2k.tar.gz" - "http://www.openssl.org/source/openssl-1.0.2k.tar.gz" + "https://s3.amazonaws.com/mumble-releng-distfiles/openssl-1.0.2p.tar.gz" + "https://www.openssl.org/source/openssl-1.0.2p.tar.gz" ) digests=( - "sha1:5f26a624479c51847ebd2f22bb9f84b3b44dcb44" - "sha256:6b3977c61f2aedf0f96367dcfb5c6e578cf37e7b8d913b4ecb6643c3cb88d8c0" + "sha1:f34b5322e92415755c7d58bf5d0d5cf37666382c" + "sha256:50a98e07b1a89eb8f6a99477f262df71c6fa7bef77df4dc83025a2845c827d00" + "blake2:fe4c0e2bf75d47a76e7377c7977be7bcaaa532061ab89ee989786eeb6495295711a29a88bf026c85d9ed55c97e71b0e9c8cf4c29b6e58a3dc56bcff518666823" ) function extract { - tar -zxf openssl-1.0.2k.tar.gz - cd openssl-1.0.2k + tar -zxf openssl-1.0.2p.tar.gz + cd openssl-1.0.2p } function build { From 48e908918853607a59b8927fd913c1ec2d492588 Mon Sep 17 00:00:00 2001 From: Davide Beatrici Date: Wed, 3 Oct 2018 21:48:37 +0200 Subject: [PATCH 22/30] buildenv/1.3.x/win32-static: update PCRE from version 8.40 to 10.31 (PCRE2) --- ...fix-cmake-option-pcre-static-runtime.patch | 13 --------- .../pcre2-10.31-cmake-no-debug-postfix.patch | 14 +++++++++ ...ch => pcre2-10.31-cmake-policy-0026.patch} | 9 +++--- buildenv/1.3.x/win32-static/pcre.build | 29 +++++++++---------- 4 files changed, 32 insertions(+), 33 deletions(-) delete mode 100644 buildenv/1.3.x/win32-static/patches/pcre-8.40-fix-cmake-option-pcre-static-runtime.patch create mode 100644 buildenv/1.3.x/win32-static/patches/pcre2-10.31-cmake-no-debug-postfix.patch rename buildenv/1.3.x/win32-static/patches/{pcre-8.39-cmake-policy-0026.patch => pcre2-10.31-cmake-policy-0026.patch} (72%) diff --git a/buildenv/1.3.x/win32-static/patches/pcre-8.40-fix-cmake-option-pcre-static-runtime.patch b/buildenv/1.3.x/win32-static/patches/pcre-8.40-fix-cmake-option-pcre-static-runtime.patch deleted file mode 100644 index fa2d1065..00000000 --- a/buildenv/1.3.x/win32-static/patches/pcre-8.40-fix-cmake-option-pcre-static-runtime.patch +++ /dev/null @@ -1,13 +0,0 @@ -For compatibility with newer CMakes. - ---- ./CMakeLists.txt -+++ ./CMakeLists.txt -@@ -191,7 +193,7 @@ IF (MINGW) - ENDIF(MINGW) - - IF(MSVC) -- OPTION(PCRE_STATIC_RUNTIME OFF CACHE BOOL -+ OPTION(PCRE_STATIC_RUNTIME - "ON=Compile against the static runtime (/MT)." - OFF) - OPTION(INSTALL_MSVC_PDB diff --git a/buildenv/1.3.x/win32-static/patches/pcre2-10.31-cmake-no-debug-postfix.patch b/buildenv/1.3.x/win32-static/patches/pcre2-10.31-cmake-no-debug-postfix.patch new file mode 100644 index 00000000..3c8e80c3 --- /dev/null +++ b/buildenv/1.3.x/win32-static/patches/pcre2-10.31-cmake-no-debug-postfix.patch @@ -0,0 +1,14 @@ +--- ./CMakeLists.txt ++++ ./CMakeLists.txt +@@ -510,11 +510,6 @@ IF(MSVC) + ENDIF(MSVC) + + SET(CMAKE_INCLUDE_CURRENT_DIR 1) +-# needed to make sure to not link debug libs +-# against release libs and vice versa +-IF(WIN32) +- SET(CMAKE_DEBUG_POSTFIX "d") +-ENDIF(WIN32) + + SET(targets) + diff --git a/buildenv/1.3.x/win32-static/patches/pcre-8.39-cmake-policy-0026.patch b/buildenv/1.3.x/win32-static/patches/pcre2-10.31-cmake-policy-0026.patch similarity index 72% rename from buildenv/1.3.x/win32-static/patches/pcre-8.39-cmake-policy-0026.patch rename to buildenv/1.3.x/win32-static/patches/pcre2-10.31-cmake-policy-0026.patch index 8814d99f..e63e8be0 100644 --- a/buildenv/1.3.x/win32-static/patches/pcre-8.39-cmake-policy-0026.patch +++ b/buildenv/1.3.x/win32-static/patches/pcre2-10.31-cmake-policy-0026.patch @@ -1,13 +1,14 @@ --- ./CMakeLists.txt +++ ./CMakeLists.txt -@@ -73,7 +73,9 @@ PROJECT(PCRE C CXX) +@@ -87,7 +87,10 @@ PROJECT(PCRE2 C) # CMP0026 to avoid warnings for the use of LOCATION in GET_TARGET_PROPERTY. CMAKE_MINIMUM_REQUIRED(VERSION 2.8.0) -CMAKE_POLICY(SET CMP0026 OLD) -+if(POLICY CMP0026) -+ cmake_policy(SET CMP0026 OLD) -+endif() ++ ++IF(POLICY CMP0026) ++ CMAKE_POLICY(SET CMP0026 OLD) ++ENDIF() SET(CMAKE_MODULE_PATH ${PROJECT_SOURCE_DIR}/cmake) # for FindReadline.cmake diff --git a/buildenv/1.3.x/win32-static/pcre.build b/buildenv/1.3.x/win32-static/pcre.build index 7fe4c434..fc5b27f8 100755 --- a/buildenv/1.3.x/win32-static/pcre.build +++ b/buildenv/1.3.x/win32-static/pcre.build @@ -1,28 +1,28 @@ #!/usr/bin/env mumble-build -# Copyright 2016 The 'mumble-releng' Authors. All rights reserved. +# Copyright 2016-2018 The 'mumble-releng' Authors. All rights reserved. # Use of this source code is governed by a BSD-style license that # can be found in the LICENSE file in the source tree or at # . urls=( - "http://releng-distfiles.mumble.info/releng-distfiles/pcre-8.40.tar.gz" - "https://ftp.pcre.org/pub/pcre/pcre-8.40.tar.gz" + "https://s3.amazonaws.com/mumble-releng-distfiles/pcre2-10.31.tar.gz" + "https://ftp.pcre.org/pub/pcre/pcre2-10.31.tar.gz" ) digests=( - "sha1:10384eb3d411794cc15f55b9d837d3f69e35391e" - "sha256:1d75ce90ea3f81ee080cdc04e68c9c25a9fb984861a0618be7bbf676b18eda3e" - "blake2:47b0bf4265b45660c60ff5a3647a296ba1176288a7c5d18ee5a0c0817ea3df2802b14316baf579ba6694f8a64a78a0add01eff72191e7fab7165cf50a73b555c" + "sha1:7a77476a908c16cb26ad8a26363b67f00c8303bd" + "sha256:e11ebd99dd23a7bccc9127d95d9978101b5f3cf0a6e7d25a1b1ca165a97166c4" + "blake2:5b2c60d4152c9a54d59f0d2969a0be55efea84a1579626142135310c266d1580d22ed5d0cebd96ffa66c85ea23255df5b8702045fced1765c363b48d69c0b0fd" ) function extract { - tar -zxf pcre-8.40.tar.gz - cd pcre-8.40 + tar -zxf pcre2-10.31.tar.gz + cd pcre2-10.31 } function prepare { - patch -p1 < ${MUMBLE_BUILDENV_ROOT}/patches/pcre-8.39-cmake-policy-0026.patch - patch -p1 < ${MUMBLE_BUILDENV_ROOT}/patches/pcre-8.40-fix-cmake-option-pcre-static-runtime.patch + patch -p1 < ${MUMBLE_BUILDENV_ROOT}/patches/pcre2-10.31-cmake-policy-0026.patch + patch -p1 < ${MUMBLE_BUILDENV_ROOT}/patches/pcre2-10.31-cmake-no-debug-postfix.patch } function build { @@ -31,15 +31,12 @@ function build { elif [ "${MUMBLE_BUILD_CONFIGURATION}" == "Debug" ]; then BUILD_TYPE="Debug" fi - cmd /c $(cygpath -w ${MUMBLE_PREFIX}/cmake/bin/cmake.exe) -G "NMake Makefiles" -DBUILD_SHARED_LIBS=0 -DPCRE_BUILD_PCRE8=0 -DPCRE_BUILD_PCRE16=1 -DPCRE_BUILD_PCRE32=0 -DPCRE_SUPPORT_UTF=1 -DPCRE_BUILD_PCRECPP=0 -DCMAKE_BUILD_TYPE=${BUILD_TYPE} -DPCRE_STATIC_RUNTIME=OFF -DCMAKE_INSTALL_PREFIX=$(cygpath -w ${MUMBLE_PREFIX}/pcre) + + cmd /c $(cygpath -w ${MUMBLE_PREFIX}/cmake/bin/cmake.exe) -G "NMake Makefiles" -DPCRE2_BUILD_PCRE2_8=OFF -DPCRE2_BUILD_PCRE2_16=ON -DPCRE2_BUILD_PCRE2_32=OFF -DCMAKE_BUILD_TYPE=${BUILD_TYPE} -DCMAKE_INSTALL_PREFIX=$(cygpath -w ${MUMBLE_PREFIX}/pcre) + cmd /c nmake } function install { cmd /c nmake install - - # XXX: maybe we should patch the CMakeLists to avoid setting CMAKE_DEBUG_POSTFIX instead? - if [ "${MUMBLE_BUILD_CONFIGURATION}" == "Debug" ]; then - mv "${MUMBLE_PREFIX}/pcre/lib/pcre16d.lib" "${MUMBLE_PREFIX}/pcre/lib/pcre16.lib" - fi } From 0c797610d28d69dd271c1cf09faa8b788fae9aa1 Mon Sep 17 00:00:00 2001 From: Davide Beatrici Date: Sat, 1 Sep 2018 21:18:20 +0200 Subject: [PATCH 23/30] buildenv/1.3.x/win32-static: update Strawberry Perl from version 5.20.2.1 to 5.28.0.1 --- buildenv/1.3.x/win32-static/perl.build | 19 ++++++++++--------- 1 file changed, 10 insertions(+), 9 deletions(-) diff --git a/buildenv/1.3.x/win32-static/perl.build b/buildenv/1.3.x/win32-static/perl.build index 3181d3bf..16a0d178 100755 --- a/buildenv/1.3.x/win32-static/perl.build +++ b/buildenv/1.3.x/win32-static/perl.build @@ -1,25 +1,26 @@ #!/usr/bin/env mumble-build -# Copyright 2015 The 'mumble-releng' Authors. All rights reserved. +# Copyright 2015-2018 The 'mumble-releng' Authors. All rights reserved. # Use of this source code is governed by a BSD-style license that # can be found in the LICENSE file in the source tree or at # . urls=( - "http://releng-distfiles.mumble.info/releng-distfiles/strawberry-perl-5.20.2.1-64bit-portable.zip" - "http://strawberryperl.com/download/5.20.2.1/strawberry-perl-5.20.2.1-64bit-portable.zip" + "https://s3.amazonaws.com/mumble-releng-distfiles/strawberry-perl-5.28.0.1-64bit-portable.zip" + "http://strawberryperl.com/download/5.28.0.1/strawberry-perl-5.28.0.1-64bit-portable.zip" ) digests=( - "sha1:1ea4197f81f7391b91c70336172f448ecf0dea04" - "sha256:2344b45c3a259dab5797e229f7dde0a87ef10db94d6de74661bc081d9dc4ea1e" + "sha1:22a773ae058119a02577e97447fa298926cee67e" + "sha256:dcdc5f4d54e6def73a472bbd4820aa7a22d336f6004fc35e180818f3d388c7e1" + "blake2:798639da7f6b5eca7d934399ee7f786b4cfceb983bfda883f9566857d7ca1d5f0b4d1f1090c7afd3ec30d504612b323fecbf041c06a9cb613de1f01852c89109" ) function extract { # The Strawberry Perl portable ZIP has no root folder inside # the ZIP. We create one before unzipping it. - mkdir -p strawberry-perl-5.20.2.1-64bit-portable - cd strawberry-perl-5.20.2.1-64bit-portable - unzip -q -o ../strawberry-perl-5.20.2.1-64bit-portable.zip + mkdir -p strawberry-perl-5.28.0.1-64bit-portable + cd strawberry-perl-5.28.0.1-64bit-portable + unzip -q -o ../strawberry-perl-5.28.0.1-64bit-portable.zip cd .. } @@ -29,5 +30,5 @@ function build { function install { rm -rf ${MUMBLE_PERL_PREFIX} - cp -R strawberry-perl-5.20.2.1-64bit-portable ${MUMBLE_PERL_PREFIX} + cp -R strawberry-perl-5.28.0.1-64bit-portable ${MUMBLE_PERL_PREFIX} } From 948c3febf021ef07756e3dab3fb3cf665ccfebe8 Mon Sep 17 00:00:00 2001 From: Davide Beatrici Date: Fri, 7 Sep 2018 00:58:11 +0200 Subject: [PATCH 24/30] buildenv/1.3.x/win32-static: update protobuf from version 3.2.0 to 3.6.1 --- ...unused-parameter-warnings-in-headers.patch | 182 ++++++++++++++++++ buildenv/1.3.x/win32-static/protobuf.build | 19 +- 2 files changed, 194 insertions(+), 7 deletions(-) create mode 100644 buildenv/1.3.x/win32-static/patches/protobuf-3.6.1-fix-unused-parameter-warnings-in-headers.patch diff --git a/buildenv/1.3.x/win32-static/patches/protobuf-3.6.1-fix-unused-parameter-warnings-in-headers.patch b/buildenv/1.3.x/win32-static/patches/protobuf-3.6.1-fix-unused-parameter-warnings-in-headers.patch new file mode 100644 index 00000000..575d73c3 --- /dev/null +++ b/buildenv/1.3.x/win32-static/patches/protobuf-3.6.1-fix-unused-parameter-warnings-in-headers.patch @@ -0,0 +1,182 @@ +--- ./src/google/protobuf/arenastring.h ++++ ./src/google/protobuf/arenastring.h +@@ -172,27 +172,8 @@ struct LIBPROTOBUF_EXPORT ArenaStringPtr + std::swap(ptr_, other->ptr_); + } + GOOGLE_PROTOBUF_ATTRIBUTE_ALWAYS_INLINE void Swap( +- ArenaStringPtr* other, const ::std::string* default_value, Arena* arena) { +-#ifndef NDEBUG +- // For debug builds, we swap the contents of the string, rather than the +- // string instances themselves. This invalidates previously taken const +- // references that are (per our documentation) invalidated by calling Swap() +- // on the message. +- // +- // If both strings are the default_value, swapping is uninteresting. +- // Otherwise, we use ArenaStringPtr::Mutable() to access the string, to +- // ensure that we do not try to mutate default_value itself. +- if (IsDefault(default_value) && other->IsDefault(default_value)) { +- return; +- } +- +- ::std::string* this_ptr = Mutable(default_value, arena); +- ::std::string* other_ptr = other->Mutable(default_value, arena); +- +- this_ptr->swap(*other_ptr); +-#else ++ ArenaStringPtr* other, const ::std::string* /* default_value */, Arena* /* arena */) { + std::swap(ptr_, other->ptr_); +-#endif + } + + // Frees storage (if not on an arena). + +--- ./src/google/protobuf/inlined_string_field.h ++++ ./src/google/protobuf/inlined_string_field.h +@@ -61,28 +61,28 @@ class LIBPROTOBUF_EXPORT InlinedStringFi + const InlinedStringField& from) + GOOGLE_PROTOBUF_ATTRIBUTE_ALWAYS_INLINE; + +- void ClearToEmpty(const ::std::string* default_value, Arena* arena) ++ void ClearToEmpty(const ::std::string* default_value, Arena* /* arena */) + GOOGLE_PROTOBUF_ATTRIBUTE_ALWAYS_INLINE { + ClearToEmptyNoArena(default_value); + } + void ClearNonDefaultToEmpty() GOOGLE_PROTOBUF_ATTRIBUTE_ALWAYS_INLINE { + ClearNonDefaultToEmptyNoArena(); + } +- void ClearToEmptyNoArena(const ::std::string* default_value) ++ void ClearToEmptyNoArena(const ::std::string* /* default_value */) + GOOGLE_PROTOBUF_ATTRIBUTE_ALWAYS_INLINE { + ClearNonDefaultToEmptyNoArena(); + } + void ClearNonDefaultToEmptyNoArena() + GOOGLE_PROTOBUF_ATTRIBUTE_ALWAYS_INLINE; + +- void ClearToDefault(const ::std::string* default_value, Arena* arena) ++ void ClearToDefault(const ::std::string* default_value, Arena* /* arena */) + GOOGLE_PROTOBUF_ATTRIBUTE_ALWAYS_INLINE { + ClearToDefaultNoArena(default_value); + } + void ClearToDefaultNoArena(const ::std::string* default_value) + GOOGLE_PROTOBUF_ATTRIBUTE_ALWAYS_INLINE; + +- void Destroy(const ::std::string* default_value, Arena* arena) ++ void Destroy(const ::std::string* default_value, Arena* /* arena */) + GOOGLE_PROTOBUF_ATTRIBUTE_ALWAYS_INLINE { + DestroyNoArena(default_value); + } +@@ -94,17 +94,17 @@ class LIBPROTOBUF_EXPORT InlinedStringFi + } + const ::std::string& GetNoArena() const GOOGLE_PROTOBUF_ATTRIBUTE_ALWAYS_INLINE; + +- ::std::string* Mutable(const ::std::string* default_value, Arena* arena) ++ ::std::string* Mutable(const ::std::string* default_value, Arena* /* arena */) + GOOGLE_PROTOBUF_ATTRIBUTE_ALWAYS_INLINE { + return MutableNoArena(default_value); + } + ::std::string* MutableNoArena(const ::std::string* default_value) + GOOGLE_PROTOBUF_ATTRIBUTE_ALWAYS_INLINE; + +- ::std::string* Release(const ::std::string* default_value, Arena* arena) { ++ ::std::string* Release(const ::std::string* default_value, Arena* /* arena */) { + return ReleaseNoArena(default_value); + } +- ::std::string* ReleaseNonDefault(const ::std::string* default_value, Arena* arena) { ++ ::std::string* ReleaseNonDefault(const ::std::string* default_value, Arena* /* arena */) { + return ReleaseNonDefaultNoArena(default_value); + } + ::std::string* ReleaseNoArena(const ::std::string* default_value) { +@@ -114,12 +114,12 @@ class LIBPROTOBUF_EXPORT InlinedStringFi + + void Set(const ::std::string* default_value, + StringPiece value, +- Arena* arena) GOOGLE_PROTOBUF_ATTRIBUTE_ALWAYS_INLINE { ++ Arena* /* arena */) GOOGLE_PROTOBUF_ATTRIBUTE_ALWAYS_INLINE { + SetNoArena(default_value, value); + } + void SetLite(const ::std::string* default_value, + StringPiece value, +- Arena* arena) GOOGLE_PROTOBUF_ATTRIBUTE_ALWAYS_INLINE { ++ Arena* /* arena */) GOOGLE_PROTOBUF_ATTRIBUTE_ALWAYS_INLINE { + SetNoArena(default_value, value); + } + void SetNoArena(const ::std::string* default_value, +@@ -127,12 +127,12 @@ class LIBPROTOBUF_EXPORT InlinedStringFi + + void Set(const ::std::string* default_value, + const ::std::string& value, +- Arena* arena) GOOGLE_PROTOBUF_ATTRIBUTE_ALWAYS_INLINE { ++ Arena* /* arena */) GOOGLE_PROTOBUF_ATTRIBUTE_ALWAYS_INLINE { + SetNoArena(default_value, value); + } + void SetLite(const ::std::string* default_value, + const ::std::string& value, +- Arena* arena) GOOGLE_PROTOBUF_ATTRIBUTE_ALWAYS_INLINE { ++ Arena* /* arena */) GOOGLE_PROTOBUF_ATTRIBUTE_ALWAYS_INLINE { + SetNoArena(default_value, value); + } + void SetNoArena(const ::std::string* default_value, +@@ -146,7 +146,7 @@ class LIBPROTOBUF_EXPORT InlinedStringFi + #endif + void SetAllocated(const ::std::string* default_value, + ::std::string* value, +- Arena* arena) { ++ Arena* /* arena */) { + SetAllocatedNoArena(default_value, value); + } + void SetAllocatedNoArena(const ::std::string* default_value, +@@ -159,7 +159,7 @@ class LIBPROTOBUF_EXPORT InlinedStringFi + void UnsafeArenaSetAllocated( + const ::std::string* default_value, ::std::string* value, Arena* arena); + +- bool IsDefault(const ::std::string* default_value) { ++ bool IsDefault(const ::std::string* /* default_value */) { + return false; + } + private: +@@ -172,7 +172,7 @@ inline InlinedStringField::InlinedString + value_(default_value) {} + + inline void InlinedStringField::AssignWithDefault( +- const ::std::string* default_value, const InlinedStringField& from) { ++ const ::std::string* /* default_value */, const InlinedStringField& from) { + value_ = from.value_; + } + +@@ -221,18 +221,18 @@ inline ::std::string* InlinedStringField + } + + inline void InlinedStringField::SetNoArena( +- const ::std::string* default_value, StringPiece value) { ++ const ::std::string* /* default_value */, StringPiece value) { + value_.assign(value.data(), value.length()); + } + + inline void InlinedStringField::SetNoArena( +- const ::std::string* default_value, const ::std::string& value) { ++ const ::std::string* /* default_value */, const ::std::string& value) { + value_.assign(value); + } + + #if LANG_CXX11 + inline void InlinedStringField::SetNoArena( +- const ::std::string* default_value, ::std::string&& value) { ++ const ::std::string* /* default_value */, ::std::string&& value) { + value_.assign(std::move(value)); + } + #endif +@@ -251,12 +251,12 @@ inline void InlinedStringField::UnsafeSe + } + + inline ::std::string* InlinedStringField::UnsafeArenaRelease( +- const ::std::string* default_value, Arena* arena) { ++ const ::std::string* default_value, Arena* /* arena */) { + return ReleaseNoArena(default_value); + } + + inline void InlinedStringField::UnsafeArenaSetAllocated( +- const ::std::string* default_value, ::std::string* value, Arena* arena) { ++ const ::std::string* default_value, ::std::string* value, Arena* /* arena */) { + if (value == NULL) { + value_.assign(*default_value); + } else { diff --git a/buildenv/1.3.x/win32-static/protobuf.build b/buildenv/1.3.x/win32-static/protobuf.build index 7bc72aec..84f9a70f 100755 --- a/buildenv/1.3.x/win32-static/protobuf.build +++ b/buildenv/1.3.x/win32-static/protobuf.build @@ -1,22 +1,27 @@ #!/usr/bin/env mumble-build -# Copyright 2013-2014 The 'mumble-releng' Authors. All rights reserved. +# Copyright 2013-2018 The 'mumble-releng' Authors. All rights reserved. # Use of this source code is governed by a BSD-style license that # can be found in the LICENSE file in the source tree or at # . urls=( - "http://releng-distfiles.mumble.info/releng-distfiles/protobuf-cpp-3.2.0.tar.gz" - "https://github.com/google/protobuf/releases/download/v3.2.0/protobuf-cpp-3.2.0.tar.gz" + "https://s3.amazonaws.com/mumble-releng-distfiles/protobuf-cpp-3.6.1.tar.gz" + "https://github.com/google/protobuf/releases/download/v3.6.1/protobuf-cpp-3.6.1.tar.gz" ) digests=( - "sha1:7518aef2471e7398ebd0d85a53836d6a076222d5" - "sha256:51d773e4297238b282eaa4c1dd317099675b12eef2b414732b851c00459225c6" + "sha1:0595bb8c2447ebd13bec4818f99fa8faa8c8b8c5" + "sha256:b3732e471a9bb7950f090fd0457ebd2536a9ba0891b7f3785919c654fe2a2529" + "blake2:63c5da4901cc7e5a686e3ef9905b0d50cb68ccd8db2e277d4bfcd45cbfc6466b434cc1597428191b5721dcdf0167c36f2f853ec32d9e5be806a03e55d47e9784" ) function extract { - tar -zxf protobuf-cpp-3.2.0.tar.gz - cd protobuf-3.2.0 + tar -zxf protobuf-cpp-3.6.1.tar.gz + cd protobuf-3.6.1 +} + +function prepare { + patch -p1 < ${MUMBLE_BUILDENV_ROOT}/patches/protobuf-3.6.1-fix-unused-parameter-warnings-in-headers.patch } function build { From 0bb4f50e497f1f863ab4c7cb3fc049c80b44d227 Mon Sep 17 00:00:00 2001 From: Davide Beatrici Date: Sat, 1 Sep 2018 21:29:54 +0200 Subject: [PATCH 25/30] buildenv/1.3.x/win32-static: update Python from version 3.4.3 to 3.4.4 --- buildenv/1.3.x/win32-static/python.build | 15 ++++++++------- 1 file changed, 8 insertions(+), 7 deletions(-) diff --git a/buildenv/1.3.x/win32-static/python.build b/buildenv/1.3.x/win32-static/python.build index 40736c79..9d0a2d75 100755 --- a/buildenv/1.3.x/win32-static/python.build +++ b/buildenv/1.3.x/win32-static/python.build @@ -1,17 +1,18 @@ #!/usr/bin/env mumble-build -# Copyright 2015 The 'mumble-releng' Authors. All rights reserved. +# Copyright 2015-2018 The 'mumble-releng' Authors. All rights reserved. # Use of this source code is governed by a BSD-style license that # can be found in the LICENSE file in the source tree or at # . urls=( - "http://releng-distfiles.mumble.info/releng-distfiles/python-3.4.3.msi" - "https://www.python.org/ftp/python/3.4.3/python-3.4.3.msi" + "https://s3.amazonaws.com/mumble-releng-distfiles/python-3.4.4.msi" + "https://www.python.org/ftp/python/3.4.4/python-3.4.4.msi" ) digests=( - "sha1:026145533de07346f2f523b9415d3f69d3d78b59" - "sha256:33040c16b4bdc5d6da4fe53cecd48c9f2ce3183921be5ab60527edd12b4177eb" + "sha1:46c89a6eebfb5f2e8f9b7edbe5409e314366a66a" + "sha256:46c8f9f63cf02987e8bf23934b2f471e1868b24748c5bb551efcf4863b43ca6c" + "blake2:0b846cd02f1bb3c43eb5ecefd5d65b780fb7bfef9f5eeb604547280d33d3a0f099beb520a26b60fabbb3594d5bc596214136403c8b3bc7d7bbf465c0a9b1c113" ) function extract { @@ -23,12 +24,12 @@ function build { } function install { - cmd /c start /wait msiexec.exe /quiet /a python-3.4.3.msi /l*v python.log TARGETDIR=$(cygpath -w $MUMBLE_PREFIX\\python) + cmd /c start /wait msiexec.exe /quiet /a python-3.4.4.msi /l*v python.log TARGETDIR=$(cygpath -w $MUMBLE_PREFIX\\python) # Check the UTF-16 python.log file for the string "Installation completed successfully". # If grep doesn't find anything, it will exit with a non-zero exit code and bash will # cause this build recipe to fail. cmd.exe /c type python.log | grep --quiet "Installation completed successfully" - rm -f $MUMBLE_PREFIX\\python\\python-3.4.3.msi + rm -f $MUMBLE_PREFIX\\python\\python-3.4.4.msi } From 48f97e105f3289aa8241746f45b7ced2379e593c Mon Sep 17 00:00:00 2001 From: Davide Beatrici Date: Sun, 9 Sep 2018 22:26:41 +0200 Subject: [PATCH 26/30] buildenv/1.3.x/win32-static: update Qt from version 5.6.2 to 5.9.6 --- ...qt-5.5.1-freetype-libs-private-win32.patch | 16 - .../qt-5.5.1-static-pcre-dependency.patch | 9 - ....6.1-qssldiffiehellmanparameters-v34.patch | 1375 ----------------- ...ork-around-client-verification-error.patch | 83 - ...qt-5.6.2-qsystemtrayicon-win-nosound.patch | 13 - ...-build-with-system-mumblebuild-zlib.patch} | 6 +- ...5.9.6-avoid-j-underflow-in-harfbuzz.patch} | 4 +- ...9.6-disable-qtsvg-filesystem-access.patch} | 12 +- .../patches/qt-5.9.6-fix-QTBUG-66652.patch | 24 + .../patches/qt-5.9.6-fix-QTBUG-67259.patch | 54 + ...> qt-5.9.6-fix-angle-non-sse2-build.patch} | 6 +- ...=> qt-5.9.6-fix-no-sse2-win32-build.patch} | 2 +- ...fix-qmake-unixmakefile-lib-escaping.patch} | 7 +- ...6-fix-win32-no-sse2-build-for-angle.patch} | 3 +- ...ce-qtimageformats-jasper-no-libjpeg.patch} | 10 +- ...t.patch => qt-5.9.6-mariadb-support.patch} | 14 +- ...-5.9.6-mysql-cast-mysql_options-arg.patch} | 12 +- ...5.9.6-qlogging-disable-thread-local.patch} | 3 +- ...ffiehellmanparameters-c++98-support.patch} | 3 +- ...systemtrayicon-win-realtime-nosound.patch} | 8 +- ...geformats-jasper-4-color-rct-debian.patch} | 2 +- ...> qt-5.9.6-qtimageformats-only-icns.patch} | 10 +- ...y-hack-to-avoid-ssl-error-poisoning.patch} | 3 +- ...or-nmake-batch-mode-inference-rules.patch} | 2 +- ....6-we-want-a-buffer-for-named-pipes.patch} | 14 +- ...-platform-plugin-use-ShellExecuteEx.patch} | 2 +- ...earray_mac-and-qstring_mac-for-qmake.patch | 43 - ...qt5-configureapp-use-msvc2013-mkspec.patch | 11 - ...k71-for-rc-exe-when-targetting-winxp.patch | 23 - ...ellmanparameters-tests-for-qt-no-ssl.patch | 66 - ...ings-for-qssldiffiehellmanparameters.patch | 53 - ...s-prf-fix-use-of-unescaped-backslash.patch | 29 - ...t5-fix-some-qdoc-warnings-for-qt-5-8.patch | 105 -- ...macextras-disable-qmacpasteboardmime.patch | 17 - ...with-embedded-zero-bytes-QTBUG-56124.patch | 236 --- ...common-msvc-desktop-mumble-debug+opt.patch | 37 - ...llmanparameters-make-fit-for-release.patch | 289 ---- ...plify-defaultparameters-construction.patch | 126 -- ...luate-cas-in-all-keychain-categories.patch | 308 ---- ...ix-signedness-warning-in-definefunc2.patch | 31 - buildenv/1.3.x/common/qt5/qt5.build | 86 +- .../1.3.x/win32-static/mariadb-client.build | 4 - buildenv/1.3.x/win32-static/qt5.build | 18 +- 43 files changed, 172 insertions(+), 3007 deletions(-) delete mode 100644 buildenv/1.3.x/common/qt5/patches/qt-5.5.1-freetype-libs-private-win32.patch delete mode 100644 buildenv/1.3.x/common/qt5/patches/qt-5.5.1-static-pcre-dependency.patch delete mode 100644 buildenv/1.3.x/common/qt5/patches/qt-5.6.1-qssldiffiehellmanparameters-v34.patch delete mode 100644 buildenv/1.3.x/common/qt5/patches/qt-5.6.1-work-around-client-verification-error.patch delete mode 100644 buildenv/1.3.x/common/qt5/patches/qt-5.6.2-qsystemtrayicon-win-nosound.patch rename buildenv/1.3.x/common/qt5/patches/{qt5-allow-bootstrap-build-with-system-mumblebuild-zlib.patch => qt-5.9.6-allow-bootstrap-build-with-system-mumblebuild-zlib.patch} (75%) rename buildenv/1.3.x/common/qt5/patches/{qt5-avoid-j-underflow-in-harfbuzz.patch => qt-5.9.6-avoid-j-underflow-in-harfbuzz.patch} (81%) rename buildenv/1.3.x/common/qt5/patches/{qt5-disable-qtsvg-filesystem-access.patch => qt-5.9.6-disable-qtsvg-filesystem-access.patch} (81%) create mode 100644 buildenv/1.3.x/common/qt5/patches/qt-5.9.6-fix-QTBUG-66652.patch create mode 100644 buildenv/1.3.x/common/qt5/patches/qt-5.9.6-fix-QTBUG-67259.patch rename buildenv/1.3.x/common/qt5/patches/{qt-5.6.1-fix-angle-non-sse2-build.patch => qt-5.9.6-fix-angle-non-sse2-build.patch} (85%) rename buildenv/1.3.x/common/qt5/patches/{qt5-fix-no-sse2-win32-build.patch => qt-5.9.6-fix-no-sse2-win32-build.patch} (94%) rename buildenv/1.3.x/common/qt5/patches/{qt-5.6.2-fix-qmake-unixmakefile-lib-escaping.patch => qt-5.9.6-fix-qmake-unixmakefile-lib-escaping.patch} (93%) rename buildenv/1.3.x/common/qt5/patches/{qt5-fix-win32-no-sse2-build-for-angle.patch => qt-5.9.6-fix-win32-no-sse2-build-for-angle.patch} (94%) rename buildenv/1.3.x/common/qt5/patches/{qt5-force-qtimageformats-jasper-no-libjpeg.patch => qt-5.9.6-force-qtimageformats-jasper-no-libjpeg.patch} (70%) rename buildenv/1.3.x/common/qt5/patches/{qt5-mariadb-support.patch => qt-5.9.6-mariadb-support.patch} (65%) rename buildenv/1.3.x/common/qt5/patches/{qt5-mysql-cast-mysql_options-arg.patch => qt-5.9.6-mysql-cast-mysql_options-arg.patch} (78%) rename buildenv/1.3.x/common/qt5/patches/{qt5-qlogging-disable-thread-local.patch => qt-5.9.6-qlogging-disable-thread-local.patch} (80%) rename buildenv/1.3.x/common/qt5/patches/{qt5-qssldiffiehellmanparameters-c++98-support.patch => qt-5.9.6-qssldiffiehellmanparameters-c++98-support.patch} (96%) rename buildenv/1.3.x/common/qt5/patches/{qt5-add-realtime-flag-for-systray-messages.patch => qt-5.9.6-qsystemtrayicon-win-realtime-nosound.patch} (63%) rename buildenv/1.3.x/common/qt5/patches/{qt5-qtimageformats-jasper-4-color-rct-debian.patch => qt-5.9.6-qtimageformats-jasper-4-color-rct-debian.patch} (92%) rename buildenv/1.3.x/common/qt5/patches/{qt5-qtimageformats-only-icns.patch => qt-5.9.6-qtimageformats-only-icns.patch} (82%) rename buildenv/1.3.x/common/qt5/patches/{qt5-quick-and-dirty-hack-to-avoid-ssl-error-poisoning.patch => qt-5.9.6-quick-and-dirty-hack-to-avoid-ssl-error-poisoning.patch} (84%) rename buildenv/1.3.x/common/qt5/patches/{qt-5.5-remove-escaping-for-nmake-batch-mode-inference-rules.patch => qt-5.9.6-remove-escaping-for-nmake-batch-mode-inference-rules.patch} (95%) rename buildenv/1.3.x/common/qt5/patches/{qt5-we-want-a-buffer-for-named-pipes.patch => qt-5.9.6-we-want-a-buffer-for-named-pipes.patch} (72%) rename buildenv/1.3.x/common/qt5/patches/{qt-5.6.2-windows-platform-plugin-use-ShellExecuteEx.patch => qt-5.9.6-windows-platform-plugin-use-ShellExecuteEx.patch} (95%) delete mode 100644 buildenv/1.3.x/common/qt5/patches/qt5-build-qbytearray_mac-and-qstring_mac-for-qmake.patch delete mode 100644 buildenv/1.3.x/common/qt5/patches/qt5-configureapp-use-msvc2013-mkspec.patch delete mode 100644 buildenv/1.3.x/common/qt5/patches/qt5-define-using-v110-sdk71-for-rc-exe-when-targetting-winxp.patch delete mode 100644 buildenv/1.3.x/common/qt5/patches/qt5-disable-qssldiffiehellmanparameters-tests-for-qt-no-ssl.patch delete mode 100644 buildenv/1.3.x/common/qt5/patches/qt5-doc-fix-documentation-warnings-for-qssldiffiehellmanparameters.patch delete mode 100644 buildenv/1.3.x/common/qt5/patches/qt5-features-resources-prf-fix-use-of-unescaped-backslash.patch delete mode 100644 buildenv/1.3.x/common/qt5/patches/qt5-fix-some-qdoc-warnings-for-qt-5-8.patch delete mode 100644 buildenv/1.3.x/common/qt5/patches/qt5-macextras-disable-qmacpasteboardmime.patch delete mode 100644 buildenv/1.3.x/common/qt5/patches/qt5-macos-handle-qsetting-strings-with-embedded-zero-bytes-QTBUG-56124.patch delete mode 100644 buildenv/1.3.x/common/qt5/patches/qt5-mkspecs-common-msvc-desktop-mumble-debug+opt.patch delete mode 100644 buildenv/1.3.x/common/qt5/patches/qt5-qssldiffiehellmanparameters-make-fit-for-release.patch delete mode 100644 buildenv/1.3.x/common/qt5/patches/qt5-qssldiffiehellmanparameters-simplify-defaultparameters-construction.patch delete mode 100644 buildenv/1.3.x/common/qt5/patches/qt5-qsslsocket-evaluate-cas-in-all-keychain-categories.patch delete mode 100644 buildenv/1.3.x/common/qt5/patches/qt5-qsslsocket-openssl-symbols-fix-signedness-warning-in-definefunc2.patch mode change 100755 => 100644 buildenv/1.3.x/win32-static/qt5.build diff --git a/buildenv/1.3.x/common/qt5/patches/qt-5.5.1-freetype-libs-private-win32.patch b/buildenv/1.3.x/common/qt5/patches/qt-5.5.1-freetype-libs-private-win32.patch deleted file mode 100644 index 44f311cc..00000000 --- a/buildenv/1.3.x/common/qt5/patches/qt-5.5.1-freetype-libs-private-win32.patch +++ /dev/null @@ -1,16 +0,0 @@ ---- ./qtbase/src/3rdparty/freetype_dependency.pri -+++ ./qtbase/src/3rdparty/freetype_dependency.pri -@@ -2,6 +2,11 @@ contains(QT_CONFIG, freetype) { - INCLUDEPATH += $$PWD/freetype/include - LIBS_PRIVATE += -L$$QT_BUILD_TREE/lib -lqtfreetype$$qtPlatformTargetSuffix() - } else:contains(QT_CONFIG, system-freetype) { -- # pull in the proper freetype2 include directory -- include($$QT_SOURCE_TREE/config.tests/unix/freetype/freetype.pri) -+ win32 { -+ LIBS_PRIVATE += -lfreetype -+ } -+ unix { -+ # pull in the proper freetype2 include directory -+ include($$QT_SOURCE_TREE/config.tests/unix/freetype/freetype.pri) -+ } - } diff --git a/buildenv/1.3.x/common/qt5/patches/qt-5.5.1-static-pcre-dependency.patch b/buildenv/1.3.x/common/qt5/patches/qt-5.5.1-static-pcre-dependency.patch deleted file mode 100644 index b14a7e13..00000000 --- a/buildenv/1.3.x/common/qt5/patches/qt-5.5.1-static-pcre-dependency.patch +++ /dev/null @@ -1,9 +0,0 @@ ---- ./qtbase/src/3rdparty/pcre_dependency.pri -+++ ./qtbase/src/3rdparty/pcre_dependency.pri -@@ -3,5 +3,6 @@ pcre { - INCLUDEPATH += $$PWD/pcre - LIBS_PRIVATE += -L$$QT_BUILD_TREE/lib -lqtpcre$$qtPlatformTargetSuffix() - } else { -+ win32: DEFINES += PCRE_STATIC - LIBS_PRIVATE += -lpcre16 - } diff --git a/buildenv/1.3.x/common/qt5/patches/qt-5.6.1-qssldiffiehellmanparameters-v34.patch b/buildenv/1.3.x/common/qt5/patches/qt-5.6.1-qssldiffiehellmanparameters-v34.patch deleted file mode 100644 index a8c93910..00000000 --- a/buildenv/1.3.x/common/qt5/patches/qt-5.6.1-qssldiffiehellmanparameters-v34.patch +++ /dev/null @@ -1,1375 +0,0 @@ -Patchset 34 exported from -https://codereview.qt-project.org/#/c/113070 -and rebased on top of Qt 5.6.1. - ---- ./qtbase/src/network/ssl/qsslconfiguration.cpp -+++ ./qtbase/src/network/ssl/qsslconfiguration.cpp -@@ -205,6 +205,7 @@ bool QSslConfiguration::operator==(const - d->sessionProtocol == other.d->sessionProtocol && - d->ciphers == other.d->ciphers && - d->ellipticCurves == other.d->ellipticCurves && -+ d->dhParams == other.d->dhParams && - d->caCertificates == other.d->caCertificates && - d->protocol == other.d->protocol && - d->peerVerifyMode == other.d->peerVerifyMode && -@@ -246,6 +247,7 @@ bool QSslConfiguration::isNull() const - d->caCertificates.count() == 0 && - d->ciphers.count() == 0 && - d->ellipticCurves.isEmpty() && -+ d->dhParams == QSslDiffieHellmanParameters::defaultParameters() && - d->localCertificateChain.isEmpty() && - d->privateKey.isNull() && - d->peerCertificate.isNull() && -@@ -789,6 +791,33 @@ QVector QSslConfigura - } - - /*! -+ \since 5.8 -+ -+ Retrieves the current set of Diffie-Hellman parameters. -+ -+ If no Diffie-Hellman parameters have been set, the QSslConfiguration object -+ defaults to using the 1024-bit MODP group from RFC 2409. -+ */ -+QSslDiffieHellmanParameters QSslConfiguration::diffieHellmanParameters() const -+{ -+ return d->dhParams; -+} -+ -+/*! -+ \since 5.8 -+ -+ Sets a custom set of Diffie-Hellman parameters to be used by this socket when functioning as -+ a server. -+ -+ If no Diffie-Hellman parameters have been set, the QSslConfiguration object -+ defaults to using the 1024-bit MODP group from RFC 2409. -+ */ -+void QSslConfiguration::setDiffieHellmanParameters(const QSslDiffieHellmanParameters &dhparams) -+{ -+ d->dhParams = dhparams; -+} -+ -+/*! - \since 5.3 - - This function returns the protocol negotiated with the server ---- ./qtbase/src/network/ssl/qsslconfiguration.h -+++ ./qtbase/src/network/ssl/qsslconfiguration.h -@@ -63,6 +63,7 @@ class QSslCertificate; - class QSslCipher; - class QSslKey; - class QSslEllipticCurve; -+class QSslDiffieHellmanParameters; - - class QSslConfigurationPrivate; - class Q_NETWORK_EXPORT QSslConfiguration -@@ -133,6 +134,9 @@ public: - void setEllipticCurves(const QVector &curves); - static QVector supportedEllipticCurves(); - -+ QSslDiffieHellmanParameters diffieHellmanParameters() const; -+ void setDiffieHellmanParameters(const QSslDiffieHellmanParameters &dhparams); -+ - static QSslConfiguration defaultConfiguration(); - static void setDefaultConfiguration(const QSslConfiguration &configuration); - ---- ./qtbase/src/network/ssl/qsslconfiguration_p.h -+++ ./qtbase/src/network/ssl/qsslconfiguration_p.h -@@ -67,6 +67,7 @@ - #include "qsslcipher.h" - #include "qsslkey.h" - #include "qsslellipticcurve.h" -+#include "qssldiffiehellmanparameters.h" - - QT_BEGIN_NAMESPACE - -@@ -81,6 +82,7 @@ public: - allowRootCertOnDemandLoading(true), - peerSessionShared(false), - sslOptions(QSslConfigurationPrivate::defaultSslOptions), -+ dhParams(QSslDiffieHellmanParameters::defaultParameters()), - sslSessionTicketLifeTimeHint(-1), - nextProtocolNegotiationStatus(QSslConfiguration::NextProtocolNegotiationNone) - { } -@@ -110,6 +112,8 @@ public: - - QVector ellipticCurves; - -+ QSslDiffieHellmanParameters dhParams; -+ - QByteArray sslSession; - int sslSessionTicketLifeTimeHint; - ---- ./qtbase/src/network/ssl/qsslcontext_openssl.cpp -+++ ./qtbase/src/network/ssl/qsslcontext_openssl.cpp -@@ -35,6 +35,7 @@ - - - #include -+#include - #include - - #include "private/qssl_p.h" -@@ -42,6 +43,7 @@ - #include "private/qsslsocket_p.h" - #include "private/qsslsocket_openssl_p.h" - #include "private/qsslsocket_openssl_symbols_p.h" -+#include "private/qssldiffiehellmanparameters_p.h" - - QT_BEGIN_NAMESPACE - -@@ -49,22 +51,6 @@ QT_BEGIN_NAMESPACE - extern int q_X509Callback(int ok, X509_STORE_CTX *ctx); - extern QString getErrorsFromOpenSsl(); - --static DH *get_dh1024() --{ -- // Default DH params -- // 1024-bit MODP Group -- // From RFC 2409 -- QByteArray params = QByteArray::fromBase64( -- QByteArrayLiteral("MIGHAoGBAP//////////yQ/aoiFowjTExmKLgNwc0SkCTgiKZ8x0Agu+pjsTmyJR" \ -- "Sgh5jjQE3e+VGbPNOkMbMCsKbfJfFDdP4TVtbVHCReSFtXZiXn7G9ExC6aY37WsL" \ -- "/1y29Aa37e44a/taiZ+lrp8kEXxLH+ZJKGZR7OZTgf//////////AgEC")); -- -- const char *ptr = params.constData(); -- DH *dh = q_d2i_DHparams(NULL, reinterpret_cast(&ptr), params.length()); -- -- return dh; --} -- - QSslContext::QSslContext() - : ctx(0), - pkey(0), -@@ -318,10 +304,23 @@ init_context: - sslContext->setSessionASN1(configuration.sessionTicket()); - - // Set temp DH params -- DH *dh = 0; -- dh = get_dh1024(); -- q_SSL_CTX_set_tmp_dh(sslContext->ctx, dh); -- q_DH_free(dh); -+ QSslDiffieHellmanParameters dhparams = configuration.diffieHellmanParameters(); -+ -+ if (!dhparams.isValid()) { -+ sslContext->errorStr = QSslSocket::tr("Diffie-Hellman parameters are not valid"); -+ sslContext->errorCode = QSslError::UnspecifiedError; -+ return sslContext; -+ } -+ -+ if (!dhparams.isEmpty()) { -+ const QByteArray ¶ms = dhparams.d.data()->derData; -+ const char *ptr = params.constData(); -+ DH *dh = q_d2i_DHparams(NULL, reinterpret_cast(&ptr), params.length()); -+ if (dh == NULL) -+ qFatal("q_d2i_DHparams failed to convert QSslDiffieHellmanParameters to DER form"); -+ q_SSL_CTX_set_tmp_dh(sslContext->ctx, dh); -+ q_DH_free(dh); -+ } - - #ifndef OPENSSL_NO_EC - #if OPENSSL_VERSION_NUMBER >= 0x10002000L ---- ./qtbase/src/network/ssl/qssldiffiehellmanparameters.cpp -+++ ./qtbase/src/network/ssl/qssldiffiehellmanparameters.cpp -@@ -0,0 +1,313 @@ -+/**************************************************************************** -+** -+** Copyright (C) 2015 Mikkel Krautz -+** Contact: http://www.qt.io/licensing/ -+** -+** This file is part of the QtNetwork module of the Qt Toolkit. -+** -+** $QT_BEGIN_LICENSE:LGPL$ -+** Commercial License Usage -+** Licensees holding valid commercial Qt licenses may use this file in -+** accordance with the commercial license agreement provided with the -+** Software or, alternatively, in accordance with the terms contained in -+** a written agreement between you and The Qt Company. For licensing terms -+** and conditions see https://www.qt.io/terms-conditions. For further -+** information use the contact form at https://www.qt.io/contact-us. -+** -+** GNU Lesser General Public License Usage -+** Alternatively, this file may be used under the terms of the GNU Lesser -+** General Public License version 3 as published by the Free Software -+** Foundation and appearing in the file LICENSE.LGPL3 included in the -+** packaging of this file. Please review the following information to -+** ensure the GNU Lesser General Public License version 3 requirements -+** will be met: https://www.gnu.org/licenses/lgpl-3.0.html. -+** -+** GNU General Public License Usage -+** Alternatively, this file may be used under the terms of the GNU -+** General Public License version 2.0 or (at your option) the GNU General -+** Public license version 3 or any later version approved by the KDE Free -+** Qt Foundation. The licenses are as published by the Free Software -+** Foundation and appearing in the file LICENSE.GPL2 and LICENSE.GPL3 -+** included in the packaging of this file. Please review the following -+** information to ensure the GNU General Public License requirements will -+** be met: https://www.gnu.org/licenses/gpl-2.0.html and -+** https://www.gnu.org/licenses/gpl-3.0.html. -+** -+** $QT_END_LICENSE$ -+** -+****************************************************************************/ -+ -+ -+/*! -+ \class QSslDiffieHellmanParameters -+ \brief The QSslDiffieHellmanParameters class provides an interface for Diffie-Hellman parameters for servers. -+ \since 5.8 -+ -+ \reentrant -+ \ingroup network -+ \ingroup ssl -+ \ingroup shared -+ \inmodule QtNetwork -+ -+ QSslDiffieHellmanParameters provides an interface for setting Diffie-Hellman parameters to servers based on QSslSocket. -+ -+ \sa QSslSocket, QSslCipher, QSslConfiguration -+*/ -+ -+#include "qssldiffiehellmanparameters.h" -+#include "qssldiffiehellmanparameters_p.h" -+#include "qsslsocket.h" -+#include "qsslsocket_p.h" -+ -+#include -+#include -+#include -+#include -+#include -+#include -+ -+QT_BEGIN_NAMESPACE -+ -+/*! -+ Returns the default QSslDiffieHellmanParameters used by QSslSocket. -+ -+ This is currently the 1024-bit MODP group from RFC 2459, also -+ known as the Second Oakley Group. -+*/ -+QSslDiffieHellmanParameters QSslDiffieHellmanParameters::defaultParameters() -+{ -+ // The 1024-bit MODP group from RFC 2459 (Second Oakley Group) -+ return QSslDiffieHellmanParameters( -+ QByteArray::fromBase64(QByteArrayLiteral( -+ "MIGHAoGBAP//////////yQ/aoiFowjTExmKLgNwc0SkCTgiKZ8x0Agu+pjsTmyJR" -+ "Sgh5jjQE3e+VGbPNOkMbMCsKbfJfFDdP4TVtbVHCReSFtXZiXn7G9ExC6aY37WsL" -+ "/1y29Aa37e44a/taiZ+lrp8kEXxLH+ZJKGZR7OZTgf//////////AgEC" -+ )), -+ QSsl::Der -+ ); -+} -+ -+/*! -+ Constructs an empty QSslDiffieHellmanParameters instance. -+ -+ If an empty QSslDiffieHellmanParameters instance is set on a -+ QSslConfiguration object, Diffie-Hellman negotiation will -+ be disabled. -+ -+ \sa isValid() -+ \sa QSslConfiguration -+*/ -+QSslDiffieHellmanParameters::QSslDiffieHellmanParameters() -+ : d(new QSslDiffieHellmanParametersPrivate) -+{ -+} -+ -+/*! -+ Constructs a QSslDiffieHellmanParameters object using -+ the byte array \encoded in either PEM or DER form. -+ -+ After construction, the isValid() method should be used to -+ check whether the Diffie-Hellman parameters were valid and -+ loaded correctly. -+ -+ \sa isValid() -+ \sa QSslConfiguration -+*/ -+QSslDiffieHellmanParameters::QSslDiffieHellmanParameters(const QByteArray &encoded, QSsl::EncodingFormat encoding) -+ : d(new QSslDiffieHellmanParametersPrivate) -+{ -+ switch (encoding) { -+ case QSsl::Der: -+ d->decodeDer(encoded); -+ break; -+ case QSsl::Pem: -+ d->decodePem(encoded); -+ break; -+ } -+} -+ -+/*! -+ Constructs a QSslDiffieHellmanParameters object by -+ reading from \device in either PEM or DER form. -+ -+ After construction, the isValid() method should be used -+ to check whether the Diffie-Hellman parameters were valid -+ and loaded correctly. -+ -+ \sa isValid() -+ \sa QSslConfiguration -+*/ -+QSslDiffieHellmanParameters::QSslDiffieHellmanParameters(QIODevice *device, QSsl::EncodingFormat encoding) -+ : d(new QSslDiffieHellmanParametersPrivate) -+{ -+ if (!device) -+ return; -+ -+ const QByteArray encoded = device->readAll(); -+ -+ switch (encoding) { -+ case QSsl::Der: -+ d->decodeDer(encoded); -+ break; -+ case QSsl::Pem: -+ d->decodePem(encoded); -+ break; -+ } -+} -+ -+/*! -+ Constructs an identical copy of \a other. -+*/ -+QSslDiffieHellmanParameters::QSslDiffieHellmanParameters(const QSslDiffieHellmanParameters &other) : d(other.d) -+{ -+} -+ -+/*! -+ Destroys the QSslDiffieHellmanParameters object. -+*/ -+QSslDiffieHellmanParameters::~QSslDiffieHellmanParameters() -+{ -+} -+ -+/*! -+ Copies the contents of \a other into this QSslDiffieHellmanParameters, making the two QSslDiffieHellmanParameters -+ identical. -+ -+ Returns a reference to this QSslDiffieHellmanParameters. -+*/ -+QSslDiffieHellmanParameters &QSslDiffieHellmanParameters::operator=(const QSslDiffieHellmanParameters &other) -+{ -+ d = other.d; -+ return *this; -+} -+ -+/*! -+ \fn QSslDiffieHellmanParameters &QSslDiffieHellmanParameters::operator=(QSslDiffieHellmanParameters &&other) -+ -+ Move-assigns \a other to this QSslDiffieHellmanParameters instance. -+*/ -+ -+/*! -+ \fn void QSslDiffieHellmanParameters::swap(QSslDiffieHellmanParameters &other) -+ -+ Swaps this QSslDiffieHellmanParameters with \a other. This function is very fast and -+ never fails. -+*/ -+ -+/*! -+ Returns \c true if this is a an empty QSslDiffieHellmanParameters instance. -+ -+ Setting an empty QSslDiffieHellmanParameters instance on a QSslSocket-based -+ server will disable Diffie-Hellman key exchange. -+*/ -+bool QSslDiffieHellmanParameters::isEmpty() const Q_DECL_NOTHROW -+{ -+ return d->derData.isNull() && d->error == QSslDiffieHellmanParameters::NoError; -+} -+ -+/*! -+ Returns \c true if this is a valid QSslDiffieHellmanParameters; otherwise false. -+ -+ This method should be used after constructing a QSslDiffieHellmanParameters -+ object to determine its validity. -+ -+ If a QSslDiffieHellmanParameters object is not valid, you can use the error() -+ method to determine what error prevented the object from being constructed. -+ -+ \sa clear() -+ \sa error() -+*/ -+bool QSslDiffieHellmanParameters::isValid() const Q_DECL_NOTHROW -+{ -+ return d->error == QSslDiffieHellmanParameters::NoError; -+} -+ -+/*! -+ \enum QSslDiffieHellmanParameters::Error -+ -+ Describes a QSslDiffieHellmanParameters error. -+ -+ \value ErrorInvalidInputData The given input data could not be used to -+ construct a QSslDiffieHellmanParameters -+ object. -+ -+ \value ErrorUnsafeParameters The Diffie-Hellman parameters are unsafe -+ and should not be used. -+*/ -+ -+/*! -+ Returns the error that caused the QSslDiffieHellmanParameters object -+ to be invalid. -+*/ -+QSslDiffieHellmanParameters::Error QSslDiffieHellmanParameters::error() const Q_DECL_NOTHROW -+{ -+ return d->error; -+} -+ -+/*! -+ Returns a human-readable description of the error that caused the -+ QSslDiffieHellmanParameters object to be invalid. -+*/ -+QString QSslDiffieHellmanParameters::errorString() const Q_DECL_NOTHROW -+{ -+ switch (d->error) { -+ case QSslDiffieHellmanParameters::NoError: -+ return QCoreApplication::translate("QSslDiffieHellmanParameter", "No error"); -+ case QSslDiffieHellmanParameters::InvalidInputDataError: -+ return QCoreApplication::translate("QSslDiffieHellmanParameter", "Invalid input data"); -+ case QSslDiffieHellmanParameters::UnsafeParametersError: -+ return QCoreApplication::translate("QSslDiffieHellmanParameter", "The given Diffie-Hellman parameters are deemed unsafe"); -+ } -+ -+ Q_UNREACHABLE(); -+ return QString(); -+} -+ -+/*! -+ \relates QSslDiffieHellmanParameters -+ -+ Returns \c true if \a lhs is equal to \a rhs; otherwise returns \c false. -+*/ -+bool operator==(const QSslDiffieHellmanParameters &lhs, const QSslDiffieHellmanParameters &rhs) Q_DECL_NOTHROW -+{ -+ return lhs.d->derData == rhs.d->derData; -+} -+ -+/*! \fn bool QSslDiffieHellmanParameters::operator!=(const QSslDiffieHellmanParameters &other) const -+ -+ Returns \c true if this QSslDiffieHellmanParameters is not equal to \a other; otherwise -+ returns \c false. -+*/ -+ -+#ifndef QT_NO_DEBUG_STREAM -+/*! -+ \relates QSslDiffieHellmanParameters -+ -+ Writes the set of Diffie-Hellman parameters in \a dhparm into the debug object \a debug for -+ debugging purposes. -+ -+ The Diffie-Hellman parameters will be represented in Base64-encoded DER form. -+ -+ \sa {Debugging Techniques} -+*/ -+QDebug operator<<(QDebug debug, const QSslDiffieHellmanParameters &dhparam) -+{ -+ QDebugStateSaver saver(debug); -+ debug.resetFormat().nospace(); -+ debug << "QSslDiffieHellmanParameters(" << dhparam.d->derData.toBase64() << ')'; -+ return debug; -+} -+#endif -+ -+/*! -+ \relates QHash -+ -+ Returns an hash value for \a dhparam, using \a seed to seed -+ the calculation. -+*/ -+uint qHash(const QSslDiffieHellmanParameters &dhparam, uint seed) Q_DECL_NOTHROW -+{ -+ return qHash(dhparam.d->derData, seed); -+} -+ -+QT_END_NAMESPACE ---- ./qtbase/src/network/ssl/qssldiffiehellmanparameters.h -+++ ./qtbase/src/network/ssl/qssldiffiehellmanparameters.h -@@ -0,0 +1,117 @@ -+/**************************************************************************** -+** -+** Copyright (C) 2015 Mikkel Krautz -+** Contact: http://www.qt.io/licensing/ -+** -+** This file is part of the QtNetwork module of the Qt Toolkit. -+** -+** $QT_BEGIN_LICENSE:LGPL$ -+** Commercial License Usage -+** Licensees holding valid commercial Qt licenses may use this file in -+** accordance with the commercial license agreement provided with the -+** Software or, alternatively, in accordance with the terms contained in -+** a written agreement between you and The Qt Company. For licensing terms -+** and conditions see https://www.qt.io/terms-conditions. For further -+** information use the contact form at https://www.qt.io/contact-us. -+** -+** GNU Lesser General Public License Usage -+** Alternatively, this file may be used under the terms of the GNU Lesser -+** General Public License version 3 as published by the Free Software -+** Foundation and appearing in the file LICENSE.LGPL3 included in the -+** packaging of this file. Please review the following information to -+** ensure the GNU Lesser General Public License version 3 requirements -+** will be met: https://www.gnu.org/licenses/lgpl-3.0.html. -+** -+** GNU General Public License Usage -+** Alternatively, this file may be used under the terms of the GNU -+** General Public License version 2.0 or (at your option) the GNU General -+** Public license version 3 or any later version approved by the KDE Free -+** Qt Foundation. The licenses are as published by the Free Software -+** Foundation and appearing in the file LICENSE.GPL2 and LICENSE.GPL3 -+** included in the packaging of this file. Please review the following -+** information to ensure the GNU General Public License requirements will -+** be met: https://www.gnu.org/licenses/gpl-2.0.html and -+** https://www.gnu.org/licenses/gpl-3.0.html. -+** -+** $QT_END_LICENSE$ -+** -+****************************************************************************/ -+ -+ -+#ifndef QSSLDIFFIEHELLMANPARAMETERS_H -+#define QSSLDIFFIEHELLMANPARAMETERS_H -+ -+#include -+#include -+#include -+#include -+ -+QT_BEGIN_NAMESPACE -+ -+#ifndef QT_NO_SSL -+ -+class QIODevice; -+class QSslContext; -+class QSslDiffieHellmanParametersPrivate; -+ -+class QSslDiffieHellmanParameters; -+// qHash is a friend, but we can't use default arguments for friends (§8.3.6.4) -+Q_NETWORK_EXPORT uint qHash(const QSslDiffieHellmanParameters &dhparam, uint seed = 0) Q_DECL_NOTHROW; -+ -+#ifndef QT_NO_DEBUG_STREAM -+class QDebug; -+Q_NETWORK_EXPORT QDebug operator<<(QDebug debug, const QSslDiffieHellmanParameters &dhparams); -+#endif -+ -+Q_NETWORK_EXPORT bool operator==(const QSslDiffieHellmanParameters &lhs, const QSslDiffieHellmanParameters &rhs) Q_DECL_NOTHROW; -+ -+inline bool operator!=(const QSslDiffieHellmanParameters &lhs, const QSslDiffieHellmanParameters &rhs) Q_DECL_NOTHROW -+{ -+ return !operator==(lhs, rhs); -+} -+ -+class QSslDiffieHellmanParameters -+{ -+public: -+ enum Error { -+ NoError, -+ InvalidInputDataError, -+ UnsafeParametersError -+ }; -+ -+ Q_NETWORK_EXPORT static QSslDiffieHellmanParameters defaultParameters(); -+ -+ Q_NETWORK_EXPORT QSslDiffieHellmanParameters(); -+ Q_NETWORK_EXPORT explicit QSslDiffieHellmanParameters(const QByteArray &encoded, QSsl::EncodingFormat format = QSsl::Pem); -+ Q_NETWORK_EXPORT explicit QSslDiffieHellmanParameters(QIODevice *device, QSsl::EncodingFormat format = QSsl::Pem); -+ Q_NETWORK_EXPORT QSslDiffieHellmanParameters(const QSslDiffieHellmanParameters &other); -+ Q_NETWORK_EXPORT ~QSslDiffieHellmanParameters(); -+ Q_NETWORK_EXPORT QSslDiffieHellmanParameters &operator=(const QSslDiffieHellmanParameters &other); -+#ifdef Q_COMPILER_RVALUE_REFS -+ QSslDiffieHellmanParameters &operator=(QSslDiffieHellmanParameters &&other) Q_DECL_NOTHROW { swap(other); return *this; } -+#endif -+ -+ void swap(QSslDiffieHellmanParameters &other) Q_DECL_NOTHROW { qSwap(d, other.d); } -+ -+ Q_NETWORK_EXPORT bool isEmpty() const Q_DECL_NOTHROW; -+ Q_NETWORK_EXPORT bool isValid() const Q_DECL_NOTHROW; -+ Q_NETWORK_EXPORT QSslDiffieHellmanParameters::Error error() const Q_DECL_NOTHROW; -+ Q_NETWORK_EXPORT QString errorString() const Q_DECL_NOTHROW; -+ -+private: -+ QExplicitlySharedDataPointer d; -+ friend class QSslContext; -+ friend Q_NETWORK_EXPORT bool operator==(const QSslDiffieHellmanParameters &lhs, const QSslDiffieHellmanParameters &rhs) Q_DECL_NOTHROW; -+#ifndef QT_NO_DEBUG_STREAM -+ friend Q_NETWORK_EXPORT QDebug operator<<(QDebug debug, const QSslDiffieHellmanParameters &dhparam); -+#endif -+ friend Q_NETWORK_EXPORT uint qHash(const QSslDiffieHellmanParameters &dhparam, uint seed) Q_DECL_NOTHROW; -+}; -+ -+Q_DECLARE_SHARED(QSslDiffieHellmanParameters) -+ -+#endif // QT_NO_SSL -+ -+QT_END_NAMESPACE -+ -+#endif ---- ./qtbase/src/network/ssl/qssldiffiehellmanparameters_dummy.cpp -+++ ./qtbase/src/network/ssl/qssldiffiehellmanparameters_dummy.cpp -@@ -0,0 +1,59 @@ -+/**************************************************************************** -+** -+** Copyright (C) 2015 Mikkel Krautz -+** Contact: http://www.qt.io/licensing/ -+** -+** This file is part of the QtNetwork module of the Qt Toolkit. -+** -+** $QT_BEGIN_LICENSE:LGPL$ -+** Commercial License Usage -+** Licensees holding valid commercial Qt licenses may use this file in -+** accordance with the commercial license agreement provided with the -+** Software or, alternatively, in accordance with the terms contained in -+** a written agreement between you and The Qt Company. For licensing terms -+** and conditions see https://www.qt.io/terms-conditions. For further -+** information use the contact form at https://www.qt.io/contact-us. -+** -+** GNU Lesser General Public License Usage -+** Alternatively, this file may be used under the terms of the GNU Lesser -+** General Public License version 3 as published by the Free Software -+** Foundation and appearing in the file LICENSE.LGPL3 included in the -+** packaging of this file. Please review the following information to -+** ensure the GNU Lesser General Public License version 3 requirements -+** will be met: https://www.gnu.org/licenses/lgpl-3.0.html. -+** -+** GNU General Public License Usage -+** Alternatively, this file may be used under the terms of the GNU -+** General Public License version 2.0 or (at your option) the GNU General -+** Public license version 3 or any later version approved by the KDE Free -+** Qt Foundation. The licenses are as published by the Free Software -+** Foundation and appearing in the file LICENSE.GPL2 and LICENSE.GPL3 -+** included in the packaging of this file. Please review the following -+** information to ensure the GNU General Public License requirements will -+** be met: https://www.gnu.org/licenses/gpl-2.0.html and -+** https://www.gnu.org/licenses/gpl-3.0.html. -+** -+** $QT_END_LICENSE$ -+** -+****************************************************************************/ -+ -+ -+#include "qssldiffiehellmanparameters.h" -+#include "qssldiffiehellmanparameters_p.h" -+ -+#include -+#include -+ -+QT_BEGIN_NAMESPACE -+ -+void QSslDiffieHellmanParametersPrivate::decodeDer(const QByteArray &) -+{ -+ Q_UNIMPLEMENTED(); -+} -+ -+void QSslDiffieHellmanParametersPrivate::decodePem(const QByteArray &) -+{ -+ Q_UNIMPLEMENTED(); -+} -+ -+QT_END_NAMESPACE ---- ./qtbase/src/network/ssl/qssldiffiehellmanparameters_openssl.cpp -+++ ./qtbase/src/network/ssl/qssldiffiehellmanparameters_openssl.cpp -@@ -0,0 +1,164 @@ -+/**************************************************************************** -+** -+** Copyright (C) 2015 Mikkel Krautz -+** Contact: http://www.qt.io/licensing/ -+** -+** This file is part of the QtNetwork module of the Qt Toolkit. -+** -+** $QT_BEGIN_LICENSE:LGPL$ -+** Commercial License Usage -+** Licensees holding valid commercial Qt licenses may use this file in -+** accordance with the commercial license agreement provided with the -+** Software or, alternatively, in accordance with the terms contained in -+** a written agreement between you and The Qt Company. For licensing terms -+** and conditions see https://www.qt.io/terms-conditions. For further -+** information use the contact form at https://www.qt.io/contact-us. -+** -+** GNU Lesser General Public License Usage -+** Alternatively, this file may be used under the terms of the GNU Lesser -+** General Public License version 3 as published by the Free Software -+** Foundation and appearing in the file LICENSE.LGPL3 included in the -+** packaging of this file. Please review the following information to -+** ensure the GNU Lesser General Public License version 3 requirements -+** will be met: https://www.gnu.org/licenses/lgpl-3.0.html. -+** -+** GNU General Public License Usage -+** Alternatively, this file may be used under the terms of the GNU -+** General Public License version 2.0 or (at your option) the GNU General -+** Public license version 3 or any later version approved by the KDE Free -+** Qt Foundation. The licenses are as published by the Free Software -+** Foundation and appearing in the file LICENSE.GPL2 and LICENSE.GPL3 -+** included in the packaging of this file. Please review the following -+** information to ensure the GNU General Public License requirements will -+** be met: https://www.gnu.org/licenses/gpl-2.0.html and -+** https://www.gnu.org/licenses/gpl-3.0.html. -+** -+** $QT_END_LICENSE$ -+** -+****************************************************************************/ -+ -+#include "qssldiffiehellmanparameters.h" -+#include "qssldiffiehellmanparameters_p.h" -+#include "qsslsocket_openssl_symbols_p.h" -+#include "qsslsocket.h" -+#include "qsslsocket_p.h" -+ -+#include -+#include -+#include -+#ifndef QT_NO_DEBUG_STREAM -+#include -+#endif -+ -+// For q_BN_is_word. -+#include -+ -+QT_BEGIN_NAMESPACE -+ -+static bool isSafeDH(DH *dh) -+{ -+ int status = 0; -+ int bad = 0; -+ -+ QSslSocketPrivate::ensureInitialized(); -+ -+ // Mark p < 1024 bits as unsafe. -+ if (q_BN_num_bits(dh->p) < 1024) { -+ return false; -+ } -+ -+ if (q_DH_check(dh, &status) != 1) -+ return false; -+ -+ // From https://wiki.openssl.org/index.php/Diffie-Hellman_parameters: -+ // -+ // The additional call to BN_mod_word(dh->p, 24) -+ // (and unmasking of DH_NOT_SUITABLE_GENERATOR) -+ // is performed to ensure your program accepts -+ // IETF group parameters. OpenSSL checks the prime -+ // is congruent to 11 when g = 2; while the IETF's -+ // primes are congruent to 23 when g = 2. -+ // Without the test, the IETF parameters would -+ // fail validation. For details, see Diffie-Hellman -+ // Parameter Check (when g = 2, must p mod 24 == 11?). -+ if (q_BN_is_word(dh->g, DH_GENERATOR_2)) { -+ long residue = q_BN_mod_word(dh->p, 24); -+ if (residue == 11 || residue == 23) -+ status &= ~DH_NOT_SUITABLE_GENERATOR; -+ } -+ -+ bad |= DH_CHECK_P_NOT_PRIME; -+ bad |= DH_CHECK_P_NOT_SAFE_PRIME; -+ bad |= DH_NOT_SUITABLE_GENERATOR; -+ -+ return !(status & bad); -+} -+ -+void QSslDiffieHellmanParametersPrivate::decodeDer(const QByteArray &der) -+{ -+ if (der.isEmpty()) { -+ error = QSslDiffieHellmanParameters::InvalidInputDataError; -+ return; -+ } -+ -+ const unsigned char *data = reinterpret_cast(der.data()); -+ int len = der.size(); -+ -+ QSslSocketPrivate::ensureInitialized(); -+ -+ DH *dh = q_d2i_DHparams(NULL, &data, len); -+ if (dh) { -+ if (isSafeDH(dh)) -+ derData = der; -+ else -+ error = QSslDiffieHellmanParameters::UnsafeParametersError; -+ } else { -+ error = QSslDiffieHellmanParameters::InvalidInputDataError; -+ } -+ -+ q_DH_free(dh); -+} -+ -+void QSslDiffieHellmanParametersPrivate::decodePem(const QByteArray &pem) -+{ -+ if (pem.isEmpty()) { -+ error = QSslDiffieHellmanParameters::InvalidInputDataError; -+ return; -+ } -+ -+ if (!QSslSocket::supportsSsl()) { -+ error = QSslDiffieHellmanParameters::InvalidInputDataError; -+ return; -+ } -+ -+ QSslSocketPrivate::ensureInitialized(); -+ -+ BIO *bio = q_BIO_new_mem_buf(const_cast(pem.data()), pem.size()); -+ if (!bio) { -+ error = QSslDiffieHellmanParameters::InvalidInputDataError; -+ return; -+ } -+ -+ DH *dh = Q_NULLPTR; -+ q_PEM_read_bio_DHparams(bio, &dh, 0, 0); -+ -+ if (dh) { -+ if (isSafeDH(dh)) { -+ char *buf = Q_NULLPTR; -+ int len = q_i2d_DHparams(dh, reinterpret_cast(&buf)); -+ if (len > 0) -+ derData = QByteArray(buf, len); -+ else -+ error = QSslDiffieHellmanParameters::InvalidInputDataError; -+ } else { -+ error = QSslDiffieHellmanParameters::UnsafeParametersError; -+ } -+ } else { -+ error = QSslDiffieHellmanParameters::InvalidInputDataError; -+ } -+ -+ q_DH_free(dh); -+ q_BIO_free(bio); -+} -+ -+QT_END_NAMESPACE ---- ./qtbase/src/network/ssl/qssldiffiehellmanparameters_p.h -+++ ./qtbase/src/network/ssl/qssldiffiehellmanparameters_p.h -@@ -0,0 +1,78 @@ -+/**************************************************************************** -+** -+** Copyright (C) 2015 Mikkel Krautz -+** Contact: http://www.qt.io/licensing/ -+** -+** This file is part of the QtNetwork module of the Qt Toolkit. -+** -+** $QT_BEGIN_LICENSE:LGPL$ -+** Commercial License Usage -+** Licensees holding valid commercial Qt licenses may use this file in -+** accordance with the commercial license agreement provided with the -+** Software or, alternatively, in accordance with the terms contained in -+** a written agreement between you and The Qt Company. For licensing terms -+** and conditions see https://www.qt.io/terms-conditions. For further -+** information use the contact form at https://www.qt.io/contact-us. -+** -+** GNU Lesser General Public License Usage -+** Alternatively, this file may be used under the terms of the GNU Lesser -+** General Public License version 3 as published by the Free Software -+** Foundation and appearing in the file LICENSE.LGPL3 included in the -+** packaging of this file. Please review the following information to -+** ensure the GNU Lesser General Public License version 3 requirements -+** will be met: https://www.gnu.org/licenses/lgpl-3.0.html. -+** -+** GNU General Public License Usage -+** Alternatively, this file may be used under the terms of the GNU -+** General Public License version 2.0 or (at your option) the GNU General -+** Public license version 3 or any later version approved by the KDE Free -+** Qt Foundation. The licenses are as published by the Free Software -+** Foundation and appearing in the file LICENSE.GPL2 and LICENSE.GPL3 -+** included in the packaging of this file. Please review the following -+** information to ensure the GNU General Public License requirements will -+** be met: https://www.gnu.org/licenses/gpl-2.0.html and -+** https://www.gnu.org/licenses/gpl-3.0.html. -+** -+** $QT_END_LICENSE$ -+** -+****************************************************************************/ -+ -+ -+#ifndef QSSLDIFFIEHELLMANPARAMETERS_P_H -+#define QSSLDIFFIEHELLMANPARAMETERS_P_H -+ -+#include "qsslkey.h" -+ -+// -+// W A R N I N G -+// ------------- -+// -+// This file is not part of the Qt API. It exists for the convenience -+// of qssldiffiehellmanparameters.cpp. This header file may change from version to version -+// without notice, or even be removed. -+// -+// We mean it. -+// -+ -+#include -+ -+#include "qssldiffiehellmanparameters.h" -+#include "qsslsocket_p.h" // includes wincrypt.h -+ -+QT_BEGIN_NAMESPACE -+ -+class QSslDiffieHellmanParametersPrivate : public QSharedData -+{ -+public: -+ QSslDiffieHellmanParametersPrivate() : error(QSslDiffieHellmanParameters::NoError) {}; -+ -+ void decodeDer(const QByteArray &der); -+ void decodePem(const QByteArray &pem); -+ -+ QSslDiffieHellmanParameters::Error error; -+ QByteArray derData; -+}; -+ -+QT_END_NAMESPACE -+ -+#endif // QSSLDIFFIEHELLMANPARAMETERS_P_H ---- ./qtbase/src/network/ssl/qsslsocket.cpp -+++ ./qtbase/src/network/ssl/qsslsocket.cpp -@@ -915,6 +915,7 @@ void QSslSocket::setSslConfiguration(con - d->configuration.privateKey = configuration.privateKey(); - d->configuration.ciphers = configuration.ciphers(); - d->configuration.ellipticCurves = configuration.ellipticCurves(); -+ d->configuration.dhParams = configuration.diffieHellmanParameters(); - d->configuration.caCertificates = configuration.caCertificates(); - d->configuration.peerVerifyDepth = configuration.peerVerifyDepth(); - d->configuration.peerVerifyMode = configuration.peerVerifyMode(); ---- ./qtbase/src/network/ssl/qsslsocket_openssl_symbols.cpp -+++ ./qtbase/src/network/ssl/qsslsocket_openssl_symbols.cpp -@@ -145,6 +145,10 @@ DEFINEFUNC3(int, BIO_read, BIO *a, a, vo - DEFINEFUNC(BIO_METHOD *, BIO_s_mem, void, DUMMYARG, return 0, return) - 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 -+DEFINEFUNC2(int, BN_is_word, BIGNUM *a, a, BN_ULONG w, w, return 0, return) -+#endif -+DEFINEFUNC2(BN_ULONG, BN_mod_word, const BIGNUM *a, a, BN_ULONG w, w, return -1, return) - #ifndef OPENSSL_NO_EC - DEFINEFUNC(const EC_GROUP*, EC_KEY_get0_group, const EC_KEY* k, k, return 0, return) - DEFINEFUNC(int, EC_GROUP_get_degree, const EC_GROUP* g, g, return 0, return) -@@ -201,6 +205,7 @@ DEFINEFUNC4(RSA *, PEM_read_bio_RSAPriva - #ifndef OPENSSL_NO_EC - DEFINEFUNC4(EC_KEY *, PEM_read_bio_ECPrivateKey, BIO *a, a, EC_KEY **b, b, pem_password_cb *c, c, void *d, d, return 0, return) - #endif -+DEFINEFUNC4(DH *, PEM_read_bio_DHparams, BIO *a, a, DH **b, b, pem_password_cb *c, c, void *d, d, return 0, return) - DEFINEFUNC7(int, PEM_write_bio_DSAPrivateKey, BIO *a, a, DSA *b, b, const EVP_CIPHER *c, c, unsigned char *d, d, int e, e, pem_password_cb *f, f, void *g, g, return 0, return) - DEFINEFUNC7(int, PEM_write_bio_RSAPrivateKey, BIO *a, a, RSA *b, b, const EVP_CIPHER *c, c, unsigned char *d, d, int e, e, pem_password_cb *f, f, void *g, g, return 0, return) - #ifndef OPENSSL_NO_EC -@@ -416,6 +421,8 @@ DEFINEFUNC3(void, SSL_get0_next_proto_ne - DEFINEFUNC(DH *, DH_new, DUMMYARG, DUMMYARG, return 0, return) - DEFINEFUNC(void, DH_free, DH *dh, dh, return, DUMMYARG) - DEFINEFUNC3(DH *, d2i_DHparams, DH**a, a, const unsigned char **pp, pp, long length, length, return 0, return) -+DEFINEFUNC2(int, i2d_DHparams, DH *a, a, unsigned char **p, p, return -1, return) -+DEFINEFUNC2(int, DH_check, DH *dh, dh, int *codes, codes, return 0, return) - DEFINEFUNC3(BIGNUM *, BN_bin2bn, const unsigned char *s, s, int len, len, BIGNUM *ret, ret, return 0, return) - #ifndef OPENSSL_NO_EC - DEFINEFUNC(EC_KEY *, EC_KEY_dup, const EC_KEY *ec, ec, return 0, return) -@@ -762,6 +769,10 @@ bool q_resolveOpenSslSymbols() - RESOLVEFUNC(EC_GROUP_get_degree) - #endif - RESOLVEFUNC(BN_num_bits) -+#if OPENSSL_VERSION_NUMBER >= 0x10100000L -+ RESOLVEFUNC(BN_is_word) -+#endif -+ RESOLVEFUNC(BN_mod_word) - RESOLVEFUNC(CRYPTO_free) - RESOLVEFUNC(CRYPTO_num_locks) - RESOLVEFUNC(CRYPTO_set_id_callback) -@@ -810,6 +821,7 @@ bool q_resolveOpenSslSymbols() - #ifndef OPENSSL_NO_EC - RESOLVEFUNC(PEM_read_bio_ECPrivateKey) - #endif -+ RESOLVEFUNC(PEM_read_bio_DHparams) - RESOLVEFUNC(PEM_write_bio_DSAPrivateKey) - RESOLVEFUNC(PEM_write_bio_RSAPrivateKey) - #ifndef OPENSSL_NO_EC -@@ -969,6 +981,8 @@ bool q_resolveOpenSslSymbols() - RESOLVEFUNC(DH_new) - RESOLVEFUNC(DH_free) - RESOLVEFUNC(d2i_DHparams) -+ RESOLVEFUNC(i2d_DHparams) -+ RESOLVEFUNC(DH_check) - RESOLVEFUNC(BN_bin2bn) - #ifndef OPENSSL_NO_EC - RESOLVEFUNC(EC_KEY_dup) ---- ./qtbase/src/network/ssl/qsslsocket_openssl_symbols_p.h -+++ ./qtbase/src/network/ssl/qsslsocket_openssl_symbols_p.h -@@ -221,6 +221,21 @@ int q_BIO_read(BIO *a, void *b, int c); - BIO_METHOD *q_BIO_s_mem(); - 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_BN_is_word(BIGNUM *a, BN_ULONG w); -+#else -+// BN_is_word is implemented purely as a -+// macro in OpenSSL < 1.1. It doesn't -+// call any functions. -+// -+// The implementation of BN_is_word is -+// 100% the same between 1.0.0, 1.0.1 -+// and 1.0.2. -+// -+// Users are required to include . -+#define q_BN_is_word BN_is_word -+#endif // OPENSSL_VERSION_NUMBER >= 0x10100000L -+BN_ULONG q_BN_mod_word(const BIGNUM *a, BN_ULONG w); - #ifndef OPENSSL_NO_EC - const EC_GROUP* q_EC_KEY_get0_group(const EC_KEY* k); - int q_EC_GROUP_get_degree(const EC_GROUP* g); -@@ -278,6 +293,7 @@ RSA *q_PEM_read_bio_RSAPrivateKey(BIO *a - #ifndef OPENSSL_NO_EC - EC_KEY *q_PEM_read_bio_ECPrivateKey(BIO *a, EC_KEY **b, pem_password_cb *c, void *d); - #endif -+DH *q_PEM_read_bio_DHparams(BIO *a, DH **b, pem_password_cb *c, void *d); - int q_PEM_write_bio_DSAPrivateKey(BIO *a, DSA *b, const EVP_CIPHER *c, unsigned char *d, - int e, pem_password_cb *f, void *g); - int q_PEM_write_bio_RSAPrivateKey(BIO *a, RSA *b, const EVP_CIPHER *c, unsigned char *d, -@@ -466,6 +482,8 @@ STACK_OF(X509) *q_X509_STORE_CTX_get_cha - DH *q_DH_new(); - void q_DH_free(DH *dh); - DH *q_d2i_DHparams(DH **a, const unsigned char **pp, long length); -+int q_i2d_DHparams(DH *a, unsigned char **p); -+int q_DH_check(DH *dh, int *codes); - - BIGNUM *q_BN_bin2bn(const unsigned char *s, int len, BIGNUM *ret); - #define q_SSL_CTX_set_tmp_dh(ctx, dh) q_SSL_CTX_ctrl((ctx), SSL_CTRL_SET_TMP_DH, 0, (char *)dh) -@@ -509,6 +527,9 @@ DSA *q_d2i_DSAPrivateKey(DSA **a, unsign - #define q_PEM_write_bio_DSAPrivateKey(bp,x,enc,kstr,klen,cb,u) \ - PEM_ASN1_write_bio((int (*)(void*, unsigned char**))q_i2d_DSAPrivateKey,PEM_STRING_DSA,\ - bp,(char *)x,enc,kstr,klen,cb,u) -+#define q_PEM_read_bio_DHparams(bp, dh, cb, u) \ -+ (DH *)q_PEM_ASN1_read_bio( \ -+ (void *(*)(void**, const unsigned char**, long int))q_d2i_DHparams, PEM_STRING_DHPARAMS, bp, (void **)x, cb, u) - #endif - #define q_SSL_CTX_set_options(ctx,op) q_SSL_CTX_ctrl((ctx),SSL_CTRL_OPTIONS,(op),NULL) - #define q_SSL_CTX_set_mode(ctx,op) q_SSL_CTX_ctrl((ctx),SSL_CTRL_MODE,(op),NULL) ---- ./qtbase/src/network/ssl/ssl.pri -+++ ./qtbase/src/network/ssl/ssl.pri -@@ -9,6 +9,8 @@ contains(QT_CONFIG, ssl) | contains(QT_C - ssl/qsslconfiguration_p.h \ - ssl/qsslcipher.h \ - ssl/qsslcipher_p.h \ -+ ssl/qssldiffiehellmanparameters.h \ -+ ssl/qssldiffiehellmanparameters_p.h \ - ssl/qsslellipticcurve.h \ - ssl/qsslerror.h \ - ssl/qsslkey.h \ -@@ -24,6 +26,7 @@ contains(QT_CONFIG, ssl) | contains(QT_C - ssl/qsslcertificate.cpp \ - ssl/qsslconfiguration.cpp \ - ssl/qsslcipher.cpp \ -+ ssl/qssldiffiehellmanparameters.cpp \ - ssl/qsslellipticcurve.cpp \ - ssl/qsslkey_p.cpp \ - ssl/qsslerror.cpp \ -@@ -35,6 +38,7 @@ contains(QT_CONFIG, ssl) | contains(QT_C - HEADERS += ssl/qsslsocket_winrt_p.h - SOURCES += ssl/qsslcertificate_qt.cpp \ - ssl/qsslcertificate_winrt.cpp \ -+ ssl/qssldiffiehellmanparameters_dummy.cpp \ - ssl/qsslkey_qt.cpp \ - ssl/qsslkey_winrt.cpp \ - ssl/qsslsocket_winrt.cpp \ -@@ -44,6 +48,7 @@ contains(QT_CONFIG, ssl) | contains(QT_C - contains(QT_CONFIG, securetransport) { - HEADERS += ssl/qsslsocket_mac_p.h - SOURCES += ssl/qsslcertificate_qt.cpp \ -+ ssl/qssldiffiehellmanparameters_dummy.cpp \ - ssl/qsslkey_qt.cpp \ - ssl/qsslkey_mac.cpp \ - ssl/qsslsocket_mac.cpp \ -@@ -57,6 +62,7 @@ contains(QT_CONFIG, openssl) | contains( - ssl/qsslsocket_openssl_symbols_p.h - SOURCES += ssl/qsslcertificate_openssl.cpp \ - ssl/qsslcontext_openssl.cpp \ -+ ssl/qssldiffiehellmanparameters_openssl.cpp \ - ssl/qsslellipticcurve_openssl.cpp \ - ssl/qsslkey_openssl.cpp \ - ssl/qsslsocket_openssl.cpp \ ---- ./qtbase/tests/auto/network/ssl/qssldiffiehellmanparameters/qssldiffiehellmanparameters.pro -+++ ./qtbase/tests/auto/network/ssl/qssldiffiehellmanparameters/qssldiffiehellmanparameters.pro -@@ -0,0 +1,8 @@ -+CONFIG += testcase -+CONFIG += parallel_test -+ -+SOURCES += tst_qssldiffiehellmanparameters.cpp -+!wince*:win32:LIBS += -lws2_32 -+QT = core network testlib -+ -+TARGET = tst_qssldiffiehellmanparameters ---- ./qtbase/tests/auto/network/ssl/qssldiffiehellmanparameters/tst_qssldiffiehellmanparameters.cpp -+++ ./qtbase/tests/auto/network/ssl/qssldiffiehellmanparameters/tst_qssldiffiehellmanparameters.cpp -@@ -0,0 +1,157 @@ -+/**************************************************************************** -+** -+** Copyright (C) 2015 Mikkel Krautz -+** Contact: http://www.qt.io/licensing/ -+** -+** This file is part of the QtNetwork module of the Qt Toolkit. -+** -+** $QT_BEGIN_LICENSE:LGPL$ -+** Commercial License Usage -+** Licensees holding valid commercial Qt licenses may use this file in -+** accordance with the commercial license agreement provided with the -+** Software or, alternatively, in accordance with the terms contained in -+** a written agreement between you and The Qt Company. For licensing terms -+** and conditions see https://www.qt.io/terms-conditions. For further -+** information use the contact form at https://www.qt.io/contact-us. -+** -+** GNU Lesser General Public License Usage -+** Alternatively, this file may be used under the terms of the GNU Lesser -+** General Public License version 3 as published by the Free Software -+** Foundation and appearing in the file LICENSE.LGPL3 included in the -+** packaging of this file. Please review the following information to -+** ensure the GNU Lesser General Public License version 3 requirements -+** will be met: https://www.gnu.org/licenses/lgpl-3.0.html. -+** -+** GNU General Public License Usage -+** Alternatively, this file may be used under the terms of the GNU -+** General Public License version 2.0 or (at your option) the GNU General -+** Public license version 3 or any later version approved by the KDE Free -+** Qt Foundation. The licenses are as published by the Free Software -+** Foundation and appearing in the file LICENSE.GPL2 and LICENSE.GPL3 -+** included in the packaging of this file. Please review the following -+** information to ensure the GNU General Public License requirements will -+** be met: https://www.gnu.org/licenses/gpl-2.0.html and -+** https://www.gnu.org/licenses/gpl-3.0.html. -+** -+** $QT_END_LICENSE$ -+** -+****************************************************************************/ -+ -+#include -+#include -+#include -+#include -+ -+class tst_QSslDiffieHellmanParameters : public QObject -+{ -+ Q_OBJECT -+ -+private Q_SLOTS: -+ void constructionEmpty(); -+ void constructionDefault(); -+ void constructionDER(); -+ void constructionPEM(); -+ void unsafe512Bits(); -+ void unsafeNonPrime(); -+}; -+ -+void tst_QSslDiffieHellmanParameters::constructionEmpty() -+{ -+ QSslDiffieHellmanParameters dh; -+ -+ QCOMPARE(dh.isEmpty(), true); -+ QCOMPARE(dh.isValid(), true); -+ QCOMPARE(dh.error(), QSslDiffieHellmanParameters::NoError); -+} -+ -+void tst_QSslDiffieHellmanParameters::constructionDefault() -+{ -+ QSslDiffieHellmanParameters dh = QSslDiffieHellmanParameters::defaultParameters(); -+ -+#ifndef QT_NO_OPENSSL -+ QCOMPARE(dh.isValid(), true); -+ QCOMPARE(dh.error(), QSslDiffieHellmanParameters::NoError); -+#endif -+} -+ -+void tst_QSslDiffieHellmanParameters::constructionDER() -+{ -+ // Uniquely generated with 'openssl dhparam -outform DER -out out.der -check -2 4096' -+ QSslDiffieHellmanParameters dh(QByteArray::fromBase64(QByteArrayLiteral( -+ "MIICCAKCAgEAsbQYx57ZlyEyWF8jD5WYEswGR2aTVFsHqP3026SdyTwcjY+YlMOae0EagK" -+ "jDA0UlPcih1kguQOvOVgyc5gI3YbBb4pCNEdy048xITlsdqG7qC3+2VvFR3vfixEbQQll9" -+ "2cGIIneD/36p7KJcDnBNUwwWj/VJKhTwelTfKTj2T39si9xGMkqZiQuCaXRk6vSKZ4ZDPk" -+ "jiq5Ti1kHVFbL9SMWRa8zplPtDMrVfhSyw10njgD4qKd1UoUPdmhEPhRZlHaZ/cAHNSHMj" -+ "uhDakeMpN+XP2/sl5IpPZ3/vVOk9PhBDFO1NYzKx/b7RQgZCUmXoglKYpfBiz8OheoI0hK" -+ "V0fU/OCtHjRrP4hE9vIHA2aE+gaQZiYCciGcR9BjHQ7Y8K9qHyTX8UIz2G4ZKzQZK9G+pA" -+ "K0xD+1H3qZ/MaUhzNDQOwwihnTjjXzTjfIGqYDdbouAhw+tX51CsGonI0cL3s3QMa3CwGH" -+ "mw+AH2b/Z68dTSy0sC3CYn9cNbrctqyeHwQrsx9FfpOz+Z6sk2WsPgqgSp/pDVVgm5oSfO" -+ "2mN7WAWgUlf9TQuj1HIRCTI+PbBq2vYvn+YResMRo+8ng1QptKAAgQoVVGNRYxZ9iAZlvO" -+ "52DcHKlsqDuafQ1XVGmzVIrKtBi2gfLtPqY4v6g6v26l8gbzK67PpWstllHiPb4VMCAQI=" -+ )), QSsl::Der); -+ -+#ifndef QT_NO_OPENSSL -+ QCOMPARE(dh.isValid(), true); -+ QCOMPARE(dh.error(), QSslDiffieHellmanParameters::NoError); -+#endif -+} -+ -+void tst_QSslDiffieHellmanParameters::constructionPEM() -+{ -+ // Uniquely generated with 'openssl dhparam -outform PEM -out out.pem -check -2 4096' -+ QSslDiffieHellmanParameters dh(QByteArrayLiteral( -+ "-----BEGIN DH PARAMETERS-----\n" -+ "MIICCAKCAgEA9QTdqhQkbGuhWzBsW5X475AjjrITpg1BHX5+mp1sstUd84Lshq1T\n" -+ "+S2QQQtdl25EPoUblpyyLAf8krFSH4YwR7jjLWklA8paDOwRYod0zLmVZ1Wx6og3\n" -+ "PRc8P+SCs+6gKTXfv//bJJhiJXnM73lDFsGHbSqN+msf20ei/zy5Rwey2t8dPjLC\n" -+ "Q+qkb/avlovi2t2rsUWcxMT1875TQ4HuApayqw3R3lTQe9u05b9rTrinmT7AE4mm\n" -+ "xGqO9FZJdXYE2sOKwwJkpM48KFyV90uJANmqJnQrkgdukaGTHwxZxgAyO6ur/RWC\n" -+ "kzf9STFT6IY4Qy05q+oZVJfh8xPHszKmmC8nWaLfiHMYBnL5fv+1kh/aU11Kz9TG\n" -+ "iDXwQ+tzhKAutQPUwe3IGQUYQMZPwZI4vegdU88/7YPXuWt7b/0Il5+2ma5FbtG2\n" -+ "u02PMi+J3JZsYi/tEUv1tJBVHGH0kDpgcyOm8rvkCtNbNkETzfwUPoEgA0oPMhVt\n" -+ "sFGub1av+jLRyFNGNBJcqXAO+Tq2zXG00DxbGY+aooJ50qU/Lh5gfnCEMDXlMM9P\n" -+ "T8JVpWaaNLCC+0Z5txsfYp+FO8mOttIPIF6F8FtmTnm/jhNntvqKvsU+NHylIYzr\n" -+ "o42EpiWwS7ktPPUS2GtG+IUdy8rvdO1xJ5kNxs7ZlygY4W1htOhbUusCAQI=\n" -+ "-----END DH PARAMETERS-----\n" -+ ), QSsl::Pem); -+ -+#ifndef QT_NO_OPENSSL -+ QCOMPARE(dh.isValid(), true); -+ QCOMPARE(dh.error(), QSslDiffieHellmanParameters::NoError); -+#endif -+} -+ -+void tst_QSslDiffieHellmanParameters::unsafe512Bits() -+{ -+ // Uniquely generated with 'openssl dhparam -outform PEM -out out.pem -check -2 512' -+ QSslDiffieHellmanParameters dh(QByteArrayLiteral( -+ "-----BEGIN DH PARAMETERS-----\n" -+ "MEYCQQCf8goDn56akiliAtEL1ZG7VH+9wfLxsv8/B1emTUG+rMKB1yaVAU7HaAiM\n" -+ "Gtmo2bAWUqBczUTOTzqmWTm28P6bAgEC\n" -+ "-----END DH PARAMETERS-----\n" -+ ), QSsl::Pem); -+ -+#ifndef QT_NO_OPENSSL -+ QCOMPARE(dh.isValid(), false); -+ QCOMPARE(dh.error(), QSslDiffieHellmanParameters::UnsafeParametersError); -+#endif -+} -+ -+void tst_QSslDiffieHellmanParameters::unsafeNonPrime() -+{ -+ // Uniquely generated with 'openssl dhparam -outform DER -out out.der -check -2 1024' -+ // and then modified by hand to make P not be a prime number. -+ QSslDiffieHellmanParameters dh(QByteArray::fromBase64(QByteArrayLiteral( -+ "MIGHAoGBALLcOLg+ow8TMnbCUeNjwys6wUTIH9mn4ZSeIbD6qvCsJgg4cUxXwJQmPY" -+ "Xl15AsKXgkXWh0n+/N6tjH0sSRJnzDvN2H3KxFLKkvxmBYrDOJMdCuMgZD50aOsVyd" -+ "vholAW9zilkoYkB6sqwxY1Z2dbpTWajCsUAWZQ0AIP4Y5nesAgEC" -+ )), QSsl::Der); -+ -+#ifndef QT_NO_OPENSSL -+ QCOMPARE(dh.isValid(), false); -+ QCOMPARE(dh.error(), QSslDiffieHellmanParameters::UnsafeParametersError); -+#endif -+} -+ -+QTEST_MAIN(tst_QSslDiffieHellmanParameters) -+#include "tst_qssldiffiehellmanparameters.moc" ---- ./qtbase/tests/auto/network/ssl/qsslsocket/tst_qsslsocket.cpp -+++ ./qtbase/tests/auto/network/ssl/qsslsocket/tst_qsslsocket.cpp -@@ -225,6 +225,10 @@ private slots: - void qtbug18498_peek(); - void qtbug18498_peek2(); - void dhServer(); -+#ifndef QT_NO_OPENSSL -+ void dhServerCustomParamsNull(); -+ void dhServerCustomParams(); -+#endif - void ecdhServer(); - void verifyClientCertificate_data(); - void verifyClientCertificate(); -@@ -2825,10 +2829,8 @@ void tst_QSslSocket::qtbug18498_peek2() - - void tst_QSslSocket::dhServer() - { -- if (!QSslSocket::supportsSsl()) { -- qWarning("SSL not supported, skipping test"); -- return; -- } -+ if (!QSslSocket::supportsSsl()) -+ QSKIP("No SSL support"); - - QFETCH_GLOBAL(bool, setProxy); - if (setProxy) -@@ -2853,6 +2855,87 @@ void tst_QSslSocket::dhServer() - QCOMPARE(client->state(), QAbstractSocket::ConnectedState); - } - -+#ifndef QT_NO_OPENSSL -+void tst_QSslSocket::dhServerCustomParamsNull() -+{ -+ if (!QSslSocket::supportsSsl()) -+ QSKIP("No SSL support"); -+ -+ QFETCH_GLOBAL(bool, setProxy); -+ if (setProxy) -+ return; -+ -+ SslServer server; -+ server.ciphers = QLatin1String("DHE-RSA-AES256-SHA:DHE-DSS-AES256-SHA"); -+ -+ QSslConfiguration cfg = server.config; -+ cfg.setDiffieHellmanParameters(QSslDiffieHellmanParameters()); -+ server.config = cfg; -+ -+ QVERIFY(server.listen()); -+ -+ QEventLoop loop; -+ QTimer::singleShot(5000, &loop, SLOT(quit())); -+ -+ QSslSocketPtr client(new QSslSocket); -+ socket = client.data(); -+ connect(socket, SIGNAL(error(QAbstractSocket::SocketError)), &loop, SLOT(quit())); -+ connect(socket, SIGNAL(sslErrors(QList)), this, SLOT(ignoreErrorSlot())); -+ connect(socket, SIGNAL(encrypted()), &loop, SLOT(quit())); -+ -+ client->connectToHostEncrypted(QHostAddress(QHostAddress::LocalHost).toString(), server.serverPort()); -+ -+ loop.exec(); -+ -+ QVERIFY(client->state() != QAbstractSocket::ConnectedState); -+} -+#endif // QT_NO_OPENSSL -+ -+#ifndef QT_NO_OPENSSL -+void tst_QSslSocket::dhServerCustomParams() -+{ -+ if (!QSslSocket::supportsSsl()) -+ QSKIP("No SSL support"); -+ -+ QFETCH_GLOBAL(bool, setProxy); -+ if (setProxy) -+ return; -+ -+ SslServer server; -+ server.ciphers = QLatin1String("DHE-RSA-AES256-SHA:DHE-DSS-AES256-SHA"); -+ -+ QSslConfiguration cfg = server.config; -+ -+ // Custom 2048-bit DH parameters generated with 'openssl dhparam -outform DER -out out.der -check -2 2048' -+ QSslDiffieHellmanParameters dh(QByteArray::fromBase64(QByteArrayLiteral( -+ "MIIBCAKCAQEAvVA7b8keTfjFutCtTJmP/pnQfw/prKa+GMed/pBWjrC4N1YwnI8h/A861d9WE/VWY7XMTjvjX3/0" -+ "aaU8wEe0EXNpFdlTH+ZMQctQTSJOyQH0RCTwJfDGPCPT9L+c9GKwEKWORH38Earip986HJc0w3UbnfIwXUdsWHiXi" -+ "Z6r3cpyBmTKlsXTFiDVAOUXSiO8d/zOb6zHZbDfyB/VbtZRmnA7TXVn9oMzC0g9+FXHdrV4K+XfdvNZdCegvoAZiy" -+ "R6ZQgNG9aZ36/AQekhg060hp55f9HDPgXqYeNeXBiferjUtU7S9b3s83XhOJAr01/0Tf5dENwCfg2gK36TM8cC4wI" -+ "BAg==")), QSsl::Der); -+ cfg.setDiffieHellmanParameters(dh); -+ -+ server.config = cfg; -+ -+ QVERIFY(server.listen()); -+ -+ QEventLoop loop; -+ QTimer::singleShot(5000, &loop, SLOT(quit())); -+ -+ QSslSocketPtr client(new QSslSocket); -+ socket = client.data(); -+ connect(socket, SIGNAL(error(QAbstractSocket::SocketError)), &loop, SLOT(quit())); -+ connect(socket, SIGNAL(sslErrors(QList)), this, SLOT(ignoreErrorSlot())); -+ connect(socket, SIGNAL(encrypted()), &loop, SLOT(quit())); -+ -+ client->connectToHostEncrypted(QHostAddress(QHostAddress::LocalHost).toString(), server.serverPort()); -+ -+ loop.exec(); -+ -+ QVERIFY(client->state() == QAbstractSocket::ConnectedState); -+} -+#endif // QT_NO_OPENSSL -+ - void tst_QSslSocket::ecdhServer() - { - if (!QSslSocket::supportsSsl()) { ---- ./qtbase/tests/auto/network/ssl/ssl.pro -+++ ./qtbase/tests/auto/network/ssl/ssl.pro -@@ -2,6 +2,7 @@ TEMPLATE=subdirs - SUBDIRS=\ - qsslcertificate \ - qsslcipher \ -+ qssldiffiehellmanparameters \ - qsslellipticcurve \ - qsslerror \ - qsslkey \ diff --git a/buildenv/1.3.x/common/qt5/patches/qt-5.6.1-work-around-client-verification-error.patch b/buildenv/1.3.x/common/qt5/patches/qt-5.6.1-work-around-client-verification-error.patch deleted file mode 100644 index bf166784..00000000 --- a/buildenv/1.3.x/common/qt5/patches/qt-5.6.1-work-around-client-verification-error.patch +++ /dev/null @@ -1,83 +0,0 @@ ---- ./qtbase/src/network/ssl/qsslsocket_openssl.cpp -+++ ./qtbase/src/network/ssl/qsslsocket_openssl.cpp -@@ -271,27 +271,32 @@ int q_X509Callback(int ok, X509_STORE_CT - { - if (!ok) { - // Store the error and at which depth the error was detected. -- _q_sslErrorList()->errors << qMakePair(q_X509_STORE_CTX_get_error(ctx), q_X509_STORE_CTX_get_error_depth(ctx)); --#ifdef QSSLSOCKET_DEBUG -- qCDebug(lcSsl) << "verification error: dumping bad certificate"; -- qCDebug(lcSsl) << QSslCertificatePrivate::QSslCertificate_from_X509(q_X509_STORE_CTX_get_current_cert(ctx)).toPem(); -- qCDebug(lcSsl) << "dumping chain"; -- foreach (QSslCertificate cert, QSslSocketBackendPrivate::STACKOFX509_to_QSslCertificates(q_X509_STORE_CTX_get_chain(ctx))) { -- qCDebug(lcSsl) << "Issuer:" << "O=" << cert.issuerInfo(QSslCertificate::Organization) -- << "CN=" << cert.issuerInfo(QSslCertificate::CommonName) -- << "L=" << cert.issuerInfo(QSslCertificate::LocalityName) -- << "OU=" << cert.issuerInfo(QSslCertificate::OrganizationalUnitName) -- << "C=" << cert.issuerInfo(QSslCertificate::CountryName) -- << "ST=" << cert.issuerInfo(QSslCertificate::StateOrProvinceName); -- qCDebug(lcSsl) << "Subject:" << "O=" << cert.subjectInfo(QSslCertificate::Organization) -- << "CN=" << cert.subjectInfo(QSslCertificate::CommonName) -- << "L=" << cert.subjectInfo(QSslCertificate::LocalityName) -- << "OU=" << cert.subjectInfo(QSslCertificate::OrganizationalUnitName) -- << "C=" << cert.subjectInfo(QSslCertificate::CountryName) -- << "ST=" << cert.subjectInfo(QSslCertificate::StateOrProvinceName); -- qCDebug(lcSsl) << "Valid:" << cert.effectiveDate() << '-' << cert.expiryDate(); -+ int error = q_X509_STORE_CTX_get_error(ctx); -+ int error_depth = q_X509_STORE_CTX_get_error_depth(ctx); -+ X509_VERIFY_PARAM *param = q_X509_STORE_CTX_get0_param(ctx); -+ if ((error_depth != 0) || (error != X509_V_ERR_DEPTH_ZERO_SELF_SIGNED_CERT) || (param->purpose != 0) || (param->trust != 0)) { -+ _q_sslErrorList()->errors << qMakePair(q_X509_STORE_CTX_get_error(ctx), q_X509_STORE_CTX_get_error_depth(ctx)); -+ #ifdef QSSLSOCKET_DEBUG -+ qCDebug(lcSsl) << "verification error: dumping bad certificate"; -+ qCDebug(lcSsl) << QSslCertificatePrivate::QSslCertificate_from_X509(q_X509_STORE_CTX_get_current_cert(ctx)).toPem(); -+ qCDebug(lcSsl) << "dumping chain"; -+ foreach (QSslCertificate cert, QSslSocketBackendPrivate::STACKOFX509_to_QSslCertificates(q_X509_STORE_CTX_get_chain(ctx))) { -+ qCDebug(lcSsl) << "Issuer:" << "O=" << cert.issuerInfo(QSslCertificate::Organization) -+ << "CN=" << cert.issuerInfo(QSslCertificate::CommonName) -+ << "L=" << cert.issuerInfo(QSslCertificate::LocalityName) -+ << "OU=" << cert.issuerInfo(QSslCertificate::OrganizationalUnitName) -+ << "C=" << cert.issuerInfo(QSslCertificate::CountryName) -+ << "ST=" << cert.issuerInfo(QSslCertificate::StateOrProvinceName); -+ qCDebug(lcSsl) << "Subject:" << "O=" << cert.subjectInfo(QSslCertificate::Organization) -+ << "CN=" << cert.subjectInfo(QSslCertificate::CommonName) -+ << "L=" << cert.subjectInfo(QSslCertificate::LocalityName) -+ << "OU=" << cert.subjectInfo(QSslCertificate::OrganizationalUnitName) -+ << "C=" << cert.subjectInfo(QSslCertificate::CountryName) -+ << "ST=" << cert.subjectInfo(QSslCertificate::StateOrProvinceName); -+ qCDebug(lcSsl) << "Valid:" << cert.effectiveDate() << '-' << cert.expiryDate(); -+ } -+ #endif - } --#endif - } - // Always return OK to allow verification to continue. We're handle the - // errors gracefully after collecting all errors, after verification has ---- ./qtbase/src/network/ssl/qsslsocket_openssl_symbols.cpp -+++ ./qtbase/src/network/ssl/qsslsocket_openssl_symbols.cpp -@@ -379,6 +379,7 @@ DEFINEFUNC(int, X509_STORE_CTX_get_error - 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) - DEFINEFUNC(STACK_OF(X509) *, X509_STORE_CTX_get_chain, X509_STORE_CTX *a, a, return 0, return) -+DEFINEFUNC(X509_VERIFY_PARAM *, X509_STORE_CTX_get0_param, X509_STORE_CTX *a, a, return 0, return) - 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) -@@ -925,6 +926,7 @@ bool q_resolveOpenSslSymbols() - RESOLVEFUNC(X509_STORE_CTX_get_error_depth) - RESOLVEFUNC(X509_STORE_CTX_get_current_cert) - RESOLVEFUNC(X509_STORE_CTX_get_chain) -+ RESOLVEFUNC(X509_STORE_CTX_get0_param) - RESOLVEFUNC(X509_cmp) - #ifndef SSLEAY_MACROS - RESOLVEFUNC(X509_dup) ---- ./qtbase/src/network/ssl/qsslsocket_openssl_symbols_p.h -+++ ./qtbase/src/network/ssl/qsslsocket_openssl_symbols_p.h -@@ -461,6 +461,7 @@ int q_X509_STORE_CTX_get_error(X509_STOR - int q_X509_STORE_CTX_get_error_depth(X509_STORE_CTX *ctx); - X509 *q_X509_STORE_CTX_get_current_cert(X509_STORE_CTX *ctx); - STACK_OF(X509) *q_X509_STORE_CTX_get_chain(X509_STORE_CTX *ctx); -+X509_VERIFY_PARAM *q_X509_STORE_CTX_get0_param(X509_STORE_CTX *ctx); - - // Diffie-Hellman support - DH *q_DH_new(); diff --git a/buildenv/1.3.x/common/qt5/patches/qt-5.6.2-qsystemtrayicon-win-nosound.patch b/buildenv/1.3.x/common/qt5/patches/qt-5.6.2-qsystemtrayicon-win-nosound.patch deleted file mode 100644 index 38bdb6d5..00000000 --- a/buildenv/1.3.x/common/qt5/patches/qt-5.6.2-qsystemtrayicon-win-nosound.patch +++ /dev/null @@ -1,13 +0,0 @@ ---- ./qtbase/src/widgets/util/qsystemtrayicon_win.cpp -+++ ./qtbase/src/widgets/util/qsystemtrayicon_win.cpp -@@ -258,6 +258,10 @@ bool QSystemTrayIconSys::showMessage(con - } - if (QSysInfo::windowsVersion() >= QSysInfo::WV_VISTA) - tnd.dwInfoFlags |= NIIF_LARGE_ICON; -+ -+ // Never play audio on notifications. -+ tnd.dwInfoFlags |= NIIF_NOSOUND; -+ - tnd.cbSize = notifyIconSize; - tnd.hWnd = m_hwnd; - tnd.uTimeout = uSecs; diff --git a/buildenv/1.3.x/common/qt5/patches/qt5-allow-bootstrap-build-with-system-mumblebuild-zlib.patch b/buildenv/1.3.x/common/qt5/patches/qt-5.9.6-allow-bootstrap-build-with-system-mumblebuild-zlib.patch similarity index 75% rename from buildenv/1.3.x/common/qt5/patches/qt5-allow-bootstrap-build-with-system-mumblebuild-zlib.patch rename to buildenv/1.3.x/common/qt5/patches/qt-5.9.6-allow-bootstrap-build-with-system-mumblebuild-zlib.patch index 094ef265..d13eeb12 100644 --- a/buildenv/1.3.x/common/qt5/patches/qt5-allow-bootstrap-build-with-system-mumblebuild-zlib.patch +++ b/buildenv/1.3.x/common/qt5/patches/qt-5.9.6-allow-bootstrap-build-with-system-mumblebuild-zlib.patch @@ -2,15 +2,15 @@ Our Mumble build environments have zlib headers in -I/MumbleBuild/${name}/include Qt doesn't pick them up when building -qtbase/src/tools/boostrap. +qtbase/src/tools/bootstrap. This somewhat hacky patch solves the problem on our CentOS buildenv. --- ./qtbase/src/tools/bootstrap/bootstrap.pro +++ ./qtbase/src/tools/bootstrap/bootstrap.pro -@@ -142,6 +142,7 @@ contains(QT_CONFIG, zlib)|cross_compile - win32:LIBS += -luser32 -lole32 -ladvapi32 -lshell32 +@@ -143,6 +143,7 @@ + } load(qt_module) +load(qt_build_extra) diff --git a/buildenv/1.3.x/common/qt5/patches/qt5-avoid-j-underflow-in-harfbuzz.patch b/buildenv/1.3.x/common/qt5/patches/qt-5.9.6-avoid-j-underflow-in-harfbuzz.patch similarity index 81% rename from buildenv/1.3.x/common/qt5/patches/qt5-avoid-j-underflow-in-harfbuzz.patch rename to buildenv/1.3.x/common/qt5/patches/qt-5.9.6-avoid-j-underflow-in-harfbuzz.patch index 11a237ae..91d051f9 100644 --- a/buildenv/1.3.x/common/qt5/patches/qt5-avoid-j-underflow-in-harfbuzz.patch +++ b/buildenv/1.3.x/common/qt5/patches/qt-5.9.6-avoid-j-underflow-in-harfbuzz.patch @@ -3,7 +3,7 @@ Ported from mumble-developers-qt/4.8-mumble --- ./qtbase/src/3rdparty/harfbuzz/src/harfbuzz-gpos.c +++ ./qtbase/src/3rdparty/harfbuzz/src/harfbuzz-gpos.c -@@ -3171,7 +3171,7 @@ static HB_Error Lookup_MarkMarkPos( GPO +@@ -3171,7 +3171,7 @@ i = 1; j = buffer->in_pos - 1; @@ -11,4 +11,4 @@ Ported from mumble-developers-qt/4.8-mumble + while ( i < buffer->in_pos ) { error = HB_GDEF_Get_Glyph_Property( gpos->gdef, IN_GLYPH( j ), - &property ); + &property ); diff --git a/buildenv/1.3.x/common/qt5/patches/qt5-disable-qtsvg-filesystem-access.patch b/buildenv/1.3.x/common/qt5/patches/qt-5.9.6-disable-qtsvg-filesystem-access.patch similarity index 81% rename from buildenv/1.3.x/common/qt5/patches/qt5-disable-qtsvg-filesystem-access.patch rename to buildenv/1.3.x/common/qt5/patches/qt-5.9.6-disable-qtsvg-filesystem-access.patch index deac2532..b6275cdd 100644 --- a/buildenv/1.3.x/common/qt5/patches/qt5-disable-qtsvg-filesystem-access.patch +++ b/buildenv/1.3.x/common/qt5/patches/qt-5.9.6-disable-qtsvg-filesystem-access.patch @@ -1,17 +1,17 @@ --- ./qtsvg/src/svg/qsvghandler.cpp +++ ./qtsvg/src/svg/qsvghandler.cpp -@@ -55,8 +55,6 @@ +@@ -53,8 +53,6 @@ #include "qcolor.h" #include "qtextformat.h" #include "qvector.h" -#include "qfileinfo.h" -#include "qfile.h" + #include "qdir.h" #include "qdebug.h" #include "qmath.h" - #include "qnumeric.h" -@@ -2705,8 +2703,7 @@ static QSvgNode *createImageNode(QSvgNod +@@ -2767,8 +2765,7 @@ } else { - qDebug()<<"QSvgHandler::createImageNode: Unrecognized inline image format!"; + qCDebug(lcSvgHandler) << "QSvgHandler::createImageNode: Unrecognized inline image format!"; } - } else - image = QImage(filename); @@ -19,7 +19,7 @@ if (image.isNull()) { qDebug()<<"couldn't create image from "<styleSheets.append(sheet); - } -- + + Q_UNUSED(addr); } } diff --git a/buildenv/1.3.x/common/qt5/patches/qt-5.9.6-fix-QTBUG-66652.patch b/buildenv/1.3.x/common/qt5/patches/qt-5.9.6-fix-QTBUG-66652.patch new file mode 100644 index 00000000..c020cf61 --- /dev/null +++ b/buildenv/1.3.x/common/qt5/patches/qt-5.9.6-fix-QTBUG-66652.patch @@ -0,0 +1,24 @@ +--- ./qtbase/src/angle/src/common/gles_common.pri ++++ ./qtbase/src/angle/src/common/gles_common.pri +@@ -1,4 +1,4 @@ +-CONFIG += simd no_batch object_parallel_to_source ++CONFIG += simd no_batch + include(common.pri) + + INCLUDEPATH += $$OUT_PWD/.. $$ANGLE_DIR/src/libANGLE +@@ -36,7 +36,6 @@ HEADERS += \ + $$ANGLE_DIR/src/common/utilities.h \ + $$ANGLE_DIR/src/common/MemoryBuffer.h \ + $$ANGLE_DIR/src/common/angleutils.h \ +- $$ANGLE_DIR/src/common/debug.h \ + $$ANGLE_DIR/src/common/event_tracer.h \ + $$ANGLE_DIR/src/libANGLE/angletypes.h \ + $$ANGLE_DIR/src/libANGLE/AttributeMap.h \ +@@ -158,7 +157,6 @@ SOURCES += \ + $$ANGLE_DIR/src/common/utilities.cpp \ + $$ANGLE_DIR/src/common/MemoryBuffer.cpp \ + $$ANGLE_DIR/src/common/angleutils.cpp \ +- $$ANGLE_DIR/src/common/debug.cpp \ + $$ANGLE_DIR/src/common/event_tracer.cpp \ + $$ANGLE_DIR/src/common/Float16ToFloat32.cpp \ + $$ANGLE_DIR/src/third_party/murmurhash/MurmurHash3.cpp \ diff --git a/buildenv/1.3.x/common/qt5/patches/qt-5.9.6-fix-QTBUG-67259.patch b/buildenv/1.3.x/common/qt5/patches/qt-5.9.6-fix-QTBUG-67259.patch new file mode 100644 index 00000000..8301c4b5 --- /dev/null +++ b/buildenv/1.3.x/common/qt5/patches/qt-5.9.6-fix-QTBUG-67259.patch @@ -0,0 +1,54 @@ +--- ./qtbase/src/corelib/tools/qalgorithms.h ++++ ./qtbase/src/corelib/tools/qalgorithms.h +@@ -590,6 +590,7 @@ Q_DECL_CONSTEXPR Q_ALWAYS_INLINE uint qt + } + #elif defined(Q_CC_MSVC) && !defined(Q_OS_WINCE) && !defined(Q_PROCESSOR_ARM) + #define QT_POPCOUNT_CONSTEXPR ++#define QT_POPCOUNT_RELAXED_CONSTEXPR + #define QT_HAS_BUILTIN_CTZ + Q_ALWAYS_INLINE unsigned long qt_builtin_ctz(quint32 val) + { +@@ -676,6 +677,7 @@ Q_ALWAYS_INLINE uint qt_builtin_popcount + + #ifndef QT_POPCOUNT_CONSTEXPR + #define QT_POPCOUNT_CONSTEXPR Q_DECL_CONSTEXPR ++#define QT_POPCOUNT_RELAXED_CONSTEXPR Q_DECL_RELAXED_CONSTEXPR + #endif + + } //namespace QAlgorithmsPrivate +@@ -819,7 +821,7 @@ Q_DECL_RELAXED_CONSTEXPR inline uint qCo + #endif + } + +-Q_DECL_RELAXED_CONSTEXPR inline uint qCountLeadingZeroBits(quint8 v) Q_DECL_NOTHROW ++QT_POPCOUNT_RELAXED_CONSTEXPR inline uint qCountLeadingZeroBits(quint8 v) Q_DECL_NOTHROW + { + #if defined(QT_HAS_BUILTIN_CLZ) + return v ? QAlgorithmsPrivate::qt_builtin_clz(v)-24U : 8U; +@@ -831,7 +833,7 @@ Q_DECL_RELAXED_CONSTEXPR inline uint qCo + #endif + } + +-Q_DECL_RELAXED_CONSTEXPR inline uint qCountLeadingZeroBits(quint16 v) Q_DECL_NOTHROW ++QT_POPCOUNT_RELAXED_CONSTEXPR inline uint qCountLeadingZeroBits(quint16 v) Q_DECL_NOTHROW + { + #if defined(QT_HAS_BUILTIN_CLZS) + return v ? QAlgorithmsPrivate::qt_builtin_clzs(v) : 16U; +@@ -844,7 +846,7 @@ Q_DECL_RELAXED_CONSTEXPR inline uint qCo + #endif + } + +-Q_DECL_RELAXED_CONSTEXPR inline uint qCountLeadingZeroBits(quint64 v) Q_DECL_NOTHROW ++QT_POPCOUNT_RELAXED_CONSTEXPR inline uint qCountLeadingZeroBits(quint64 v) Q_DECL_NOTHROW + { + #if defined(QT_HAS_BUILTIN_CLZLL) + return v ? QAlgorithmsPrivate::qt_builtin_clzll(v) : 64U; +@@ -859,7 +861,7 @@ Q_DECL_RELAXED_CONSTEXPR inline uint qCo + #endif + } + +-Q_DECL_RELAXED_CONSTEXPR inline uint qCountLeadingZeroBits(unsigned long v) Q_DECL_NOTHROW ++QT_POPCOUNT_RELAXED_CONSTEXPR inline uint qCountLeadingZeroBits(unsigned long v) Q_DECL_NOTHROW + { + return qCountLeadingZeroBits(QIntegerForSizeof::Unsigned(v)); + } diff --git a/buildenv/1.3.x/common/qt5/patches/qt-5.6.1-fix-angle-non-sse2-build.patch b/buildenv/1.3.x/common/qt5/patches/qt-5.9.6-fix-angle-non-sse2-build.patch similarity index 85% rename from buildenv/1.3.x/common/qt5/patches/qt-5.6.1-fix-angle-non-sse2-build.patch rename to buildenv/1.3.x/common/qt5/patches/qt-5.9.6-fix-angle-non-sse2-build.patch index 4557192c..0c358ddc 100644 --- a/buildenv/1.3.x/common/qt5/patches/qt-5.6.1-fix-angle-non-sse2-build.patch +++ b/buildenv/1.3.x/common/qt5/patches/qt-5.9.6-fix-angle-non-sse2-build.patch @@ -8,9 +8,9 @@ no-op SSE2 functions for non-SSE2 targets. Thus, it is safe, and expected, to include this file in SOURCES instead of SSE2_SOURCES. In fact, it's expected. ---- ./qtbase/src/angle/src/libGLESv2/libGLESv2.pro -+++ ./qtbase/src/angle/src/libGLESv2/libGLESv2.pro -@@ -224,9 +224,8 @@ SOURCES += \ +--- ./qtbase/src/angle/src/common/gles_common.pri ++++ ./qtbase/src/angle/src/common/gles_common.pri +@@ -239,9 +239,8 @@ $$ANGLE_DIR/src/libGLESv2/entry_points_gles_3_0.cpp \ $$ANGLE_DIR/src/libGLESv2/entry_points_gles_3_0_ext.cpp \ $$ANGLE_DIR/src/libGLESv2/global_state.cpp \ diff --git a/buildenv/1.3.x/common/qt5/patches/qt5-fix-no-sse2-win32-build.patch b/buildenv/1.3.x/common/qt5/patches/qt-5.9.6-fix-no-sse2-win32-build.patch similarity index 94% rename from buildenv/1.3.x/common/qt5/patches/qt5-fix-no-sse2-win32-build.patch rename to buildenv/1.3.x/common/qt5/patches/qt-5.9.6-fix-no-sse2-win32-build.patch index 26d3ca88..0cc72117 100644 --- a/buildenv/1.3.x/common/qt5/patches/qt5-fix-no-sse2-win32-build.patch +++ b/buildenv/1.3.x/common/qt5/patches/qt-5.9.6-fix-no-sse2-win32-build.patch @@ -1,6 +1,6 @@ --- ./qtbase/src/gui/painting/qdrawhelper_ssse3.cpp +++ ./qtbase/src/gui/painting/qdrawhelper_ssse3.cpp -@@ -35,6 +35,14 @@ +@@ -41,6 +41,14 @@ #ifdef QT_COMPILER_SUPPORTS_SSSE3 diff --git a/buildenv/1.3.x/common/qt5/patches/qt-5.6.2-fix-qmake-unixmakefile-lib-escaping.patch b/buildenv/1.3.x/common/qt5/patches/qt-5.9.6-fix-qmake-unixmakefile-lib-escaping.patch similarity index 93% rename from buildenv/1.3.x/common/qt5/patches/qt-5.6.2-fix-qmake-unixmakefile-lib-escaping.patch rename to buildenv/1.3.x/common/qt5/patches/qt-5.9.6-fix-qmake-unixmakefile-lib-escaping.patch index 3edd9ff9..9cf40ea7 100644 --- a/buildenv/1.3.x/common/qt5/patches/qt-5.6.2-fix-qmake-unixmakefile-lib-escaping.patch +++ b/buildenv/1.3.x/common/qt5/patches/qt-5.9.6-fix-qmake-unixmakefile-lib-escaping.patch @@ -12,7 +12,7 @@ escape paths that include spaces in linker flags. diff -urNp qmake.clean/generators/unix/unixmake.cpp --- ./qtbase/qmake/generators/unix/unixmake.cpp +++ ./qtbase/qmake/generators/unix/unixmake.cpp -@@ -107,7 +107,7 @@ UnixMakefileGenerator::init() +@@ -106,7 +106,7 @@ for(int i = 0; i < libdirs.size(); ++i) { if(!project->isEmpty("QMAKE_LFLAGS_RPATH") && project->isActiveConfig("rpath_libdirs")) project->values("QMAKE_LFLAGS") += var("QMAKE_LFLAGS_RPATH") + libdirs[i]; @@ -21,7 +21,7 @@ diff -urNp qmake.clean/generators/unix/unixmake.cpp } } ldadd += project->values("QMAKE_LIBDIR_FLAGS"); -@@ -115,7 +115,7 @@ UnixMakefileGenerator::init() +@@ -114,7 +114,7 @@ if (!project->isEmpty("QMAKE_FRAMEWORKPATH")) { const ProStringList &fwdirs = project->values("QMAKE_FRAMEWORKPATH"); for (int i = 0; i < fwdirs.size(); ++i) @@ -30,7 +30,7 @@ diff -urNp qmake.clean/generators/unix/unixmake.cpp } ldadd += project->values("QMAKE_FRAMEWORKPATH_FLAGS"); } -@@ -142,14 +142,14 @@ UnixMakefileGenerator::init() +@@ -141,14 +141,14 @@ rpathdir.prepend(rpathbase + '/'); project->values("QMAKE_LFLAGS").insertUnique(project->values("QMAKE_LFLAGS_REL_RPATH")); } @@ -46,4 +46,3 @@ diff -urNp qmake.clean/generators/unix/unixmake.cpp + project->values("QMAKE_LFLAGS") += var("QMAKE_LFLAGS_RPATHLINK") + QFileInfo(rpathdirs[i].toQString()).absoluteFilePath(); } } - diff --git a/buildenv/1.3.x/common/qt5/patches/qt5-fix-win32-no-sse2-build-for-angle.patch b/buildenv/1.3.x/common/qt5/patches/qt-5.9.6-fix-win32-no-sse2-build-for-angle.patch similarity index 94% rename from buildenv/1.3.x/common/qt5/patches/qt5-fix-win32-no-sse2-build-for-angle.patch rename to buildenv/1.3.x/common/qt5/patches/qt-5.9.6-fix-win32-no-sse2-build-for-angle.patch index c4f50c1e..b6d9aaf3 100644 --- a/buildenv/1.3.x/common/qt5/patches/qt5-fix-win32-no-sse2-build-for-angle.patch +++ b/buildenv/1.3.x/common/qt5/patches/qt-5.9.6-fix-win32-no-sse2-build-for-angle.patch @@ -1,6 +1,6 @@ --- ./qtbase/src/3rdparty/angle/src/common/platform.h +++ ./qtbase/src/3rdparty/angle/src/common/platform.h -@@ -96,7 +96,7 @@ +@@ -87,7 +87,7 @@ # undef far #endif @@ -8,4 +8,3 @@ +#if !defined(_M_ARM) && !defined(ANGLE_PLATFORM_ANDROID) && !(defined(_M_IX86) && _M_IX86_FP < 2) # define ANGLE_USE_SSE #endif - diff --git a/buildenv/1.3.x/common/qt5/patches/qt5-force-qtimageformats-jasper-no-libjpeg.patch b/buildenv/1.3.x/common/qt5/patches/qt-5.9.6-force-qtimageformats-jasper-no-libjpeg.patch similarity index 70% rename from buildenv/1.3.x/common/qt5/patches/qt5-force-qtimageformats-jasper-no-libjpeg.patch rename to buildenv/1.3.x/common/qt5/patches/qt-5.9.6-force-qtimageformats-jasper-no-libjpeg.patch index 6c6599e2..ab6db9ec 100644 --- a/buildenv/1.3.x/common/qt5/patches/qt5-force-qtimageformats-jasper-no-libjpeg.patch +++ b/buildenv/1.3.x/common/qt5/patches/qt-5.9.6-force-qtimageformats-jasper-no-libjpeg.patch @@ -1,9 +1,11 @@ --- ./qtimageformats/src/3rdparty/jasper.pri +++ ./qtimageformats/src/3rdparty/jasper.pri -@@ -53,13 +53,5 @@ SOURCES += \ +@@ -53,15 +53,5 @@ + $$PWD/jasper/src/libjasper/pnm/pnm_enc.c \ + $$PWD/jasper/src/libjasper/ras/ras_cod.c \ $$PWD/jasper/src/libjasper/ras/ras_dec.c \ - $$PWD/jasper/src/libjasper/ras/ras_enc.c - +- $$PWD/jasper/src/libjasper/ras/ras_enc.c +- -LIBJPEG_DEP = $$PWD/../../../qtbase/src/3rdparty/libjpeg.pri -exists($${LIBJPEG_DEP}) { - include($${LIBJPEG_DEP}) @@ -14,5 +16,5 @@ - SOURCES += \ - $$PWD/jasper/src/libjasper/jpg/jpg_dummy.c -} -+SOURCES += \ ++ $$PWD/jasper/src/libjasper/ras/ras_enc.c \ + $$PWD/jasper/src/libjasper/jpg/jpg_dummy.c diff --git a/buildenv/1.3.x/common/qt5/patches/qt5-mariadb-support.patch b/buildenv/1.3.x/common/qt5/patches/qt-5.9.6-mariadb-support.patch similarity index 65% rename from buildenv/1.3.x/common/qt5/patches/qt5-mariadb-support.patch rename to buildenv/1.3.x/common/qt5/patches/qt-5.9.6-mariadb-support.patch index a3b1a7c9..15e37eaa 100644 --- a/buildenv/1.3.x/common/qt5/patches/qt5-mariadb-support.patch +++ b/buildenv/1.3.x/common/qt5/patches/qt-5.9.6-mariadb-support.patch @@ -1,6 +1,6 @@ ---- ./qtbase/src/sql/drivers/mysql/qsql_mysql.cpp -+++ ./qtbase/src/sql/drivers/mysql/qsql_mysql.cpp -@@ -75,6 +75,12 @@ Q_DECLARE_METATYPE(MYSQL_STMT*) +--- ./qtbase/src/plugins/sqldrivers/mysql/qsql_mysql.cpp ++++ ./qtbase/src/plugins/sqldrivers/mysql/qsql_mysql.cpp +@@ -74,6 +74,12 @@ # define Q_CLIENT_MULTI_STATEMENTS 0 #endif @@ -13,11 +13,11 @@ QT_BEGIN_NAMESPACE class QMYSQLDriverPrivate : public QSqlDriverPrivate ---- ./qtbase/src/sql/drivers/mysql/qsql_mysql_p.h -+++ ./qtbase/src/sql/drivers/mysql/qsql_mysql_p.h -@@ -56,12 +56,14 @@ +--- ./qtbase/src/plugins/sqldrivers/mysql/qsql_mysql_p.h ++++ ./qtbase/src/plugins/sqldrivers/mysql/qsql_mysql_p.h +@@ -53,12 +53,14 @@ + #include - #include +// mysql.h includes windows.h, whose min/max macros break qdatetime.h. keep them out. +#define NOMINMAX diff --git a/buildenv/1.3.x/common/qt5/patches/qt5-mysql-cast-mysql_options-arg.patch b/buildenv/1.3.x/common/qt5/patches/qt-5.9.6-mysql-cast-mysql_options-arg.patch similarity index 78% rename from buildenv/1.3.x/common/qt5/patches/qt5-mysql-cast-mysql_options-arg.patch rename to buildenv/1.3.x/common/qt5/patches/qt-5.9.6-mysql-cast-mysql_options-arg.patch index 0aba50bf..394c35bd 100644 --- a/buildenv/1.3.x/common/qt5/patches/qt5-mysql-cast-mysql_options-arg.patch +++ b/buildenv/1.3.x/common/qt5/patches/qt-5.9.6-mysql-cast-mysql_options-arg.patch @@ -1,8 +1,8 @@ ---- ./qtbase/src/sql/drivers/mysql/qsql_mysql.cpp -+++ ./qtbase/src/sql/drivers/mysql/qsql_mysql.cpp -@@ -1325,11 +1325,11 @@ bool QMYSQLDriver::open(const QString& d +--- ./qtbase/src/plugins/sqldrivers/mysql/qsql_mysql.cpp ++++ ./qtbase/src/plugins/sqldrivers/mysql/qsql_mysql.cpp +@@ -1383,11 +1383,11 @@ - #if MYSQL_VERSION_ID >= 50000 + #if MYSQL_VERSION_ID >= 50100 if (connectTimeout != 0) - mysql_options(d->mysql, MYSQL_OPT_CONNECT_TIMEOUT, &connectTimeout); + mysql_options(d->mysql, MYSQL_OPT_CONNECT_TIMEOUT, reinterpret_cast(&connectTimeout)); @@ -15,9 +15,9 @@ #endif MYSQL *mysql = mysql_real_connect(d->mysql, host.isNull() ? static_cast(0) -@@ -1354,7 +1354,7 @@ bool QMYSQLDriver::open(const QString& d +@@ -1412,7 +1412,7 @@ } - #if MYSQL_VERSION_ID >= 50000 + #if MYSQL_VERSION_ID >= 50100 if (reconnect) - mysql_options(d->mysql, MYSQL_OPT_RECONNECT, &reconnect); + mysql_options(d->mysql, MYSQL_OPT_RECONNECT, reinterpret_cast(&reconnect)); diff --git a/buildenv/1.3.x/common/qt5/patches/qt5-qlogging-disable-thread-local.patch b/buildenv/1.3.x/common/qt5/patches/qt-5.9.6-qlogging-disable-thread-local.patch similarity index 80% rename from buildenv/1.3.x/common/qt5/patches/qt5-qlogging-disable-thread-local.patch rename to buildenv/1.3.x/common/qt5/patches/qt-5.9.6-qlogging-disable-thread-local.patch index 832de7fe..98ff9438 100644 --- a/buildenv/1.3.x/common/qt5/patches/qt5-qlogging-disable-thread-local.patch +++ b/buildenv/1.3.x/common/qt5/patches/qt-5.9.6-qlogging-disable-thread-local.patch @@ -1,6 +1,6 @@ --- ./qtbase/src/corelib/global/qlogging.cpp +++ ./qtbase/src/corelib/global/qlogging.cpp -@@ -1569,7 +1569,7 @@ static void qDefaultMsgHandler(QtMsgType +@@ -1612,7 +1612,7 @@ qDefaultMessageHandler(type, emptyContext, QString::fromLocal8Bit(buf)); } @@ -8,4 +8,3 @@ +#if 0 static thread_local bool msgHandlerGrabbed = false; - diff --git a/buildenv/1.3.x/common/qt5/patches/qt5-qssldiffiehellmanparameters-c++98-support.patch b/buildenv/1.3.x/common/qt5/patches/qt-5.9.6-qssldiffiehellmanparameters-c++98-support.patch similarity index 96% rename from buildenv/1.3.x/common/qt5/patches/qt5-qssldiffiehellmanparameters-c++98-support.patch rename to buildenv/1.3.x/common/qt5/patches/qt-5.9.6-qssldiffiehellmanparameters-c++98-support.patch index 9e8057fd..75a6f38d 100644 --- a/buildenv/1.3.x/common/qt5/patches/qt5-qssldiffiehellmanparameters-c++98-support.patch +++ b/buildenv/1.3.x/common/qt5/patches/qt-5.9.6-qssldiffiehellmanparameters-c++98-support.patch @@ -1,6 +1,6 @@ --- ./qtbase/src/network/ssl/qssldiffiehellmanparameters.h +++ ./qtbase/src/network/ssl/qssldiffiehellmanparameters.h -@@ -83,11 +83,15 @@ public: +@@ -83,11 +83,15 @@ Q_NETWORK_EXPORT QSslDiffieHellmanParameters(); Q_NETWORK_EXPORT QSslDiffieHellmanParameters(const QSslDiffieHellmanParameters &other); @@ -15,4 +15,3 @@ +#endif void swap(QSslDiffieHellmanParameters &other) Q_DECL_NOTHROW { qSwap(d, other.d); } - diff --git a/buildenv/1.3.x/common/qt5/patches/qt5-add-realtime-flag-for-systray-messages.patch b/buildenv/1.3.x/common/qt5/patches/qt-5.9.6-qsystemtrayicon-win-realtime-nosound.patch similarity index 63% rename from buildenv/1.3.x/common/qt5/patches/qt5-add-realtime-flag-for-systray-messages.patch rename to buildenv/1.3.x/common/qt5/patches/qt-5.9.6-qsystemtrayicon-win-realtime-nosound.patch index bc961311..6dd514ed 100644 --- a/buildenv/1.3.x/common/qt5/patches/qt5-add-realtime-flag-for-systray-messages.patch +++ b/buildenv/1.3.x/common/qt5/patches/qt-5.9.6-qsystemtrayicon-win-realtime-nosound.patch @@ -1,14 +1,12 @@ -Ported from mumble-developers-qt/4.8-mumble -784fcd444aed71754ebfcab0cd9d8850e76d0b2a - --- ./qtbase/src/widgets/util/qsystemtrayicon_win.cpp +++ ./qtbase/src/widgets/util/qsystemtrayicon_win.cpp -@@ -274,7 +274,7 @@ bool QSystemTrayIconSys::showMessage(con - tnd.cbSize = notifyIconSize; +@@ -279,6 +279,8 @@ tnd.hWnd = m_hwnd; tnd.uTimeout = uSecs; - tnd.uFlags = NIF_INFO | NIF_SHOWTIP; + tnd.uFlags = NIF_INFO | NIF_SHOWTIP | NIF_REALTIME; ++ // Never play audio on notifications. ++ tnd.dwInfoFlags |= NIIF_NOSOUND; return Shell_NotifyIcon(NIM_MODIFY, &tnd); } diff --git a/buildenv/1.3.x/common/qt5/patches/qt5-qtimageformats-jasper-4-color-rct-debian.patch b/buildenv/1.3.x/common/qt5/patches/qt-5.9.6-qtimageformats-jasper-4-color-rct-debian.patch similarity index 92% rename from buildenv/1.3.x/common/qt5/patches/qt5-qtimageformats-jasper-4-color-rct-debian.patch rename to buildenv/1.3.x/common/qt5/patches/qt-5.9.6-qtimageformats-jasper-4-color-rct-debian.patch index ad7a0702..b4ce0604 100644 --- a/buildenv/1.3.x/common/qt5/patches/qt5-qtimageformats-jasper-4-color-rct-debian.patch +++ b/buildenv/1.3.x/common/qt5/patches/qt-5.9.6-qtimageformats-jasper-4-color-rct-debian.patch @@ -4,7 +4,7 @@ Based on patch from https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=469786 --- ./qtimageformats/src/3rdparty/jasper/src/libjasper/jpc/jpc_dec.c +++ ./qtimageformats/src/3rdparty/jasper/src/libjasper/jpc/jpc_dec.c -@@ -1069,12 +1069,12 @@ static int jpc_dec_tiledecode(jpc_dec_t +@@ -1069,12 +1069,12 @@ /* Apply an inverse intercomponent transform if necessary. */ switch (tile->cp->mctid) { case JPC_MCT_RCT: diff --git a/buildenv/1.3.x/common/qt5/patches/qt5-qtimageformats-only-icns.patch b/buildenv/1.3.x/common/qt5/patches/qt-5.9.6-qtimageformats-only-icns.patch similarity index 82% rename from buildenv/1.3.x/common/qt5/patches/qt5-qtimageformats-only-icns.patch rename to buildenv/1.3.x/common/qt5/patches/qt-5.9.6-qtimageformats-only-icns.patch index 4640a72a..f4862ff5 100644 --- a/buildenv/1.3.x/common/qt5/patches/qt5-qtimageformats-only-icns.patch +++ b/buildenv/1.3.x/common/qt5/patches/qt-5.9.6-qtimageformats-only-icns.patch @@ -10,16 +10,14 @@ Since icns is the only one we require, only build it. --- ./qtimageformats/src/plugins/imageformats/imageformats.pro +++ ./qtimageformats/src/plugins/imageformats/imageformats.pro -@@ -1,11 +1,5 @@ +@@ -1,10 +1,4 @@ TEMPLATE = subdirs -SUBDIRS = \ -- dds \ -- icns \ +-# dds \ - tga \ - tiff \ - wbmp \ - webp -+SUBDIRS = icns - config_jasper: SUBDIRS += jp2 - config_libmng: SUBDIRS += mng + qtConfig(regularexpression): \ + SUBDIRS += icns diff --git a/buildenv/1.3.x/common/qt5/patches/qt5-quick-and-dirty-hack-to-avoid-ssl-error-poisoning.patch b/buildenv/1.3.x/common/qt5/patches/qt-5.9.6-quick-and-dirty-hack-to-avoid-ssl-error-poisoning.patch similarity index 84% rename from buildenv/1.3.x/common/qt5/patches/qt5-quick-and-dirty-hack-to-avoid-ssl-error-poisoning.patch rename to buildenv/1.3.x/common/qt5/patches/qt-5.9.6-quick-and-dirty-hack-to-avoid-ssl-error-poisoning.patch index 7e39cb4e..35f34aff 100644 --- a/buildenv/1.3.x/common/qt5/patches/qt5-quick-and-dirty-hack-to-avoid-ssl-error-poisoning.patch +++ b/buildenv/1.3.x/common/qt5/patches/qt-5.9.6-quick-and-dirty-hack-to-avoid-ssl-error-poisoning.patch @@ -3,7 +3,7 @@ Based on mumble-developers-qt/4.8-mumble --- ./qtbase/src/network/ssl/qsslsocket_openssl.cpp +++ ./qtbase/src/network/ssl/qsslsocket_openssl.cpp -@@ -1164,6 +1164,9 @@ bool QSslSocketBackendPrivate::startHand +@@ -1094,6 +1094,9 @@ return false; } @@ -12,4 +12,3 @@ Based on mumble-developers-qt/4.8-mumble + // store peer certificate chain storePeerCertificates(); - diff --git a/buildenv/1.3.x/common/qt5/patches/qt-5.5-remove-escaping-for-nmake-batch-mode-inference-rules.patch b/buildenv/1.3.x/common/qt5/patches/qt-5.9.6-remove-escaping-for-nmake-batch-mode-inference-rules.patch similarity index 95% rename from buildenv/1.3.x/common/qt5/patches/qt-5.5-remove-escaping-for-nmake-batch-mode-inference-rules.patch rename to buildenv/1.3.x/common/qt5/patches/qt-5.9.6-remove-escaping-for-nmake-batch-mode-inference-rules.patch index 9686adf5..8628a9da 100644 --- a/buildenv/1.3.x/common/qt5/patches/qt-5.5-remove-escaping-for-nmake-batch-mode-inference-rules.patch +++ b/buildenv/1.3.x/common/qt5/patches/qt-5.9.6-remove-escaping-for-nmake-batch-mode-inference-rules.patch @@ -1,6 +1,6 @@ --- ./qtbase/qmake/generators/win32/msvc_nmake.cpp +++ ./qtbase/qmake/generators/win32/msvc_nmake.cpp -@@ -525,13 +525,13 @@ void NmakeMakefileGenerator::writeImplic +@@ -531,13 +531,13 @@ if (objDir == ".\\") objDir = ""; for(QStringList::Iterator cppit = Option::cpp_ext.begin(); cppit != Option::cpp_ext.end(); ++cppit) diff --git a/buildenv/1.3.x/common/qt5/patches/qt5-we-want-a-buffer-for-named-pipes.patch b/buildenv/1.3.x/common/qt5/patches/qt-5.9.6-we-want-a-buffer-for-named-pipes.patch similarity index 72% rename from buildenv/1.3.x/common/qt5/patches/qt5-we-want-a-buffer-for-named-pipes.patch rename to buildenv/1.3.x/common/qt5/patches/qt-5.9.6-we-want-a-buffer-for-named-pipes.patch index 49159681..66e2bb12 100644 --- a/buildenv/1.3.x/common/qt5/patches/qt5-we-want-a-buffer-for-named-pipes.patch +++ b/buildenv/1.3.x/common/qt5/patches/qt-5.9.6-we-want-a-buffer-for-named-pipes.patch @@ -3,16 +3,19 @@ Ported from mumble-developers-qt/4.8-mumble --- ./qtbase/src/network/socket/qlocalserver_win.cpp +++ ./qtbase/src/network/socket/qlocalserver_win.cpp -@@ -53,7 +53,7 @@ - // The buffer size need to be 0 otherwise data could be - // lost if the socket that has written data closes the connection - // before it is read. Pipewriter is used for write buffering. +@@ -48,10 +48,7 @@ + #include + #include + +-// The buffer size need to be 0 otherwise data could be +-// lost if the socket that has written data closes the connection +-// before it is read. Pipewriter is used for write buffering. -#define BUFSIZE 0 +#define BUFSIZE 4096 // ###: This should be a property. Should replace the insane 50 on unix as well. #define SYSTEM_MAX_PENDING_SOCKETS 8 -@@ -311,8 +311,10 @@ void QLocalServerPrivate::closeServer() +@@ -319,8 +316,10 @@ connectionEventNotifier->deleteLater(); connectionEventNotifier = 0; CloseHandle(eventHandle); @@ -23,4 +26,3 @@ Ported from mumble-developers-qt/4.8-mumble + } listeners.clear(); } - diff --git a/buildenv/1.3.x/common/qt5/patches/qt-5.6.2-windows-platform-plugin-use-ShellExecuteEx.patch b/buildenv/1.3.x/common/qt5/patches/qt-5.9.6-windows-platform-plugin-use-ShellExecuteEx.patch similarity index 95% rename from buildenv/1.3.x/common/qt5/patches/qt-5.6.2-windows-platform-plugin-use-ShellExecuteEx.patch rename to buildenv/1.3.x/common/qt5/patches/qt-5.9.6-windows-platform-plugin-use-ShellExecuteEx.patch index c8288771..767f9226 100644 --- a/buildenv/1.3.x/common/qt5/patches/qt-5.6.2-windows-platform-plugin-use-ShellExecuteEx.patch +++ b/buildenv/1.3.x/common/qt5/patches/qt-5.9.6-windows-platform-plugin-use-ShellExecuteEx.patch @@ -1,6 +1,6 @@ --- ./qtbase/src/plugins/platforms/windows/qwindowsservices.cpp +++ ./qtbase/src/plugins/platforms/windows/qwindowsservices.cpp -@@ -54,13 +54,15 @@ static inline bool shellExecute(const QU +@@ -57,13 +57,15 @@ const QString nativeFilePath = url.isLocalFile() && !url.hasFragment() && !url.hasQuery() ? QDir::toNativeSeparators(url.toLocalFile()) : url.toString(QUrl::FullyEncoded); diff --git a/buildenv/1.3.x/common/qt5/patches/qt5-build-qbytearray_mac-and-qstring_mac-for-qmake.patch b/buildenv/1.3.x/common/qt5/patches/qt5-build-qbytearray_mac-and-qstring_mac-for-qmake.patch deleted file mode 100644 index 3c5238a4..00000000 --- a/buildenv/1.3.x/common/qt5/patches/qt5-build-qbytearray_mac-and-qstring_mac-for-qmake.patch +++ /dev/null @@ -1,43 +0,0 @@ -The patch - qt5-macos-handle-qsetting-strings-with-embedded-zero-bytes-QTBUG-56124.patch -requires this change to configure for the bootstrapped qmake to build. - ---- ./qtbase/qmake/Makefile.unix -+++ ./qtbase/qmake/Makefile.unix -@@ -262,6 +262,9 @@ qarraydata.o: $(SOURCE_PATH)/src/corelib - qbytearray.o: $(SOURCE_PATH)/src/corelib/tools/qbytearray.cpp - $(CXX) -c -o $@ $(CXXFLAGS) $(SOURCE_PATH)/src/corelib/tools/qbytearray.cpp - -+qbytearray_mac.o: $(SOURCE_PATH)/src/corelib/tools/qbytearray_mac.mm -+ $(CXX) -c -o $@ $(CXXFLAGS) $(SOURCE_PATH)/src/corelib/tools/qbytearray_mac.mm -+ - qvsnprintf.o: $(SOURCE_PATH)/src/corelib/tools/qvsnprintf.cpp - $(CXX) -c -o $@ $(CXXFLAGS) $(SOURCE_PATH)/src/corelib/tools/qvsnprintf.cpp - -@@ -286,6 +289,9 @@ qtextcodec.o: $(SOURCE_PATH)/src/corelib - qstring.o: $(SOURCE_PATH)/src/corelib/tools/qstring.cpp - $(CXX) -c -o $@ $(CXXFLAGS) $(SOURCE_PATH)/src/corelib/tools/qstring.cpp - -+qstring_mac.o: $(SOURCE_PATH)/src/corelib/tools/qstring_mac.mm -+ $(CXX) -c -o $@ $(CXXFLAGS) $(SOURCE_PATH)/src/corelib/tools/qstring_mac.mm -+ - qstring_compat.o: $(SOURCE_PATH)/src/corelib/tools/qstring_compat.cpp - $(CXX) -c -o $@ $(CXXFLAGS) $(SOURCE_PATH)/src/corelib/tools/qstring_compat.cpp - ---- ./qtbase/configure -+++ ./qtbase/configure -@@ -4090,10 +4090,14 @@ if true; then ###[ '!' -f "$outpath/bin/ - EXTRA_CFLAGS="$EXTRA_CFLAGS \$(CARBON_CFLAGS)" - EXTRA_CXXFLAGS="$EXTRA_CXXFLAGS \$(CARBON_CFLAGS)" - EXTRA_OBJS="$EXTRA_OBJS \ -+ qbytearray_mac.o \ -+ qstring_mac.o \ - qsettings_mac.o \ - qcore_mac.o \ - qcore_mac_objc.o" - EXTRA_SRCS="$EXTRA_SRCS \ -+ \"\$(SOURCE_PATH)/src/corelib/tools/qbytearray_mac.m\" \ -+ \"\$(SOURCE_PATH)/src/corelib/tools/qstring_mac.mm\" \ - \"\$(SOURCE_PATH)/src/corelib/io/qsettings_mac.cpp\" \ - \"\$(SOURCE_PATH)/src/corelib/kernel/qcore_mac.cpp\" \ - \"\$(SOURCE_PATH)/src/corelib/kernel/qcore_mac_objc.mm\"" diff --git a/buildenv/1.3.x/common/qt5/patches/qt5-configureapp-use-msvc2013-mkspec.patch b/buildenv/1.3.x/common/qt5/patches/qt5-configureapp-use-msvc2013-mkspec.patch deleted file mode 100644 index f0ca5adf..00000000 --- a/buildenv/1.3.x/common/qt5/patches/qt5-configureapp-use-msvc2013-mkspec.patch +++ /dev/null @@ -1,11 +0,0 @@ ---- ./qtbase/tools/configure/Makefile.win32 -+++ ./qtbase/tools/configure/Makefile.win32 -@@ -4,7 +4,7 @@ CONFSRC = $(TOOLSRC)\configure - - PCH = configure_pch.pch - DEFINES = -DUNICODE -DQT_NO_CODECS -DQT_NO_TEXTCODEC -DQT_NO_UNICODETABLES -DQT_LITE_COMPONENT -DQT_NO_COMPRESS -DQT_NO_THREAD -DQT_NO_QOBJECT -DQT_NO_GEOM_VARIANT -D_CRT_SECURE_NO_DEPRECATE -DQT_BOOTSTRAPPED -DQT_BUILD_CONFIGURE -DQT_VERSION_STR=\"$(QTVERSION)\" -DQT_VERSION_MAJOR=$(QT_VERSION_MAJOR) -DQT_VERSION_MINOR=$(QT_VERSION_MINOR) -DQT_VERSION_PATCH=$(QT_VERSION_PATCH) --INCPATH = -I"..\..\include" -I"..\..\include\QtCore" -I"..\..\include\QtCore\$(QTVERSION)" -I"..\..\include\QtCore\$(QTVERSION)\QtCore" -I"$(TOOLSRC)\shared" -I"$(QTSRC)mkspecs\win32-msvc2008" -+INCPATH = -I"..\..\include" -I"..\..\include\QtCore" -I"..\..\include\QtCore\$(QTVERSION)" -I"..\..\include\QtCore\$(QTVERSION)\QtCore" -I"$(TOOLSRC)\shared" -I"$(QTSRC)mkspecs\win32-msvc2013" - CXXFLAGS_BARE = -nologo -Zc:wchar_t -W3 -GR -EHsc -w34100 -w34189 -wd4577 $(CFLAGS_CRT) $(EXTRA_CXXFLAGS) $(DEFINES) $(INCPATH) - CXXFLAGS = -FIconfigure_pch.h -Yuconfigure_pch.h -Fp$(PCH) -MP $(CXXFLAGS_BARE) - LINK = link diff --git a/buildenv/1.3.x/common/qt5/patches/qt5-define-using-v110-sdk71-for-rc-exe-when-targetting-winxp.patch b/buildenv/1.3.x/common/qt5/patches/qt5-define-using-v110-sdk71-for-rc-exe-when-targetting-winxp.patch deleted file mode 100644 index 7ca43970..00000000 --- a/buildenv/1.3.x/common/qt5/patches/qt5-define-using-v110-sdk71-for-rc-exe-when-targetting-winxp.patch +++ /dev/null @@ -1,23 +0,0 @@ ---- ./qtbase/mkspecs/win32-msvc2013/qmake.conf -+++ ./qtbase/mkspecs/win32-msvc2013/qmake.conf -@@ -97,3 +97,20 @@ VCPROJ_EXTENSION = .vcxproj - VCSOLUTION_EXTENSION = .sln - VCPROJ_KEYWORD = Qt4VSv1.0 - load(qt_config) -+ -+# Note: this happens after loading qt_config. -+equals(QMAKE_TARGET_OS, xp) { -+ # When building from the command line, this -+ # preprocessor define is automatically used -+ # by cl.exe via the %CL% environment variable. -+ # There doesn't seem to be an equivalent of -+ # this environment variable for rc.exe, so -+ # we just define it here. -+ # -+ # Having _USING_V110_SDK71_ defined suppresses -+ # an annoying warning from the system headers: -+ # -+ # C:\Program Files (x86)\Microsoft Visual Studio 12.0\VC\INCLUDE\sal.h(2886) : warning RC4005: '__useHeader' : redefinition -+ # C:\Program Files (x86)\Microsoft Visual Studio 12.0\VC\INCLUDE\sal.h(2896) : warning RC4005: '__on_failure' : redefinition -+ QMAKE_RC = $$QMAKE_RC /D_USING_V110_SDK71_ -+} diff --git a/buildenv/1.3.x/common/qt5/patches/qt5-disable-qssldiffiehellmanparameters-tests-for-qt-no-ssl.patch b/buildenv/1.3.x/common/qt5/patches/qt5-disable-qssldiffiehellmanparameters-tests-for-qt-no-ssl.patch deleted file mode 100644 index 97b7f143..00000000 --- a/buildenv/1.3.x/common/qt5/patches/qt5-disable-qssldiffiehellmanparameters-tests-for-qt-no-ssl.patch +++ /dev/null @@ -1,66 +0,0 @@ -From 9466d0e63365bb5fb94f95d46ba9b1ab053f3289 Mon Sep 17 00:00:00 2001 -From: =?UTF-8?q?Andr=C3=A9=20Klitzing?= -Date: Fri, 10 Jun 2016 10:07:16 +0200 -Subject: [PATCH] Disable QSslDiffieHellmanParameters tests for QT_NO_SSL - builds - -Change-Id: Ie0b7e9c819ddd1627709f64c30c8d2374bf50c9b -Reviewed-by: Timur Pocheptsov ---- - .../qssldiffiehellmanparameters/tst_qssldiffiehellmanparameters.cpp | 6 ++++++ - tests/auto/network/ssl/ssl.pro | 4 ++-- - 2 files changed, 8 insertions(+), 2 deletions(-) - -diff --git a/tests/auto/network/ssl/qssldiffiehellmanparameters/tst_qssldiffiehellmanparameters.cpp b/tests/auto/network/ssl/qssldiffiehellmanparameters/tst_qssldiffiehellmanparameters.cpp -index de3667e..32cc982 100644 ---- a/tests/auto/network/ssl/qssldiffiehellmanparameters/tst_qssldiffiehellmanparameters.cpp -+++ b/tests/auto/network/ssl/qssldiffiehellmanparameters/tst_qssldiffiehellmanparameters.cpp -@@ -46,6 +46,7 @@ class tst_QSslDiffieHellmanParameters : public QObject - { - Q_OBJECT - -+#ifndef QT_NO_SSL - private Q_SLOTS: - void constructionEmpty(); - void constructionDefault(); -@@ -53,8 +54,11 @@ private Q_SLOTS: - void constructionPEM(); - void unsafe512Bits(); - void unsafeNonPrime(); -+#endif - }; - -+#ifndef QT_NO_SSL -+ - void tst_QSslDiffieHellmanParameters::constructionEmpty() - { - QSslDiffieHellmanParameters dh; -@@ -153,5 +157,7 @@ void tst_QSslDiffieHellmanParameters::unsafeNonPrime() - #endif - } - -+#endif // QT_NO_SSL -+ - QTEST_MAIN(tst_QSslDiffieHellmanParameters) - #include "tst_qssldiffiehellmanparameters.moc" -diff --git a/tests/auto/network/ssl/ssl.pro b/tests/auto/network/ssl/ssl.pro -index a4f3fad..df7c10e 100644 ---- a/tests/auto/network/ssl/ssl.pro -+++ b/tests/auto/network/ssl/ssl.pro -@@ -2,7 +2,6 @@ TEMPLATE=subdirs - SUBDIRS=\ - qsslcertificate \ - qsslcipher \ -- qssldiffiehellmanparameters \ - qsslellipticcurve \ - qsslerror \ - qsslkey \ -@@ -22,6 +21,7 @@ winrt: SUBDIRS -= \ - - contains(QT_CONFIG, ssl) | contains(QT_CONFIG, openssl) | contains(QT_CONFIG, openssl-linked) { - contains(QT_CONFIG, private_tests) { -- SUBDIRS += qasn1element -+ SUBDIRS += qasn1element \ -+ qssldiffiehellmanparameters - } - } diff --git a/buildenv/1.3.x/common/qt5/patches/qt5-doc-fix-documentation-warnings-for-qssldiffiehellmanparameters.patch b/buildenv/1.3.x/common/qt5/patches/qt5-doc-fix-documentation-warnings-for-qssldiffiehellmanparameters.patch deleted file mode 100644 index 272b256c..00000000 --- a/buildenv/1.3.x/common/qt5/patches/qt5-doc-fix-documentation-warnings-for-qssldiffiehellmanparameters.patch +++ /dev/null @@ -1,53 +0,0 @@ -From 72e084165e1e935e2ddf030481f18a77ea5b3cc2 Mon Sep 17 00:00:00 2001 -From: Topi Reinio -Date: Thu, 26 May 2016 10:10:32 +0200 -Subject: [PATCH] Doc: Fix documentation warnings for - QSslDiffieHellmanParameters - -qssldiffiehellmanparameters.cpp:107: warning: Unknown command '\encoded' -qssldiffiehellmanparameters.cpp:131: warning: Unknown command '\device' -qssldiffiehellmanparameters.cpp:276: warning: Cannot find 'operator!=(...)' -in '\fn' bool QSslDiffieHellmanParameters::operator!=(const QSslDiffieHellmanParameters &other) const - -Change-Id: Ieb0f27f0c01c799323f4b69b7f2474513c67d443 -Reviewed-by: Venugopal Shivashankar -Reviewed-by: Timur Pocheptsov ---- - src/network/ssl/qssldiffiehellmanparameters.cpp | 10 ++-------- - 1 file changed, 2 insertions(+), 8 deletions(-) - -diff --git a/src/network/ssl/qssldiffiehellmanparameters.cpp b/src/network/ssl/qssldiffiehellmanparameters.cpp -index 7442411..d411ea0 100644 ---- a/src/network/ssl/qssldiffiehellmanparameters.cpp -+++ b/src/network/ssl/qssldiffiehellmanparameters.cpp -@@ -104,7 +104,7 @@ QSslDiffieHellmanParameters::QSslDiffieHellmanParameters() - - /*! - Constructs a QSslDiffieHellmanParameters object using -- the byte array \encoded in either PEM or DER form. -+ the byte array \a encoded in either PEM or DER form. - - After construction, the isValid() method should be used to - check whether the Diffie-Hellman parameters were valid and -@@ -128,7 +128,7 @@ QSslDiffieHellmanParameters::QSslDiffieHellmanParameters(const QByteArray &encod - - /*! - Constructs a QSslDiffieHellmanParameters object by -- reading from \device in either PEM or DER form. -+ reading from \a device in either PEM or DER form. - - After construction, the isValid() method should be used - to check whether the Diffie-Hellman parameters were valid -@@ -273,12 +273,6 @@ bool operator==(const QSslDiffieHellmanParameters &lhs, const QSslDiffieHellmanP - return lhs.d->derData == rhs.d->derData; - } - --/*! \fn bool QSslDiffieHellmanParameters::operator!=(const QSslDiffieHellmanParameters &other) const -- -- Returns \c true if this QSslDiffieHellmanParameters is not equal to \a other; otherwise -- returns \c false. --*/ -- - #ifndef QT_NO_DEBUG_STREAM - /*! - \relates QSslDiffieHellmanParameters diff --git a/buildenv/1.3.x/common/qt5/patches/qt5-features-resources-prf-fix-use-of-unescaped-backslash.patch b/buildenv/1.3.x/common/qt5/patches/qt5-features-resources-prf-fix-use-of-unescaped-backslash.patch deleted file mode 100644 index e50c06ca..00000000 --- a/buildenv/1.3.x/common/qt5/patches/qt5-features-resources-prf-fix-use-of-unescaped-backslash.patch +++ /dev/null @@ -1,29 +0,0 @@ -From 00593d8e3713fb83001637d3794d26fe83bd6144 Mon Sep 17 00:00:00 2001 -From: Mikkel Krautz -Date: Sun, 22 Jan 2017 16:09:00 +0100 -Subject: [PATCH] features/resources.prf: fix use of unescaped backslash - -Without this, building a project with qmake -Wall will -always produce the following warning: - - mkspecs/features/resources.prf:22: Unescaped backslashes are deprecated - -Change-Id: I0aeedbf470958ab458651a263e3f804ea2d1a0f0 -Reviewed-by: Oswald Buddenhagen ---- - mkspecs/features/resources.prf | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/mkspecs/features/resources.prf b/mkspecs/features/resources.prf -index adc8e9a..de769b4 100644 ---- a/mkspecs/features/resources.prf -+++ b/mkspecs/features/resources.prf -@@ -19,7 +19,7 @@ defineReplace(xml_escape) { - RESOURCES += qmake_immediate - for(resource, RESOURCES) { - # Regular case of user qrc file -- contains(resource, ".*\.qrc$"): \ -+ contains(resource, ".*\\.qrc$"): \ - next() - - # Fallback for stand-alone files/directories diff --git a/buildenv/1.3.x/common/qt5/patches/qt5-fix-some-qdoc-warnings-for-qt-5-8.patch b/buildenv/1.3.x/common/qt5/patches/qt5-fix-some-qdoc-warnings-for-qt-5-8.patch deleted file mode 100644 index e72bf413..00000000 --- a/buildenv/1.3.x/common/qt5/patches/qt5-fix-some-qdoc-warnings-for-qt-5-8.patch +++ /dev/null @@ -1,105 +0,0 @@ -Based on - - From 0dc5d8e6c92546d83dc84619eb653c6e389edaf1 Mon Sep 17 00:00:00 2001 - From: Friedemann Kleint - Date: Mon, 27 Jun 2016 13:32:30 +0200 - Subject: [PATCH] Fix some qdoc-warnings for Qt 5.8. - MIME-Version: 1.0 - Content-Type: text/plain; charset=UTF-8 - Content-Transfer-Encoding: 8bit - - qtbase/src/corelib/tools/qstring.cpp:8341: warning: Unknown command '\length' - qtbase/src/corelib/tools/qstring.cpp:8354: warning: Unknown command '\length' - qtbase/src/corelib/tools/qstring.cpp:8366: warning: Unknown command '\length' - qtbase/src/corelib/doc/src/animation.qdoc:38: warning: Can't link to 'QAbstractAnimation::updateCurrentValue()' - qtbase/src/corelib/io/qdatastream.cpp:529: warning: Undocumented enum item 'Qt_5_8' in QDataStream::Version - qtbase/src/corelib/tools/qdatetime.cpp:4377: warning: No documentation for 'QDateTime::currentSecsSinceEpoch()' - qtbase/src/corelib/tools/qcommandlineoption.cpp:435: warning: Undocumented parameter 'flags' in QCommandLineOption::setFlags() - qtbase/src/network/ssl/qsslconfiguration.cpp:857: warning: Undocumented parameter 'dhparams' in QSslConfiguration::setDiffieHellmanParameters() - qtbase/src/network/ssl/qsslconfiguration.cpp:830: warning: Undocumented parameter 'hint' in QSslConfiguration::setPreSharedKeyIdentityHint() - qtbase/src/network/ssl/qssldiffiehellmanparameters.cpp:225: warning: No such enum item 'ErrorUnsafeParameters' in QSslDiffieHellmanParameters::Error - qtbase/src/network/ssl/qssldiffiehellmanparameters.cpp:225: warning: No such enum item 'ErrorInvalidInputData' in QSslDiffieHellmanParameters::Error - qtbase/src/network/ssl/qssldiffiehellmanparameters.cpp:225: warning: Undocumented enum item 'UnsafeParametersError' in QSslDiffieHellmanParameters::Error - qtbase/src/network/ssl/qssldiffiehellmanparameters.cpp:225: warning: Undocumented enum item 'NoError' in QSslDiffieHellmanParameters::Error - qtbase/src/network/ssl/qssldiffiehellmanparameters.cpp:225: warning: Undocumented enum item 'InvalidInputDataError' in QSslDiffieHellmanParameters::Error - qtbase/src/network/ssl/qssldiffiehellmanparameters.cpp:105: warning: Undocumented parameter 'encoding' in QSslDiffieHellmanParameters::QSslDiffieHellmanParameters() - qtbase/src/network/ssl/qssldiffiehellmanparameters.cpp:129: warning: Undocumented parameter 'encoding' in QSslDiffieHellmanParameters::QSslDiffieHellmanParameters() - qtbase/src/network/ssl/qssldiffiehellmanparameters.cpp:208: warning: Can't link to 'clear()' - qtbase/src/network/ssl/qssldiffiehellmanparameters.cpp:277: warning: Undocumented parameter 'dhparam' in operator<<() - qtbase/src/network/ssl/qssldiffiehellmanparameters.cpp:277: warning: No such parameter 'dhparm' in operator<<() - qtbase/src/widgets/kernel/qapplication.cpp:999: warning: Cannot find 'QApplication::autoMaximizeThreshold' specified with '\property' in any header file - - Change-Id: I4ac00f0fc0dbc4d421cf7c0273635d9681962645 - Reviewed-by: Topi Reiniö - --- - src/corelib/doc/src/animation.qdoc | 2 +- - src/corelib/io/qdatastream.cpp | 1 + - src/corelib/tools/qcommandlineoption.cpp | 2 +- - src/corelib/tools/qdatetime.cpp | 10 ++++++++++ - src/corelib/tools/qstring.cpp | 6 +++--- - src/network/ssl/qsslconfiguration.cpp | 8 ++++---- - src/network/ssl/qssldiffiehellmanparameters.cpp | 11 ++++++----- - src/widgets/kernel/qapplication.cpp | 24 ------------------------ - 8 files changed, 26 insertions(+), 38 deletions(-) - -... but fixed upto only affect QSslDiffieHellmanParameters... - -diff --git a/src/network/ssl/qsslconfiguration.cpp b/src/network/ssl/qsslconfiguration.cpp -index e009824..bc8394a 100644 ---- a/src/network/ssl/qsslconfiguration.cpp -+++ b/src/network/ssl/qsslconfiguration.cpp -@@ -858,7 +858,7 @@ QSslDiffieHellmanParameters QSslConfiguration::diffieHellmanParameters() const - \since 5.8 - - Sets a custom set of Diffie-Hellman parameters to be used by this socket when functioning as -- a server. -+ a server to \a dhparams. - - If no Diffie-Hellman parameters have been set, the QSslConfiguration object - defaults to using the 1024-bit MODP group from RFC 2409. -diff --git a/src/network/ssl/qssldiffiehellmanparameters.cpp b/src/network/ssl/qssldiffiehellmanparameters.cpp -index d411ea0..e6a2fe8 100644 ---- a/src/network/ssl/qssldiffiehellmanparameters.cpp -+++ b/src/network/ssl/qssldiffiehellmanparameters.cpp -@@ -104,7 +104,7 @@ QSslDiffieHellmanParameters::QSslDiffieHellmanParameters() - - /*! - Constructs a QSslDiffieHellmanParameters object using -- the byte array \a encoded in either PEM or DER form. -+ the byte array \a encoded in either PEM or DER form as specified by \a encoding. - - After construction, the isValid() method should be used to - check whether the Diffie-Hellman parameters were valid and -@@ -214,7 +214,6 @@ bool QSslDiffieHellmanParameters::isEmpty() const Q_DECL_NOTHROW - If a QSslDiffieHellmanParameters object is not valid, you can use the error() - method to determine what error prevented the object from being constructed. - -- \sa clear() - \sa error() - */ - bool QSslDiffieHellmanParameters::isValid() const Q_DECL_NOTHROW -@@ -227,11 +226,13 @@ bool QSslDiffieHellmanParameters::isValid() const Q_DECL_NOTHROW - - Describes a QSslDiffieHellmanParameters error. - -- \value ErrorInvalidInputData The given input data could not be used to -+ \value NoError No error occurred. -+ -+ \value InvalidInputDataError The given input data could not be used to - construct a QSslDiffieHellmanParameters - object. - -- \value ErrorUnsafeParameters The Diffie-Hellman parameters are unsafe -+ \value UnsafeParametersError The Diffie-Hellman parameters are unsafe - and should not be used. - */ - -@@ -277,7 +278,7 @@ bool operator==(const QSslDiffieHellmanParameters &lhs, const QSslDiffieHellmanP - /*! - \relates QSslDiffieHellmanParameters - -- Writes the set of Diffie-Hellman parameters in \a dhparm into the debug object \a debug for -+ Writes the set of Diffie-Hellman parameters in \a dhparam into the debug object \a debug for - debugging purposes. - - The Diffie-Hellman parameters will be represented in Base64-encoded DER form. diff --git a/buildenv/1.3.x/common/qt5/patches/qt5-macextras-disable-qmacpasteboardmime.patch b/buildenv/1.3.x/common/qt5/patches/qt5-macextras-disable-qmacpasteboardmime.patch deleted file mode 100644 index e3e5c08a..00000000 --- a/buildenv/1.3.x/common/qt5/patches/qt5-macextras-disable-qmacpasteboardmime.patch +++ /dev/null @@ -1,17 +0,0 @@ ---- ./qtmacextras/src/macextras/macextras-lib.pri -+++ ./qtmacextras/src/macextras/macextras-lib.pri -@@ -24,10 +24,10 @@ mac { - $$PWD/qmactoolbutton.mm \ - $$PWD/qnstoolbar.mm - -- greaterThan(QT_MAJOR_VERSION, 4) { -- PUBLIC_HEADERS += $$PWD/qmacpasteboardmime.h -- OBJECTIVE_SOURCES += $$PWD/qmacpasteboardmime.mm -- } -+ #greaterThan(QT_MAJOR_VERSION, 4) { -+ # PUBLIC_HEADERS += $$PWD/qmacpasteboardmime.h -+ # OBJECTIVE_SOURCES += $$PWD/qmacpasteboardmime.mm -+ #} - - LIBS *= -framework AppKit - } diff --git a/buildenv/1.3.x/common/qt5/patches/qt5-macos-handle-qsetting-strings-with-embedded-zero-bytes-QTBUG-56124.patch b/buildenv/1.3.x/common/qt5/patches/qt5-macos-handle-qsetting-strings-with-embedded-zero-bytes-QTBUG-56124.patch deleted file mode 100644 index 9102738c..00000000 --- a/buildenv/1.3.x/common/qt5/patches/qt5-macos-handle-qsetting-strings-with-embedded-zero-bytes-QTBUG-56124.patch +++ /dev/null @@ -1,236 +0,0 @@ -From 764f5bf48cc87f4c72550b853ab93b815454cd48 Mon Sep 17 00:00:00 2001 -From: =?UTF-8?q?Tor=20Arne=20Vestb=C3=B8?= -Date: Mon, 3 Oct 2016 18:41:30 +0200 -Subject: [PATCH] Apple OS: Handle QSetting strings with embedded zero-bytes - -Saving strings with embedded zero-bytes (\0) as CFStrings would -sometimes fail, and only write the part of the string leading -up to the first zero-byte, instead of all the way to the final -zero-terminator. This bug was revealed by the code-path that -falls back to storing e.g. QTime as strings, via the helper -method QSettingsPrivate::variantToString(). - -We now use the same approach as on platforms such as Windows -and WinRT, where the string produced by variantToString() is -checked for null-bytes, and if so, stored using a binary -representation instead of as a string. For our case that -means we fall back to CFData when detecting the null-byte. - -To separate strings from regular byte arrays, new logic has -been added to variantToString() that wraps the null-byte -strings in @String(). That way we can implement a fast-path -when converting back from CFData, that doesn't go via the -slow and lossy conversion via UTF8, and the resulting QVariant -will be of type QVariant::ByteArray. The reason for using -UTF-8 as the binary representation of the string is that -in the case of storing a QByteArray("@foo") we need to -still be able to convert it back to the same byte array, -which doesn't work if the on-disk format is UTF-16. - -Task-number: QTBUG-56124 -Change-Id: Iab2f71cf96cf3225de48dc5e71870d74b6dde1e8 -Reviewed-by: Thiago Macieira ---- - src/corelib/io/qsettings.cpp | 6 ++- - src/corelib/io/qsettings_mac.cpp | 19 +++++++-- - src/corelib/io/qsettings_win.cpp | 13 +----- - src/corelib/io/qsettings_winrt.cpp | 4 +- - tests/auto/corelib/io/qsettings/tst_qsettings.cpp | 50 ++++++++++++++++++++++- - 5 files changed, 73 insertions(+), 19 deletions(-) - -diff --git a/src/corelib/io/qsettings.cpp b/src/corelib/io/qsettings.cpp -index fcdc1e3..47108d0 100644 ---- a/src/corelib/io/qsettings.cpp -+++ b/src/corelib/io/qsettings.cpp -@@ -416,7 +416,9 @@ QString QSettingsPrivate::variantToString(const QVariant &v) - case QVariant::Double: - case QVariant::KeySequence: { - result = v.toString(); -- if (result.startsWith(QLatin1Char('@'))) -+ if (result.contains(QChar::Null)) -+ result = QLatin1String("@String(") + result + QLatin1Char(')'); -+ else if (result.startsWith(QLatin1Char('@'))) - result.prepend(QLatin1Char('@')); - break; - } -@@ -476,6 +478,8 @@ QVariant QSettingsPrivate::stringToVariant(const QString &s) - if (s.endsWith(QLatin1Char(')'))) { - if (s.startsWith(QLatin1String("@ByteArray("))) { - return QVariant(s.midRef(11, s.size() - 12).toLatin1()); -+ } else if (s.startsWith(QLatin1String("@String("))) { -+ return QVariant(s.midRef(8, s.size() - 9).toString()); - } else if (s.startsWith(QLatin1String("@Variant(")) - || s.startsWith(QLatin1String("@DateTime("))) { - #ifndef QT_NO_DATASTREAM -diff --git a/src/corelib/io/qsettings_mac.cpp b/src/corelib/io/qsettings_mac.cpp -index bc39705..77f185d 100644 ---- a/src/corelib/io/qsettings_mac.cpp -+++ b/src/corelib/io/qsettings_mac.cpp -@@ -214,7 +214,11 @@ static QCFType macValue(const QVariant &value) - case QVariant::String: - string_case: - default: -- result = QCFString::toCFStringRef(QSettingsPrivate::variantToString(value)); -+ QString string = QSettingsPrivate::variantToString(value); -+ if (string.contains(QChar::Null)) -+ result = string.toUtf8().toCFData(); -+ else -+ result = string.toCFString(); - } - return result; - } -@@ -266,9 +270,16 @@ static QVariant qtValue(CFPropertyListRef cfvalue) - } else if (typeId == CFBooleanGetTypeID()) { - return (bool)CFBooleanGetValue(static_cast(cfvalue)); - } else if (typeId == CFDataGetTypeID()) { -- CFDataRef cfdata = static_cast(cfvalue); -- return QByteArray(reinterpret_cast(CFDataGetBytePtr(cfdata)), -- CFDataGetLength(cfdata)); -+ QByteArray byteArray = QByteArray::fromRawCFData(static_cast(cfvalue)); -+ -+ // Fast-path for QByteArray, so that we don't have to go -+ // though the expensive and lossy conversion via UTF-8. -+ if (!byteArray.startsWith('@')) -+ return byteArray; -+ -+ const QString str = QString::fromUtf8(byteArray.constData(), byteArray.size()); -+ return QSettingsPrivate::stringToVariant(str); -+ - } else if (typeId == CFDictionaryGetTypeID()) { - CFDictionaryRef cfdict = static_cast(cfvalue); - CFTypeID arrayTypeId = CFArrayGetTypeID(); -diff --git a/src/corelib/io/qsettings_win.cpp b/src/corelib/io/qsettings_win.cpp -index 3f06ab7..1c10548 100644 ---- a/src/corelib/io/qsettings_win.cpp -+++ b/src/corelib/io/qsettings_win.cpp -@@ -667,15 +667,6 @@ void QWinSettingsPrivate::remove(const QString &uKey) - } - } - --static bool stringContainsNullChar(const QString &s) --{ -- for (int i = 0; i < s.length(); ++i) { -- if (s.at(i).unicode() == 0) -- return true; -- } -- return false; --} -- - void QWinSettingsPrivate::set(const QString &uKey, const QVariant &value) - { - if (writeHandle() == 0) { -@@ -704,7 +695,7 @@ void QWinSettingsPrivate::set(const QString &uKey, const QVariant &value) - QStringList l = variantListToStringList(value.toList()); - QStringList::const_iterator it = l.constBegin(); - for (; it != l.constEnd(); ++it) { -- if ((*it).length() == 0 || stringContainsNullChar(*it)) { -+ if ((*it).length() == 0 || it->contains(QChar::Null)) { - type = REG_BINARY; - break; - } -@@ -748,7 +739,7 @@ void QWinSettingsPrivate::set(const QString &uKey, const QVariant &value) - // If the string does not contain '\0', we can use REG_SZ, the native registry - // string type. Otherwise we use REG_BINARY. - QString s = variantToString(value); -- type = stringContainsNullChar(s) ? REG_BINARY : REG_SZ; -+ type = s.contains(QChar::Null) ? REG_BINARY : REG_SZ; - if (type == REG_BINARY) { - regValueBuff = QByteArray((const char*)s.utf16(), s.length() * 2); - } else { -diff --git a/src/corelib/io/qsettings_winrt.cpp b/src/corelib/io/qsettings_winrt.cpp -index 708287c..209b56d 100644 ---- a/src/corelib/io/qsettings_winrt.cpp -+++ b/src/corelib/io/qsettings_winrt.cpp -@@ -402,7 +402,7 @@ void QWinRTSettingsPrivate::set(const QString &uKey, const QVariant &value) - QStringList::const_iterator it = l.constBegin(); - bool containsNull = false; - for (; it != l.constEnd(); ++it) { -- if ((*it).length() == 0 || it->indexOf(QChar::Null) != -1) { -+ if ((*it).length() == 0 || it->contains(QChar::Null)) { - // We can only store as binary - containsNull = true; - break; -@@ -445,7 +445,7 @@ void QWinRTSettingsPrivate::set(const QString &uKey, const QVariant &value) - break; - default: { - const QString s = variantToString(value); -- if (s.indexOf(QChar::Null) != -1) { -+ if (s.contains(QChar::Null)) { - hr = valueStatics->CreateUInt8Array(s.length() * 2, (BYTE*) s.utf16(), &val); - } else { - HStringReference ref((const wchar_t*)s.utf16(), s.size()); -diff --git a/tests/auto/corelib/io/qsettings/tst_qsettings.cpp b/tests/auto/corelib/io/qsettings/tst_qsettings.cpp -index 26bbb16..8a2c9a9 100644 ---- a/tests/auto/corelib/io/qsettings/tst_qsettings.cpp -+++ b/tests/auto/corelib/io/qsettings/tst_qsettings.cpp -@@ -174,6 +174,8 @@ private slots: - void testByteArray(); - void iniCodec(); - void bom(); -+ void embeddedZeroByte_data(); -+ void embeddedZeroByte(); - - private: - void cleanupTestFiles(); -@@ -643,7 +645,6 @@ void tst_QSettings::testByteArray_data() - #ifndef QT_NO_COMPRESS - QTest::newRow("compressed") << qCompress(bytes); - #endif -- QTest::newRow("with \\0") << bytes + '\0' + bytes; - } - - void tst_QSettings::testByteArray() -@@ -694,6 +695,53 @@ void tst_QSettings::bom() - QVERIFY(allkeys.contains("section2/foo2")); - } - -+void tst_QSettings::embeddedZeroByte_data() -+{ -+ QTest::addColumn("value"); -+ -+ QByteArray bytes("hello\0world", 11); -+ -+ QTest::newRow("bytearray\\0") << QVariant(bytes); -+ QTest::newRow("string\\0") << QVariant(QString::fromLatin1(bytes.data(), bytes.size())); -+ -+ bytes = QByteArray("@String("); -+ -+ QTest::newRow("@bytearray") << QVariant(bytes); -+ QTest::newRow("@string") << QVariant(QString(bytes)); -+ -+ bytes = QByteArray("@String(\0test", 13); -+ -+ QTest::newRow("@bytearray\\0") << QVariant(bytes); -+ QTest::newRow("@string\\0") << QVariant(QString::fromLatin1(bytes.data(), bytes.size())); -+} -+ -+void tst_QSettings::embeddedZeroByte() -+{ -+ QFETCH(QVariant, value); -+ { -+ QSettings settings("QtProject", "tst_qsettings"); -+ settings.setValue(QTest::currentDataTag(), value); -+ } -+ { -+ QSettings settings("QtProject", "tst_qsettings"); -+ QVariant outValue = settings.value(QTest::currentDataTag()); -+ -+ switch (value.type()) { -+ case QVariant::ByteArray: -+ QCOMPARE(outValue.toByteArray(), value.toByteArray()); -+ break; -+ case QVariant::String: -+ QCOMPARE(outValue.toString(), value.toString()); -+ break; -+ default: -+ Q_UNREACHABLE(); -+ } -+ -+ if (value.toByteArray().contains(QChar::Null)) -+ QVERIFY(outValue.toByteArray().contains(QChar::Null)); -+ } -+} -+ - void tst_QSettings::testErrorHandling_data() - { - QTest::addColumn("filePerms"); // -1 means file should not exist diff --git a/buildenv/1.3.x/common/qt5/patches/qt5-mkspecs-common-msvc-desktop-mumble-debug+opt.patch b/buildenv/1.3.x/common/qt5/patches/qt5-mkspecs-common-msvc-desktop-mumble-debug+opt.patch deleted file mode 100644 index 4f3888c2..00000000 --- a/buildenv/1.3.x/common/qt5/patches/qt5-mkspecs-common-msvc-desktop-mumble-debug+opt.patch +++ /dev/null @@ -1,37 +0,0 @@ -2017-01-21: - Added -Zc:threadSafeInit- to CFLAGS to work around QTBUG-58318 - ---- ./qtbase/mkspecs/common/msvc-desktop.conf -+++ ./qtbase/mkspecs/common/msvc-desktop.conf -@@ -25,11 +25,11 @@ QMAKE_LEX = flex - QMAKE_LEXFLAGS = - QMAKE_YACC = byacc - QMAKE_YACCFLAGS = -d --QMAKE_CFLAGS = -nologo -Zc:wchar_t -+QMAKE_CFLAGS = -nologo -Zc:wchar_t -Zi -Zc:threadSafeInit- - QMAKE_CFLAGS_WARN_ON = -W3 - QMAKE_CFLAGS_WARN_OFF = -W0 --QMAKE_CFLAGS_RELEASE = -O2 -MD --QMAKE_CFLAGS_RELEASE_WITH_DEBUGINFO += -O2 -MD -Zi -+QMAKE_CFLAGS_RELEASE = -Ox -GF -MD -+QMAKE_CFLAGS_RELEASE_WITH_DEBUGINFO += -Ox -GF -MD -Zi - QMAKE_CFLAGS_DEBUG = -Zi -MDd - QMAKE_CFLAGS_YACC = - QMAKE_CFLAGS_LTCG = -GL -@@ -65,14 +65,14 @@ QMAKE_RUN_CXX_IMP = $(CXX) -c $(CX - QMAKE_RUN_CXX_IMP_BATCH = $(CXX) -c $(CXXFLAGS) $(INCPATH) -Fo$@ @<< - - QMAKE_LINK = link --QMAKE_LFLAGS = /NOLOGO /DYNAMICBASE /NXCOMPAT -+QMAKE_LFLAGS = /DEBUG /OPT:REF /OPT:ICF /NOLOGO /DYNAMICBASE /NXCOMPAT - QMAKE_LFLAGS_RELEASE = /INCREMENTAL:NO - QMAKE_LFLAGS_RELEASE_WITH_DEBUGINFO = /DEBUG /OPT:REF /INCREMENTAL:NO - QMAKE_LFLAGS_DEBUG = /DEBUG - QMAKE_LFLAGS_CONSOLE = /SUBSYSTEM:CONSOLE - QMAKE_LFLAGS_WINDOWS = /SUBSYSTEM:WINDOWS - QMAKE_LFLAGS_EXE = \"/MANIFESTDEPENDENCY:type=\'win32\' name=\'Microsoft.Windows.Common-Controls\' version=\'6.0.0.0\' publicKeyToken=\'6595b64144ccf1df\' language=\'*\' processorArchitecture=\'*\'\" --QMAKE_LFLAGS_DLL = /DLL -+QMAKE_LFLAGS_DLL = /DEBUG /DLL - QMAKE_LFLAGS_LTCG = /LTCG - QMAKE_EXTENSION_STATICLIB = lib - diff --git a/buildenv/1.3.x/common/qt5/patches/qt5-qssldiffiehellmanparameters-make-fit-for-release.patch b/buildenv/1.3.x/common/qt5/patches/qt5-qssldiffiehellmanparameters-make-fit-for-release.patch deleted file mode 100644 index 70e361b6..00000000 --- a/buildenv/1.3.x/common/qt5/patches/qt5-qssldiffiehellmanparameters-make-fit-for-release.patch +++ /dev/null @@ -1,289 +0,0 @@ -From 033ebfae211b5d6608f152f82beaca5cf445e0fc Mon Sep 17 00:00:00 2001 -From: Marc Mutz -Date: Sun, 7 Aug 2016 09:33:11 +0300 -Subject: [PATCH] QSslDiffieHellmanParameters: make fit for release - -- add missing \since 5.8 on free functions -- fix \relates of qHash to point to QSslDHP, not QHash, which is in another module -- API fix: use named instead of unnamed ctors -- share code between ctors -- API fix: add inline move ctor (for now, this requires using a naked d pointer, - which isn't much of a problem, since the class is immutable). - -Change-Id: Ic30f9c3c03b8a3798e0676e38991ead85c587214 -Reviewed-by: Timur Pocheptsov ---- - src/network/ssl/qsslcontext_openssl.cpp | 2 +- - src/network/ssl/qssldiffiehellmanparameters.cpp | 68 +++++++++++++--------- - src/network/ssl/qssldiffiehellmanparameters.h | 13 +++-- - .../tst_qssldiffiehellmanparameters.cpp | 8 +-- - .../auto/network/ssl/qsslsocket/tst_qsslsocket.cpp | 2 +- - 5 files changed, 55 insertions(+), 38 deletions(-) - -diff --git a/src/network/ssl/qsslcontext_openssl.cpp b/src/network/ssl/qsslcontext_openssl.cpp -index dec8e12..c92d8fc 100644 ---- a/src/network/ssl/qsslcontext_openssl.cpp -+++ b/src/network/ssl/qsslcontext_openssl.cpp -@@ -320,7 +320,7 @@ void QSslContext::initSslContext(QSslContext *sslContext, QSslSocket::SslMode mo - } - - if (!dhparams.isEmpty()) { -- const QByteArray ¶ms = dhparams.d.data()->derData; -+ const QByteArray ¶ms = dhparams.d->derData; - const char *ptr = params.constData(); - DH *dh = q_d2i_DHparams(NULL, reinterpret_cast(&ptr), params.length()); - if (dh == NULL) -diff --git a/src/network/ssl/qssldiffiehellmanparameters.cpp b/src/network/ssl/qssldiffiehellmanparameters.cpp -index e6a2fe8..d0fcb31 100644 ---- a/src/network/ssl/qssldiffiehellmanparameters.cpp -+++ b/src/network/ssl/qssldiffiehellmanparameters.cpp -@@ -77,7 +77,7 @@ QT_BEGIN_NAMESPACE - QSslDiffieHellmanParameters QSslDiffieHellmanParameters::defaultParameters() - { - // The 1024-bit MODP group from RFC 2459 (Second Oakley Group) -- return QSslDiffieHellmanParameters( -+ return fromEncoded( - QByteArray::fromBase64(QByteArrayLiteral( - "MIGHAoGBAP//////////yQ/aoiFowjTExmKLgNwc0SkCTgiKZ8x0Agu+pjsTmyJR" - "Sgh5jjQE3e+VGbPNOkMbMCsKbfJfFDdP4TVtbVHCReSFtXZiXn7G9ExC6aY37WsL" -@@ -100,73 +100,82 @@ QSslDiffieHellmanParameters QSslDiffieHellmanParameters::defaultParameters() - QSslDiffieHellmanParameters::QSslDiffieHellmanParameters() - : d(new QSslDiffieHellmanParametersPrivate) - { -+ d->ref.ref(); - } - - /*! - Constructs a QSslDiffieHellmanParameters object using - the byte array \a encoded in either PEM or DER form as specified by \a encoding. - -- After construction, the isValid() method should be used to -+ Use the isValid() method on the returned object to - check whether the Diffie-Hellman parameters were valid and - loaded correctly. - - \sa isValid() - \sa QSslConfiguration - */ --QSslDiffieHellmanParameters::QSslDiffieHellmanParameters(const QByteArray &encoded, QSsl::EncodingFormat encoding) -- : d(new QSslDiffieHellmanParametersPrivate) -+QSslDiffieHellmanParameters QSslDiffieHellmanParameters::fromEncoded(const QByteArray &encoded, QSsl::EncodingFormat encoding) - { -+ QSslDiffieHellmanParameters result; - switch (encoding) { - case QSsl::Der: -- d->decodeDer(encoded); -+ result.d->decodeDer(encoded); - break; - case QSsl::Pem: -- d->decodePem(encoded); -+ result.d->decodePem(encoded); - break; - } -+ return result; - } - - /*! - Constructs a QSslDiffieHellmanParameters object by -- reading from \a device in either PEM or DER form. -+ reading from \a device in either PEM or DER form as specified by \a encoding. - -- After construction, the isValid() method should be used -+ Use the isValid() method on the returned object - to check whether the Diffie-Hellman parameters were valid - and loaded correctly. - -+ In particular, if \a device is \c nullptr or not open for reading, an invalid -+ object will be returned. -+ - \sa isValid() - \sa QSslConfiguration - */ --QSslDiffieHellmanParameters::QSslDiffieHellmanParameters(QIODevice *device, QSsl::EncodingFormat encoding) -- : d(new QSslDiffieHellmanParametersPrivate) -+QSslDiffieHellmanParameters QSslDiffieHellmanParameters::fromEncoded(QIODevice *device, QSsl::EncodingFormat encoding) - { -- if (!device) -- return; -- -- const QByteArray encoded = device->readAll(); -- -- switch (encoding) { -- case QSsl::Der: -- d->decodeDer(encoded); -- break; -- case QSsl::Pem: -- d->decodePem(encoded); -- break; -- } -+ if (device) -+ return fromEncoded(device->readAll(), encoding); -+ else -+ return QSslDiffieHellmanParameters(); - } - - /*! - Constructs an identical copy of \a other. - */ --QSslDiffieHellmanParameters::QSslDiffieHellmanParameters(const QSslDiffieHellmanParameters &other) : d(other.d) -+QSslDiffieHellmanParameters::QSslDiffieHellmanParameters(const QSslDiffieHellmanParameters &other) -+ : d(other.d) - { -+ if (d) -+ d->ref.ref(); - } - - /*! -+ \fn QSslDiffieHellmanParameters(QSslDiffieHellmanParameters &&other) -+ -+ Move-constructs from \a other. -+ -+ \note The moved-from object \a other is placed in a partially-formed state, in which -+ the only valid operations are destruction and assignment of a new value. -+*/ -+ -+/*! - Destroys the QSslDiffieHellmanParameters object. - */ - QSslDiffieHellmanParameters::~QSslDiffieHellmanParameters() - { -+ if (d && !d->ref.deref()) -+ delete d; - } - - /*! -@@ -177,7 +186,8 @@ QSslDiffieHellmanParameters::~QSslDiffieHellmanParameters() - */ - QSslDiffieHellmanParameters &QSslDiffieHellmanParameters::operator=(const QSslDiffieHellmanParameters &other) - { -- d = other.d; -+ QSslDiffieHellmanParameters copy(other); -+ swap(copy); - return *this; - } - -@@ -185,6 +195,9 @@ QSslDiffieHellmanParameters &QSslDiffieHellmanParameters::operator=(const QSslDi - \fn QSslDiffieHellmanParameters &QSslDiffieHellmanParameters::operator=(QSslDiffieHellmanParameters &&other) - - Move-assigns \a other to this QSslDiffieHellmanParameters instance. -+ -+ \note The moved-from object \a other is placed in a partially-formed state, in which -+ the only valid operations are destruction and assignment of a new value. - */ - - /*! -@@ -265,6 +278,7 @@ QString QSslDiffieHellmanParameters::errorString() const Q_DECL_NOTHROW - } - - /*! -+ \since 5.8 - \relates QSslDiffieHellmanParameters - - Returns \c true if \a lhs is equal to \a rhs; otherwise returns \c false. -@@ -276,6 +290,7 @@ bool operator==(const QSslDiffieHellmanParameters &lhs, const QSslDiffieHellmanP - - #ifndef QT_NO_DEBUG_STREAM - /*! -+ \since 5.8 - \relates QSslDiffieHellmanParameters - - Writes the set of Diffie-Hellman parameters in \a dhparam into the debug object \a debug for -@@ -295,7 +310,8 @@ QDebug operator<<(QDebug debug, const QSslDiffieHellmanParameters &dhparam) - #endif - - /*! -- \relates QHash -+ \since 5.8 -+ \relates QSslDiffieHellmanParameters - - Returns an hash value for \a dhparam, using \a seed to seed - the calculation. -diff --git a/src/network/ssl/qssldiffiehellmanparameters.h b/src/network/ssl/qssldiffiehellmanparameters.h -index aa40be8..4533ea4 100644 ---- a/src/network/ssl/qssldiffiehellmanparameters.h -+++ b/src/network/ssl/qssldiffiehellmanparameters.h -@@ -82,24 +82,25 @@ class QSslDiffieHellmanParameters - Q_NETWORK_EXPORT static QSslDiffieHellmanParameters defaultParameters(); - - Q_NETWORK_EXPORT QSslDiffieHellmanParameters(); -- Q_NETWORK_EXPORT explicit QSslDiffieHellmanParameters(const QByteArray &encoded, QSsl::EncodingFormat format = QSsl::Pem); -- Q_NETWORK_EXPORT explicit QSslDiffieHellmanParameters(QIODevice *device, QSsl::EncodingFormat format = QSsl::Pem); - Q_NETWORK_EXPORT QSslDiffieHellmanParameters(const QSslDiffieHellmanParameters &other); -+ QSslDiffieHellmanParameters(QSslDiffieHellmanParameters &&other) Q_DECL_NOTHROW : d(other.d) { other.d = nullptr; } - Q_NETWORK_EXPORT ~QSslDiffieHellmanParameters(); -+ - Q_NETWORK_EXPORT QSslDiffieHellmanParameters &operator=(const QSslDiffieHellmanParameters &other); --#ifdef Q_COMPILER_RVALUE_REFS - QSslDiffieHellmanParameters &operator=(QSslDiffieHellmanParameters &&other) Q_DECL_NOTHROW { swap(other); return *this; } --#endif - - void swap(QSslDiffieHellmanParameters &other) Q_DECL_NOTHROW { qSwap(d, other.d); } - -+ Q_NETWORK_EXPORT static QSslDiffieHellmanParameters fromEncoded(const QByteArray &encoded, QSsl::EncodingFormat format = QSsl::Pem); -+ Q_NETWORK_EXPORT static QSslDiffieHellmanParameters fromEncoded(QIODevice *device, QSsl::EncodingFormat format = QSsl::Pem); -+ - Q_NETWORK_EXPORT bool isEmpty() const Q_DECL_NOTHROW; - Q_NETWORK_EXPORT bool isValid() const Q_DECL_NOTHROW; -- Q_NETWORK_EXPORT QSslDiffieHellmanParameters::Error error() const Q_DECL_NOTHROW; -+ Q_NETWORK_EXPORT Error error() const Q_DECL_NOTHROW; - Q_NETWORK_EXPORT QString errorString() const Q_DECL_NOTHROW; - - private: -- QExplicitlySharedDataPointer d; -+ QSslDiffieHellmanParametersPrivate *d; - friend class QSslContext; - friend Q_NETWORK_EXPORT bool operator==(const QSslDiffieHellmanParameters &lhs, const QSslDiffieHellmanParameters &rhs) Q_DECL_NOTHROW; - #ifndef QT_NO_DEBUG_STREAM -diff --git a/tests/auto/network/ssl/qssldiffiehellmanparameters/tst_qssldiffiehellmanparameters.cpp b/tests/auto/network/ssl/qssldiffiehellmanparameters/tst_qssldiffiehellmanparameters.cpp -index 32cc982..f3b9003 100644 ---- a/tests/auto/network/ssl/qssldiffiehellmanparameters/tst_qssldiffiehellmanparameters.cpp -+++ b/tests/auto/network/ssl/qssldiffiehellmanparameters/tst_qssldiffiehellmanparameters.cpp -@@ -81,7 +81,7 @@ void tst_QSslDiffieHellmanParameters::constructionDefault() - void tst_QSslDiffieHellmanParameters::constructionDER() - { - // Uniquely generated with 'openssl dhparam -outform DER -out out.der -check -2 4096' -- QSslDiffieHellmanParameters dh(QByteArray::fromBase64(QByteArrayLiteral( -+ const auto dh = QSslDiffieHellmanParameters::fromEncoded(QByteArray::fromBase64(QByteArrayLiteral( - "MIICCAKCAgEAsbQYx57ZlyEyWF8jD5WYEswGR2aTVFsHqP3026SdyTwcjY+YlMOae0EagK" - "jDA0UlPcih1kguQOvOVgyc5gI3YbBb4pCNEdy048xITlsdqG7qC3+2VvFR3vfixEbQQll9" - "2cGIIneD/36p7KJcDnBNUwwWj/VJKhTwelTfKTj2T39si9xGMkqZiQuCaXRk6vSKZ4ZDPk" -@@ -103,7 +103,7 @@ void tst_QSslDiffieHellmanParameters::constructionDER() - void tst_QSslDiffieHellmanParameters::constructionPEM() - { - // Uniquely generated with 'openssl dhparam -outform PEM -out out.pem -check -2 4096' -- QSslDiffieHellmanParameters dh(QByteArrayLiteral( -+ const auto dh = QSslDiffieHellmanParameters::fromEncoded(QByteArrayLiteral( - "-----BEGIN DH PARAMETERS-----\n" - "MIICCAKCAgEA9QTdqhQkbGuhWzBsW5X475AjjrITpg1BHX5+mp1sstUd84Lshq1T\n" - "+S2QQQtdl25EPoUblpyyLAf8krFSH4YwR7jjLWklA8paDOwRYod0zLmVZ1Wx6og3\n" -@@ -128,7 +128,7 @@ void tst_QSslDiffieHellmanParameters::constructionPEM() - void tst_QSslDiffieHellmanParameters::unsafe512Bits() - { - // Uniquely generated with 'openssl dhparam -outform PEM -out out.pem -check -2 512' -- QSslDiffieHellmanParameters dh(QByteArrayLiteral( -+ const auto dh = QSslDiffieHellmanParameters::fromEncoded(QByteArrayLiteral( - "-----BEGIN DH PARAMETERS-----\n" - "MEYCQQCf8goDn56akiliAtEL1ZG7VH+9wfLxsv8/B1emTUG+rMKB1yaVAU7HaAiM\n" - "Gtmo2bAWUqBczUTOTzqmWTm28P6bAgEC\n" -@@ -145,7 +145,7 @@ void tst_QSslDiffieHellmanParameters::unsafeNonPrime() - { - // Uniquely generated with 'openssl dhparam -outform DER -out out.der -check -2 1024' - // and then modified by hand to make P not be a prime number. -- QSslDiffieHellmanParameters dh(QByteArray::fromBase64(QByteArrayLiteral( -+ const auto dh = QSslDiffieHellmanParameters::fromEncoded(QByteArray::fromBase64(QByteArrayLiteral( - "MIGHAoGBALLcOLg+ow8TMnbCUeNjwys6wUTIH9mn4ZSeIbD6qvCsJgg4cUxXwJQmPY" - "Xl15AsKXgkXWh0n+/N6tjH0sSRJnzDvN2H3KxFLKkvxmBYrDOJMdCuMgZD50aOsVyd" - "vholAW9zilkoYkB6sqwxY1Z2dbpTWajCsUAWZQ0AIP4Y5nesAgEC" -diff --git a/tests/auto/network/ssl/qsslsocket/tst_qsslsocket.cpp b/tests/auto/network/ssl/qsslsocket/tst_qsslsocket.cpp -index bf38a09..cb55c9c 100644 ---- a/tests/auto/network/ssl/qsslsocket/tst_qsslsocket.cpp -+++ b/tests/auto/network/ssl/qsslsocket/tst_qsslsocket.cpp -@@ -2942,7 +2942,7 @@ void tst_QSslSocket::dhServerCustomParams() - QSslConfiguration cfg = server.config; - - // Custom 2048-bit DH parameters generated with 'openssl dhparam -outform DER -out out.der -check -2 2048' -- QSslDiffieHellmanParameters dh(QByteArray::fromBase64(QByteArrayLiteral( -+ const auto dh = QSslDiffieHellmanParameters::fromEncoded(QByteArray::fromBase64(QByteArrayLiteral( - "MIIBCAKCAQEAvVA7b8keTfjFutCtTJmP/pnQfw/prKa+GMed/pBWjrC4N1YwnI8h/A861d9WE/VWY7XMTjvjX3/0" - "aaU8wEe0EXNpFdlTH+ZMQctQTSJOyQH0RCTwJfDGPCPT9L+c9GKwEKWORH38Earip986HJc0w3UbnfIwXUdsWHiXi" - "Z6r3cpyBmTKlsXTFiDVAOUXSiO8d/zOb6zHZbDfyB/VbtZRmnA7TXVn9oMzC0g9+FXHdrV4K+XfdvNZdCegvoAZiy" diff --git a/buildenv/1.3.x/common/qt5/patches/qt5-qssldiffiehellmanparameters-simplify-defaultparameters-construction.patch b/buildenv/1.3.x/common/qt5/patches/qt5-qssldiffiehellmanparameters-simplify-defaultparameters-construction.patch deleted file mode 100644 index 94f9af83..00000000 --- a/buildenv/1.3.x/common/qt5/patches/qt5-qssldiffiehellmanparameters-simplify-defaultparameters-construction.patch +++ /dev/null @@ -1,126 +0,0 @@ -From 19a1a0871d4a9081646925c422fe32e900846c2e Mon Sep 17 00:00:00 2001 -From: Mikkel Krautz -Date: Mon, 16 Jan 2017 21:43:12 +0100 -Subject: [PATCH] QSslDiffieHellmanParameters: simplify defaultParameters() - construction - -This commit simplifies defaultParameters() to simply construct an empty -QSslDiffieHellmanParameters and assigning the DER-form of the DH parameters -to QSslDiffieHellmanParametersPrivate's derData field. - -This creates a valid QSslDiffieHellmanParameters instance, but skips any -potentially expensive verification steps. - -The previous implementation of defaultParameters() would use the public -fromEncoded() method to construct an instance of the default parameters. -This triggers a verification of the passed-in data, which can be expensive. - -To ensure our defaultParameters() QSslDiffieHellmanParameters instance does -pass verification, this commit adds an autotest to verify that. - -Fixes QTBUG-57815. - -Change-Id: I6b1d9dbbfde526b232c319195ddbad42326be27c -Task-number: QTBUG-57815 -Reviewed-by: Timur Pocheptsov ---- - src/network/ssl/qssldiffiehellmanparameters.cpp | 18 +++++------ - .../tst_qssldiffiehellmanparameters.cpp | 35 ++++++++++++++++++++++ - 2 files changed, 44 insertions(+), 9 deletions(-) - -diff --git a/src/network/ssl/qssldiffiehellmanparameters.cpp b/src/network/ssl/qssldiffiehellmanparameters.cpp -index d0fcb31..de7eab9 100644 ---- a/src/network/ssl/qssldiffiehellmanparameters.cpp -+++ b/src/network/ssl/qssldiffiehellmanparameters.cpp -@@ -68,6 +68,12 @@ - - QT_BEGIN_NAMESPACE - -+// The 1024-bit MODP group from RFC 2459 (Second Oakley Group) -+Q_AUTOTEST_EXPORT const char *qssl_dhparams_default_base64 = -+ "MIGHAoGBAP//////////yQ/aoiFowjTExmKLgNwc0SkCTgiKZ8x0Agu+pjsTmyJR" -+ "Sgh5jjQE3e+VGbPNOkMbMCsKbfJfFDdP4TVtbVHCReSFtXZiXn7G9ExC6aY37WsL" -+ "/1y29Aa37e44a/taiZ+lrp8kEXxLH+ZJKGZR7OZTgf//////////AgEC"; -+ - /*! - Returns the default QSslDiffieHellmanParameters used by QSslSocket. - -@@ -76,15 +82,9 @@ QT_BEGIN_NAMESPACE - */ - QSslDiffieHellmanParameters QSslDiffieHellmanParameters::defaultParameters() - { -- // The 1024-bit MODP group from RFC 2459 (Second Oakley Group) -- return fromEncoded( -- QByteArray::fromBase64(QByteArrayLiteral( -- "MIGHAoGBAP//////////yQ/aoiFowjTExmKLgNwc0SkCTgiKZ8x0Agu+pjsTmyJR" -- "Sgh5jjQE3e+VGbPNOkMbMCsKbfJfFDdP4TVtbVHCReSFtXZiXn7G9ExC6aY37WsL" -- "/1y29Aa37e44a/taiZ+lrp8kEXxLH+ZJKGZR7OZTgf//////////AgEC" -- )), -- QSsl::Der -- ); -+ QSslDiffieHellmanParameters def; -+ def.d->derData = QByteArray::fromBase64(QByteArray(qssl_dhparams_default_base64)); -+ return def; - } - - /*! -diff --git a/tests/auto/network/ssl/qssldiffiehellmanparameters/tst_qssldiffiehellmanparameters.cpp b/tests/auto/network/ssl/qssldiffiehellmanparameters/tst_qssldiffiehellmanparameters.cpp -index f3b9003..ddf503e 100644 ---- a/tests/auto/network/ssl/qssldiffiehellmanparameters/tst_qssldiffiehellmanparameters.cpp -+++ b/tests/auto/network/ssl/qssldiffiehellmanparameters/tst_qssldiffiehellmanparameters.cpp -@@ -42,6 +42,13 @@ - #include - #include - -+// Default DH parameters, exported by qssldiffiehellmanparameters.cpp. -+QT_BEGIN_NAMESPACE -+extern Q_AUTOTEST_EXPORT const char *qssl_dhparams_default_base64; -+QT_END_NAMESPACE -+ -+QT_USE_NAMESPACE -+ - class tst_QSslDiffieHellmanParameters : public QObject - { - Q_OBJECT -@@ -54,6 +61,7 @@ private Q_SLOTS: - void constructionPEM(); - void unsafe512Bits(); - void unsafeNonPrime(); -+ void defaultIsValid(); - #endif - }; - -@@ -157,6 +165,33 @@ void tst_QSslDiffieHellmanParameters::unsafeNonPrime() - #endif - } - -+void tst_QSslDiffieHellmanParameters::defaultIsValid() -+{ -+ // The QSslDiffieHellmanParameters::defaultParameters() method takes a shortcut, -+ // by not verifying the passed-in parameters. Instead, it simply assigns the default -+ // DH parameters to the derData field of QSslDiffieHellmanParametersPrivate. -+ // -+ // This test ensures that our default parameters pass the internal verification tests -+ // by constructing, using fromEncoded(), a QSslDiffieHellmanParameters instance that -+ // we expect to be equivalent to the one returned by defaultParameters(). By using -+ // fromEncoded() we go through the internal verification mechanisms. Finally, to ensure -+ // the two instances are equivalent, we compare them. -+ -+ const auto dh = QSslDiffieHellmanParameters::fromEncoded( -+ QByteArray::fromBase64(QByteArray(qssl_dhparams_default_base64)), -+ QSsl::Der -+ ); -+ -+ const auto defaultdh = QSslDiffieHellmanParameters::defaultParameters(); -+ -+#ifndef QT_NO_OPENSSL -+ QCOMPARE(dh.isEmpty(), false); -+ QCOMPARE(dh.isValid(), true); -+ QCOMPARE(dh.error(), QSslDiffieHellmanParameters::NoError); -+ QCOMPARE(dh, defaultdh); -+#endif -+} -+ - #endif // QT_NO_SSL - - QTEST_MAIN(tst_QSslDiffieHellmanParameters) diff --git a/buildenv/1.3.x/common/qt5/patches/qt5-qsslsocket-evaluate-cas-in-all-keychain-categories.patch b/buildenv/1.3.x/common/qt5/patches/qt5-qsslsocket-evaluate-cas-in-all-keychain-categories.patch deleted file mode 100644 index c0da7d44..00000000 --- a/buildenv/1.3.x/common/qt5/patches/qt5-qsslsocket-evaluate-cas-in-all-keychain-categories.patch +++ /dev/null @@ -1,308 +0,0 @@ -This is a backport of the following qtbase commits: - - fe3a84138e266c425f11353f7d8dc28a588af89e - 5d94b679de6a89f8a868ac3588ad12af24fcf0e0 - ---- ./qtbase/src/network/ssl/qsslsocket.cpp -+++ ./qtbase/src/network/ssl/qsslsocket.cpp -@@ -1509,6 +1509,10 @@ QList QSslSocket::defau - returned by defaultCaCertificates(). You can replace that database - with your own with setDefaultCaCertificates(). - -+ \note: On OS X, only certificates that are either trusted for all -+ purposes or trusted for the purpose of SSL in the keychain will be -+ returned. -+ - \sa caCertificates(), defaultCaCertificates(), setDefaultCaCertificates() - */ - QList QSslSocket::systemCaCertificates() ---- ./qtbase/src/network/ssl/qsslsocket_mac.cpp -+++ ./qtbase/src/network/ssl/qsslsocket_mac.cpp -@@ -209,29 +209,6 @@ void QSslSocketPrivate::resetDefaultElli - Q_UNIMPLEMENTED(); - } - -- --QList QSslSocketPrivate::systemCaCertificates() --{ -- QList systemCerts; --#ifdef Q_OS_OSX -- // SecTrustSettingsCopyCertificates is not defined on iOS. -- QCFType cfCerts; -- OSStatus status = SecTrustSettingsCopyCertificates(kSecTrustSettingsDomainSystem, &cfCerts); -- if (status == noErr) { -- const CFIndex size = CFArrayGetCount(cfCerts); -- for (CFIndex i = 0; i < size; ++i) { -- SecCertificateRef cfCert = (SecCertificateRef)CFArrayGetValueAtIndex(cfCerts, i); -- QCFType derData = SecCertificateCopyData(cfCert); -- systemCerts << QSslCertificate(QByteArray::fromCFData(derData), QSsl::Der); -- } -- } else { -- // no detailed error handling here -- qCWarning(lcSsl) << "SecTrustSettingsCopyCertificates failed:" << status; -- } --#endif -- return systemCerts; --} -- - QSslSocketBackendPrivate::QSslSocketBackendPrivate() - : context(Q_NULLPTR) - { ---- ./qtbase/src/network/ssl/qsslsocket_mac_shared.cpp -+++ ./qtbase/src/network/ssl/qsslsocket_mac_shared.cpp -@@ -0,0 +1,149 @@ -+/**************************************************************************** -+** -+** Copyright (C) 2015 The Qt Company Ltd. -+** Copyright (C) 2015 ownCloud Inc -+** Contact: http://www.qt.io/licensing/ -+** -+** This file is part of the QtNetwork module of the Qt Toolkit. -+** -+** $QT_BEGIN_LICENSE:LGPL21$ -+** Commercial License Usage -+** Licensees holding valid commercial Qt licenses may use this file in -+** accordance with the commercial license agreement provided with the -+** Software or, alternatively, in accordance with the terms contained in -+** a written agreement between you and The Qt Company. For licensing terms -+** and conditions see http://www.qt.io/terms-conditions. For further -+** information use the contact form at http://www.qt.io/contact-us. -+** -+** GNU Lesser General Public License Usage -+** Alternatively, this file may be used under the terms of the GNU Lesser -+** General Public License version 2.1 or version 3 as published by the Free -+** Software Foundation and appearing in the file LICENSE.LGPLv21 and -+** LICENSE.LGPLv3 included in the packaging of this file. Please review the -+** following information to ensure the GNU Lesser General Public License -+** requirements will be met: https://www.gnu.org/licenses/lgpl.html and -+** http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. -+** -+** As a special exception, The Qt Company gives you certain additional -+** rights. These rights are described in The Qt Company LGPL Exception -+** version 1.1, included in the file LGPL_EXCEPTION.txt in this package. -+** -+** $QT_END_LICENSE$ -+** -+****************************************************************************/ -+ -+//#define QSSLSOCKET_DEBUG -+//#define QT_DECRYPT_SSL_TRAFFIC -+ -+#include "qssl_p.h" -+#include "qsslsocket.h" -+ -+#ifndef QT_NO_OPENSSL -+# include "qsslsocket_openssl_p.h" -+# include "qsslsocket_openssl_symbols_p.h" -+#endif -+ -+#include "qsslcertificate_p.h" -+ -+#ifdef Q_OS_DARWIN -+# include -+#endif -+ -+#include -+ -+#ifdef Q_OS_OSX -+# include -+#endif -+ -+ -+QT_BEGIN_NAMESPACE -+ -+#ifdef Q_OS_OSX -+namespace { -+ -+bool hasTrustedSslServerPolicy(SecPolicyRef policy, CFDictionaryRef props) { -+ QCFType policyProps = SecPolicyCopyProperties(policy); -+ // only accept certificates with policies for SSL server validation for now -+ if (CFEqual(CFDictionaryGetValue(policyProps, kSecPolicyOid), kSecPolicyAppleSSL)) { -+ CFBooleanRef policyClient; -+ if (CFDictionaryGetValueIfPresent(policyProps, kSecPolicyClient, reinterpret_cast(&policyClient)) && -+ CFEqual(policyClient, kCFBooleanTrue)) { -+ return false; // no client certs -+ } -+ if (!CFDictionaryContainsKey(props, kSecTrustSettingsResult)) { -+ // as per the docs, no trust settings result implies full trust -+ return true; -+ } -+ CFNumberRef number = static_cast(CFDictionaryGetValue(props, kSecTrustSettingsResult)); -+ SecTrustSettingsResult settingsResult; -+ CFNumberGetValue(number, kCFNumberSInt32Type, &settingsResult); -+ switch (settingsResult) { -+ case kSecTrustSettingsResultTrustRoot: -+ case kSecTrustSettingsResultTrustAsRoot: -+ return true; -+ default: -+ return false; -+ } -+ } -+ return false; -+} -+ -+bool isCaCertificateTrusted(SecCertificateRef cfCert, int domain) -+{ -+ QCFType cfTrustSettings; -+ OSStatus status = SecTrustSettingsCopyTrustSettings(cfCert, domain, &cfTrustSettings); -+ if (status == noErr) { -+ CFIndex size = CFArrayGetCount(cfTrustSettings); -+ // if empty, trust for everything (as per the Security Framework documentation) -+ if (size == 0) { -+ return true; -+ } else { -+ for (CFIndex i = 0; i < size; ++i) { -+ CFDictionaryRef props = static_cast(CFArrayGetValueAtIndex(cfTrustSettings, i)); -+ if (CFDictionaryContainsKey(props, kSecTrustSettingsPolicy)) { -+ if (hasTrustedSslServerPolicy((SecPolicyRef)CFDictionaryGetValue(props, kSecTrustSettingsPolicy), props)) -+ return true; -+ } -+ } -+ } -+ } else { -+ qCWarning(lcSsl, "Error receiving trust for a CA certificate"); -+ } -+ return false; -+} -+ -+} // anon namespace -+#endif // Q_OS_OSX -+ -+QList QSslSocketPrivate::systemCaCertificates() -+{ -+ ensureInitialized(); -+ -+ QList systemCerts; -+ // SecTrustSettingsCopyCertificates is not defined on iOS. -+#ifdef Q_OS_OSX -+ QCFType cfCerts; -+ // iterate through all enum members, order: -+ // kSecTrustSettingsDomainUser, kSecTrustSettingsDomainAdmin, kSecTrustSettingsDomainSystem -+ for (int dom = kSecTrustSettingsDomainUser; dom <= kSecTrustSettingsDomainSystem; dom++) { -+ OSStatus status = SecTrustSettingsCopyCertificates(dom, &cfCerts); -+ if (status == noErr) { -+ const CFIndex size = CFArrayGetCount(cfCerts); -+ for (CFIndex i = 0; i < size; ++i) { -+ SecCertificateRef cfCert = (SecCertificateRef)CFArrayGetValueAtIndex(cfCerts, i); -+ QCFType derData = SecCertificateCopyData(cfCert); -+ if (::isCaCertificateTrusted(cfCert, dom)) { -+ if (derData == NULL) { -+ qCWarning(lcSsl, "Error retrieving a CA certificate from the system store"); -+ } else { -+ systemCerts << QSslCertificate(QByteArray::fromCFData(derData), QSsl::Der); -+ } -+ } -+ } -+ } -+ } -+#endif -+ return systemCerts; -+} -+ -+QT_END_NAMESPACE ---- ./qtbase/src/network/ssl/qsslsocket_openssl.cpp -+++ ./qtbase/src/network/ssl/qsslsocket_openssl.cpp -@@ -700,6 +700,7 @@ void QSslSocketPrivate::resetDefaultElli - setDefaultSupportedEllipticCurves(curves); - } - -+#ifndef Q_OS_DARWIN // Apple implementation in qsslsocket_mac_shared.cpp - QList QSslSocketPrivate::systemCaCertificates() - { - ensureInitialized(); -@@ -708,43 +709,7 @@ QList QSslSocketPrivate - timer.start(); - #endif - QList systemCerts; --#if defined(Q_OS_MACX) -- CFArrayRef cfCerts; -- OSStatus status = 1; -- -- CFDataRef SecCertificateCopyData ( -- SecCertificateRef certificate -- ); -- -- if (ptrSecCertificateCopyData) { -- if (ptrSecTrustSettingsCopyCertificates) -- status = ptrSecTrustSettingsCopyCertificates(kSecTrustSettingsDomainSystem, &cfCerts); -- else if (ptrSecTrustCopyAnchorCertificates) -- status = ptrSecTrustCopyAnchorCertificates(&cfCerts); -- if (!status) { -- CFIndex size = CFArrayGetCount(cfCerts); -- for (CFIndex i = 0; i < size; ++i) { -- SecCertificateRef cfCert = (SecCertificateRef)CFArrayGetValueAtIndex(cfCerts, i); -- CFDataRef data; -- -- data = ptrSecCertificateCopyData(cfCert); -- -- if (data == NULL) { -- qCWarning(lcSsl, "error retrieving a CA certificate from the system store"); -- } else { -- QByteArray rawCert = QByteArray::fromRawData((const char *)CFDataGetBytePtr(data), CFDataGetLength(data)); -- systemCerts.append(QSslCertificate::fromData(rawCert, QSsl::Der)); -- CFRelease(data); -- } -- } -- CFRelease(cfCerts); -- } -- else { -- // no detailed error handling here -- qCWarning(lcSsl, "could not retrieve system CA certificates"); -- } -- } --#elif defined(Q_OS_WIN) -+#if defined(Q_OS_WIN) - if (ptrCertOpenSystemStoreW && ptrCertFindCertificateInStore && ptrCertCloseStore) { - HCERTSTORE hSystemStore; - #if defined(Q_OS_WINCE) -@@ -821,6 +786,7 @@ QList QSslSocketPrivate - - return systemCerts; - } -+#endif // Q_OS_DARWIN - - void QSslSocketBackendPrivate::startClientEncryption() - { ---- ./qtbase/src/network/ssl/ssl.pri -+++ ./qtbase/src/network/ssl/ssl.pri -@@ -46,6 +46,7 @@ contains(QT_CONFIG, ssl) | contains(QT_C - SOURCES += ssl/qsslcertificate_qt.cpp \ - ssl/qsslkey_qt.cpp \ - ssl/qsslkey_mac.cpp \ -+ ssl/qsslsocket_mac_shared.cpp \ - ssl/qsslsocket_mac.cpp \ - ssl/qsslellipticcurve_dummy.cpp - } -@@ -62,7 +63,9 @@ contains(QT_CONFIG, openssl) | contains( - ssl/qsslsocket_openssl.cpp \ - ssl/qsslsocket_openssl_symbols.cpp - --android:!android-no-sdk: SOURCES += ssl/qsslsocket_openssl_android.cpp -+ darwin:SOURCES += ssl/qsslsocket_mac_shared.cpp -+ -+ android:!android-no-sdk: SOURCES += ssl/qsslsocket_openssl_android.cpp - - # Add optional SSL libs - # Static linking of OpenSSL with msvc: ---- ./qtbase/src/network/ssl/qsslsocket_mac_shared.cpp -+++ ./qtbase/src/network/ssl/qsslsocket_mac_shared.cpp -@@ -91,7 +91,7 @@ bool hasTrustedSslServerPolicy(SecPolicyRef policy, CFDictionaryRef props) { - bool isCaCertificateTrusted(SecCertificateRef cfCert, int domain) - { - QCFType cfTrustSettings; -- OSStatus status = SecTrustSettingsCopyTrustSettings(cfCert, domain, &cfTrustSettings); -+ OSStatus status = SecTrustSettingsCopyTrustSettings(cfCert, SecTrustSettingsDomain(domain), &cfTrustSettings); - if (status == noErr) { - CFIndex size = CFArrayGetCount(cfTrustSettings); - // if empty, trust for everything (as per the Security Framework documentation) -@@ -125,8 +125,8 @@ QList QSslSocketPrivate::systemCaCertificates() - QCFType cfCerts; - // iterate through all enum members, order: - // kSecTrustSettingsDomainUser, kSecTrustSettingsDomainAdmin, kSecTrustSettingsDomainSystem -- for (int dom = kSecTrustSettingsDomainUser; dom <= kSecTrustSettingsDomainSystem; dom++) { -- OSStatus status = SecTrustSettingsCopyCertificates(dom, &cfCerts); -+ for (int dom = kSecTrustSettingsDomainUser; dom <= int(kSecTrustSettingsDomainSystem); dom++) { -+ OSStatus status = SecTrustSettingsCopyCertificates(SecTrustSettingsDomain(dom), &cfCerts); - if (status == noErr) { - const CFIndex size = CFArrayGetCount(cfCerts); - for (CFIndex i = 0; i < size; ++i) { diff --git a/buildenv/1.3.x/common/qt5/patches/qt5-qsslsocket-openssl-symbols-fix-signedness-warning-in-definefunc2.patch b/buildenv/1.3.x/common/qt5/patches/qt5-qsslsocket-openssl-symbols-fix-signedness-warning-in-definefunc2.patch deleted file mode 100644 index e5af7f8c..00000000 --- a/buildenv/1.3.x/common/qt5/patches/qt5-qsslsocket-openssl-symbols-fix-signedness-warning-in-definefunc2.patch +++ /dev/null @@ -1,31 +0,0 @@ -From 38a446b69e95423d8d42d33b30b3154caa475e09 Mon Sep 17 00:00:00 2001 -From: Friedemann Kleint -Date: Thu, 24 Nov 2016 09:27:52 +0100 -Subject: [PATCH] qsslsocket_openssl_symbols.cpp: Fix signedness warning in - DEFINEFUNC2 - -Fix warning: -qsslsocket_openssl_symbols.cpp157:78:warning: implicit conversion changes signedness: 'int' to 'unsigned long' -note: expanded from macro 'DEFINEFUNC2' - -Amends change 2cf63c71ebe139890526057dcc51b24ea6df6c30 - -Change-Id: I694c5199d272d05f0070288af2e00b6fce42fc91 -Reviewed-by: Timur Pocheptsov ---- - src/network/ssl/qsslsocket_openssl_symbols.cpp | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/src/network/ssl/qsslsocket_openssl_symbols.cpp b/src/network/ssl/qsslsocket_openssl_symbols.cpp -index 88fed69..2a0d746 100644 ---- a/src/network/ssl/qsslsocket_openssl_symbols.cpp -+++ b/src/network/ssl/qsslsocket_openssl_symbols.cpp -@@ -154,7 +154,7 @@ DEFINEFUNC(int, BN_num_bits, const BIGNUM *a, a, return 0, return) - #if OPENSSL_VERSION_NUMBER >= 0x10100000L - DEFINEFUNC2(int, BN_is_word, BIGNUM *a, a, BN_ULONG w, w, return 0, return) - #endif --DEFINEFUNC2(BN_ULONG, BN_mod_word, const BIGNUM *a, a, BN_ULONG w, w, return -1, return) -+DEFINEFUNC2(BN_ULONG, BN_mod_word, const BIGNUM *a, a, BN_ULONG w, w, return static_cast(-1), return) - #ifndef OPENSSL_NO_EC - DEFINEFUNC(const EC_GROUP*, EC_KEY_get0_group, const EC_KEY* k, k, return 0, return) - DEFINEFUNC(int, EC_GROUP_get_degree, const EC_GROUP* g, g, return 0, return) diff --git a/buildenv/1.3.x/common/qt5/qt5.build b/buildenv/1.3.x/common/qt5/qt5.build index 246bbedf..087533ce 100644 --- a/buildenv/1.3.x/common/qt5/qt5.build +++ b/buildenv/1.3.x/common/qt5/qt5.build @@ -1,22 +1,23 @@ #!/usr/bin/env mumble-build -# Copyright 2013-2017 The 'mumble-releng' Authors. All rights reserved. +# Copyright 2013-2018 The 'mumble-releng' Authors. All rights reserved. # Use of this source code is governed by a BSD-style license that # can be found in the LICENSE file in the source tree or at # . urls=( - "http://releng-distfiles.mumble.info/releng-distfiles/qt-everywhere-opensource-src-5.6.2.tar.gz" - "http://download.qt.io/archive/qt/5.6/5.6.2/single/qt-everywhere-opensource-src-5.6.2.tar.gz" + "https://s3.amazonaws.com/mumble-releng-distfiles/qt-everywhere-opensource-src-5.9.6.tar.xz" + "https://download.qt.io/archive/qt/5.9/5.9.6/single/qt-everywhere-opensource-src-5.9.6.tar.xz" ) digests=( - "sha1:4385b53f78665ac340ea2a709ebecf1e776efdc2" - "sha256:7551f5af1312082c3c8ab52f5e102e3f83aae2dd96dc4a3a9a197f3e58b3214c" + "sha1:39a71057722c729478119aab9e02bf541bf8d819" + "sha256:dacc995ae3a7cdad80eb9fdf6470299a8fac41f468a9bb941670ece523b62af4" + "blake2:6f437ae619639d4b5764c6eec7b861e2329e874779304ba01431795f46e12585bca183fe30a2849251d5bd9b3260e8562c5c851a34409a4953830df80c790948" ) function extract { - tar -zxf qt-everywhere-opensource-src-5.6.2.tar.gz - cd qt-everywhere-opensource-src-5.6.2 + tar -xf qt-everywhere-opensource-src-5.9.6.tar.xz + cd qt-everywhere-opensource-src-5.9.6 } function prepare { @@ -28,53 +29,32 @@ function prepare { echo "# dummy" > qtbase/.gitignore - # Disable qmacpasteboardmime. There are symbol clashes with the 'cocoa' plugin, - # so seemingly, these two modules aren't currently engineered to be used in a - # static build together. - patch -p1 < ${MUMBLE_BUILDENV_COMMON}/qt5/patches/qt5-macextras-disable-qmacpasteboardmime.patch - - patch -p1 < ${MUMBLE_BUILDENV_COMMON}/qt5/patches/qt5-force-qtimageformats-jasper-no-libjpeg.patch - patch -p1 < ${MUMBLE_BUILDENV_COMMON}/qt5/patches/qt5-qtimageformats-jasper-4-color-rct-debian.patch - - patch -p1 < ${MUMBLE_BUILDENV_COMMON}/qt5/patches/qt5-configureapp-use-msvc2013-mkspec.patch - patch -p1 < ${MUMBLE_BUILDENV_COMMON}/qt5/patches/qt5-mariadb-support.patch - patch -p1 < ${MUMBLE_BUILDENV_COMMON}/qt5/patches/qt5-mkspecs-common-msvc-desktop-mumble-debug+opt.patch - patch -p1 < ${MUMBLE_BUILDENV_COMMON}/qt5/patches/qt5-disable-qtsvg-filesystem-access.patch - patch -p1 < ${MUMBLE_BUILDENV_COMMON}/qt5/patches/qt5-avoid-j-underflow-in-harfbuzz.patch - patch -p1 < ${MUMBLE_BUILDENV_COMMON}/qt5/patches/qt5-we-want-a-buffer-for-named-pipes.patch - patch -p1 < ${MUMBLE_BUILDENV_COMMON}/qt5/patches/qt5-quick-and-dirty-hack-to-avoid-ssl-error-poisoning.patch - patch -p1 < ${MUMBLE_BUILDENV_COMMON}/qt5/patches/qt-5.6.1-work-around-client-verification-error.patch - patch -p1 < ${MUMBLE_BUILDENV_COMMON}/qt5/patches/qt5-add-realtime-flag-for-systray-messages.patch - patch -p1 < ${MUMBLE_BUILDENV_COMMON}/qt5/patches/qt-5.6.2-qsystemtrayicon-win-nosound.patch - patch -p1 < ${MUMBLE_BUILDENV_COMMON}/qt5/patches/qt5-fix-no-sse2-win32-build.patch - patch -p1 < ${MUMBLE_BUILDENV_COMMON}/qt5/patches/qt5-fix-win32-no-sse2-build-for-angle.patch - patch -p1 < ${MUMBLE_BUILDENV_COMMON}/qt5/patches/qt5-define-using-v110-sdk71-for-rc-exe-when-targetting-winxp.patch - patch -p1 < ${MUMBLE_BUILDENV_COMMON}/qt5/patches/qt-5.6.2-windows-platform-plugin-use-ShellExecuteEx.patch - patch -p1 < ${MUMBLE_BUILDENV_COMMON}/qt5/patches/qt5-mysql-cast-mysql_options-arg.patch - patch -p1 < ${MUMBLE_BUILDENV_COMMON}/qt5/patches/qt-5.5-remove-escaping-for-nmake-batch-mode-inference-rules.patch - patch -p1 < ${MUMBLE_BUILDENV_COMMON}/qt5/patches/qt-5.5.1-freetype-libs-private-win32.patch - patch -p1 < ${MUMBLE_BUILDENV_COMMON}/qt5/patches/qt-5.5.1-static-pcre-dependency.patch - patch -p1 < ${MUMBLE_BUILDENV_COMMON}/qt5/patches/qt5-qsslsocket-evaluate-cas-in-all-keychain-categories.patch - patch -p1 < ${MUMBLE_BUILDENV_COMMON}/qt5/patches/qt-5.6.1-fix-angle-non-sse2-build.patch - patch -p1 < ${MUMBLE_BUILDENV_COMMON}/qt5/patches/qt5-build-qbytearray_mac-and-qstring_mac-for-qmake.patch - patch -p1 < ${MUMBLE_BUILDENV_COMMON}/qt5/patches/qt5-qtimageformats-only-icns.patch - patch -p1 < ${MUMBLE_BUILDENV_COMMON}/qt5/patches/qt5-allow-bootstrap-build-with-system-mumblebuild-zlib.patch - patch -p1 < ${MUMBLE_BUILDENV_COMMON}/qt5/patches/qt5-qlogging-disable-thread-local.patch - patch -p1 < ${MUMBLE_BUILDENV_COMMON}/qt5/patches/qt-5.6.2-fix-qmake-unixmakefile-lib-escaping.patch + # Fix compilation + patch -p1 < ${MUMBLE_BUILDENV_COMMON}/qt5/patches/qt-5.9.6-fix-QTBUG-66652.patch + patch -p1 < ${MUMBLE_BUILDENV_COMMON}/qt5/patches/qt-5.9.6-fix-QTBUG-67259.patch + + patch -p1 < ${MUMBLE_BUILDENV_COMMON}/qt5/patches/qt-5.9.6-force-qtimageformats-jasper-no-libjpeg.patch + patch -p1 < ${MUMBLE_BUILDENV_COMMON}/qt5/patches/qt-5.9.6-qtimageformats-jasper-4-color-rct-debian.patch + + patch -p1 < ${MUMBLE_BUILDENV_COMMON}/qt5/patches/qt-5.9.6-mariadb-support.patch + patch -p1 < ${MUMBLE_BUILDENV_COMMON}/qt5/patches/qt-5.9.6-disable-qtsvg-filesystem-access.patch + patch -p1 < ${MUMBLE_BUILDENV_COMMON}/qt5/patches/qt-5.9.6-avoid-j-underflow-in-harfbuzz.patch + patch -p1 < ${MUMBLE_BUILDENV_COMMON}/qt5/patches/qt-5.9.6-we-want-a-buffer-for-named-pipes.patch + patch -p1 < ${MUMBLE_BUILDENV_COMMON}/qt5/patches/qt-5.9.6-quick-and-dirty-hack-to-avoid-ssl-error-poisoning.patch + patch -p1 < ${MUMBLE_BUILDENV_COMMON}/qt5/patches/qt-5.9.6-qsystemtrayicon-win-realtime-nosound.patch + patch -p1 < ${MUMBLE_BUILDENV_COMMON}/qt5/patches/qt-5.9.6-fix-no-sse2-win32-build.patch + patch -p1 < ${MUMBLE_BUILDENV_COMMON}/qt5/patches/qt-5.9.6-fix-win32-no-sse2-build-for-angle.patch + patch -p1 < ${MUMBLE_BUILDENV_COMMON}/qt5/patches/qt-5.9.6-windows-platform-plugin-use-ShellExecuteEx.patch + patch -p1 < ${MUMBLE_BUILDENV_COMMON}/qt5/patches/qt-5.9.6-mysql-cast-mysql_options-arg.patch + patch -p1 < ${MUMBLE_BUILDENV_COMMON}/qt5/patches/qt-5.9.6-remove-escaping-for-nmake-batch-mode-inference-rules.patch + patch -p1 < ${MUMBLE_BUILDENV_COMMON}/qt5/patches/qt-5.9.6-fix-angle-non-sse2-build.patch + patch -p1 < ${MUMBLE_BUILDENV_COMMON}/qt5/patches/qt-5.9.6-qtimageformats-only-icns.patch + patch -p1 < ${MUMBLE_BUILDENV_COMMON}/qt5/patches/qt-5.9.6-allow-bootstrap-build-with-system-mumblebuild-zlib.patch + patch -p1 < ${MUMBLE_BUILDENV_COMMON}/qt5/patches/qt-5.9.6-qlogging-disable-thread-local.patch + patch -p1 < ${MUMBLE_BUILDENV_COMMON}/qt5/patches/qt-5.9.6-fix-qmake-unixmakefile-lib-escaping.patch cd qtbase - patch -p1 < ${MUMBLE_BUILDENV_COMMON}/qt5/patches/qt5-macos-handle-qsetting-strings-with-embedded-zero-bytes-QTBUG-56124.patch - patch -p1 < ${MUMBLE_BUILDENV_COMMON}/qt5/patches/qt5-features-resources-prf-fix-use-of-unescaped-backslash.patch - # Begin QSslDiffieHellmanParameters patces - patch -p2 < ${MUMBLE_BUILDENV_COMMON}/qt5/patches/qt-5.6.1-qssldiffiehellmanparameters-v34.patch - patch -p1 < ${MUMBLE_BUILDENV_COMMON}/qt5/patches/qt5-doc-fix-documentation-warnings-for-qssldiffiehellmanparameters.patch - patch -p1 < ${MUMBLE_BUILDENV_COMMON}/qt5/patches/qt5-fix-some-qdoc-warnings-for-qt-5-8.patch - patch -p1 < ${MUMBLE_BUILDENV_COMMON}/qt5/patches/qt5-qssldiffiehellmanparameters-make-fit-for-release.patch - patch -p1 < ${MUMBLE_BUILDENV_COMMON}/qt5/patches/qt5-qsslsocket-openssl-symbols-fix-signedness-warning-in-definefunc2.patch - patch -p1 < ${MUMBLE_BUILDENV_COMMON}/qt5/patches/qt5-disable-qssldiffiehellmanparameters-tests-for-qt-no-ssl.patch - patch -p1 < ${MUMBLE_BUILDENV_COMMON}/qt5/patches/qt5-qssldiffiehellmanparameters-simplify-defaultparameters-construction.patch - patch -p2 < ${MUMBLE_BUILDENV_COMMON}/qt5/patches/qt5-qssldiffiehellmanparameters-c++98-support.patch - # End QSslDiffieHellmanParameters patces - perl bin/syncqt.pl -version 5.6.2 + patch -p2 < ${MUMBLE_BUILDENV_COMMON}/qt5/patches/qt-5.9.6-qssldiffiehellmanparameters-c++98-support.patch + perl bin/syncqt.pl -version 5.9.6 cd .. } diff --git a/buildenv/1.3.x/win32-static/mariadb-client.build b/buildenv/1.3.x/win32-static/mariadb-client.build index 6ac89673..0dfc34ab 100755 --- a/buildenv/1.3.x/win32-static/mariadb-client.build +++ b/buildenv/1.3.x/win32-static/mariadb-client.build @@ -47,10 +47,6 @@ function install { # Remove libmariadb .dll and .lib. We don't need/want them in our static build. rm -rf ${MUMBLE_PREFIX}/mariadbclient/lib/libmariadb.* - # Qt, our only user, expects to link against libmysqlclient. - # Rename our static library so we don't disappoint Qt. - mv ${MUMBLE_PREFIX}/mariadbclient/lib/mariadb/mariadbclient.lib ${MUMBLE_PREFIX}/mariadbclient/lib/libmysql.lib - # Delete unnecessary files rm -rf ${MUMBLE_PREFIX}/mariadbclient/lib/mariadb rm -rf ${MUMBLE_PREFIX}/mariadbclient/lib/plugin diff --git a/buildenv/1.3.x/win32-static/qt5.build b/buildenv/1.3.x/win32-static/qt5.build old mode 100755 new mode 100644 index bc29b6b7..10c488c9 --- a/buildenv/1.3.x/win32-static/qt5.build +++ b/buildenv/1.3.x/win32-static/qt5.build @@ -7,21 +7,7 @@ inherit "${MUMBLE_BUILDENV_COMMON}/qt5/qt5.build" function build { - case "${VSMAJOR}" in - "14") - QT_PLATFORM=win32-msvc2015 - ;; - "12") - QT_PLATFORM=win32-msvc2013 - ;; - "10") - QT_PLATFORM=win32-msvc2010 - ;; - *) - echo "Unknown \$VSMAJOR detected (it is set to ${VSMAJOR}). Bailing." - exit 1 - ;; - esac + QT_PLATFORM=win32-msvc if [ "${MUMBLE_BUILD_CONFIGURATION}" == "Release" ]; then BUILDCFG_FLAG="-release" @@ -45,7 +31,7 @@ function build { # We have to include SQLite3 and PCRE's include and lib directory # in the LIB and INCLUDE environment variables in order for Qt's # configure.exe to detect our "system" versions of those libraries. - cmd /c set LIB="$(cygpath -w ${MUMBLE_PREFIX}/sqlite3/lib)\;$(cygpath -w ${MUMBLE_PREFIX}/pcre/lib)\;%LIB%" \& set "INCLUDE=$(cygpath -w ${MUMBLE_PREFIX}/sqlite3/include)\;${MUMBLE_PREFIX}/pcre/include)\;%INCLUDE%" \& configure.bat ${BUILDCFG_FLAG} ${TARGET_FLAG} ${SSE2_FLAG} -static -no-c++11 -skip qtxmlpatterns -skip qtquickcontrols -skip qtmultimedia -skip qtactiveqt -skip qtlocation -skip qtsensors -skip qtconnectivity -skip qtimageformats -skip qtgraphicaleffects -skip qtscript -skip qtserialport -skip qtenginio -skip qtwebsockets -skip qtwebchannel -skip qt3d -skip qtcanvas3d -skip qtwebengine -skip qtdoc -prefix $(cygpath -w ${MUMBLE_PREFIX}/Qt5) -system-sqlite -I $(cygpath -w ${MUMBLE_PREFIX}/sqlite3/include) -L $(cygpath -w ${MUMBLE_PREFIX}/sqlite3/lib) -qt-sql-sqlite -qt-sql-mysql -I $(cygpath -w ${MUMBLE_PREFIX}/mariadbclient/include/mariadb) -L $(cygpath -w ${MUMBLE_PREFIX}/mariadbclient/lib) -system-pcre -I $(cygpath -w ${MUMBLE_PREFIX}/pcre/include) -L $(cygpath -w ${MUMBLE_PREFIX}/pcre/lib) -system-zlib -I $(cygpath -w ${MUMBLE_PREFIX}/zlib/include) -L $(cygpath -w ${MUMBLE_PREFIX}/zlib/lib) ZLIB_LIBS="-lzlib" -system-libpng -I $(cygpath -w ${MUMBLE_PREFIX}/libpng/include/libpng16) -L $(cygpath -w ${MUMBLE_PREFIX}/libpng/lib) -system-libjpeg -I $(cygpath -w ${MUMBLE_PREFIX}/libjpeg-turbo/include) -L $(cygpath -w ${MUMBLE_PREFIX}/libjpeg-turbo/lib) -system-freetype -I $(cygpath -w ${MUMBLE_PREFIX}/freetype/include/freetype2) -L $(cygpath -w ${MUMBLE_PREFIX}/freetype/lib) -system-harfbuzz -I $(cygpath -w ${MUMBLE_PREFIX}/harfbuzz-ng/include) -L $(cygpath -w ${MUMBLE_PREFIX}/harfbuzz-ng/lib) -openssl-linked -I $(cygpath -w ${MUMBLE_PREFIX}/OpenSSL/include) -L $(cygpath -w ${MUMBLE_PREFIX}/OpenSSL/lib) OPENSSL_LIBS="-llibeay32 -lssleay32 -lcrypt32 -lgdi32" -platform ${QT_PLATFORM} -no-dbus -nomake examples -nomake tests ${LTCG_FLAG} -mp -opensource -confirm-license + cmd /c set LIB="$(cygpath -w ${MUMBLE_PREFIX}/sqlite3/lib)\;$(cygpath -w ${MUMBLE_PREFIX}/pcre/lib)\;%LIB%" \& set "INCLUDE=$(cygpath -w ${MUMBLE_PREFIX}/sqlite3/include)\;${MUMBLE_PREFIX}/pcre/include)\;%INCLUDE%" \& configure.bat ${BUILDCFG_FLAG} ${TARGET_FLAG} ${SSE2_FLAG} -static -skip qtxmlpatterns -skip qtquickcontrols -skip qtmultimedia -skip qtactiveqt -skip qtlocation -skip qtsensors -skip qtconnectivity -skip qtimageformats -skip qtgraphicaleffects -skip qtscript -skip qtserialport -skip qtenginio -skip qtwebsockets -skip qtwebchannel -skip qt3d -skip qtcanvas3d -skip qtwebengine -skip qtdoc -prefix $(cygpath -w ${MUMBLE_PREFIX}/Qt5) -system-sqlite -I $(cygpath -w ${MUMBLE_PREFIX}/sqlite3/include) -L $(cygpath -w ${MUMBLE_PREFIX}/sqlite3/lib) -sql-sqlite -sql-mysql -I $(cygpath -w ${MUMBLE_PREFIX}/mariadbclient/include/mariadb) -L $(cygpath -w ${MUMBLE_PREFIX}/mariadbclient/lib) MYSQL_LIBS="-lmariadbclient -lzlib -lws2_32 -ladvapi32 -lshlwapi" -system-pcre -D PCRE2_STATIC -I $(cygpath -w ${MUMBLE_PREFIX}/pcre/include) -L $(cygpath -w ${MUMBLE_PREFIX}/pcre/lib) -system-zlib -I $(cygpath -w ${MUMBLE_PREFIX}/zlib/include) -L $(cygpath -w ${MUMBLE_PREFIX}/zlib/lib) ZLIB_LIBS="-lzlib" -system-libpng -I $(cygpath -w ${MUMBLE_PREFIX}/libpng/include/libpng16) -L $(cygpath -w ${MUMBLE_PREFIX}/libpng/lib) -system-libjpeg -I $(cygpath -w ${MUMBLE_PREFIX}/libjpeg-turbo/include) -L $(cygpath -w ${MUMBLE_PREFIX}/libjpeg-turbo/lib) -system-freetype -I $(cygpath -w ${MUMBLE_PREFIX}/freetype/include/freetype2) -L $(cygpath -w ${MUMBLE_PREFIX}/freetype/lib) -system-harfbuzz -I $(cygpath -w ${MUMBLE_PREFIX}/harfbuzz-ng/include) -L $(cygpath -w ${MUMBLE_PREFIX}/harfbuzz-ng/lib) -openssl-linked -I $(cygpath -w ${MUMBLE_PREFIX}/OpenSSL/include) -L $(cygpath -w ${MUMBLE_PREFIX}/OpenSSL/lib) OPENSSL_LIBS="-llibeay32 -lssleay32 -lcrypt32 -lgdi32" -platform ${QT_PLATFORM} -no-dbus -nomake examples -nomake tests ${LTCG_FLAG} -mp -opensource -confirm-license cmd /c nmake } From ae8662466fc7af31500622860d45d0f1f74b3c23 Mon Sep 17 00:00:00 2001 From: Davide Beatrici Date: Sat, 1 Sep 2018 22:05:34 +0200 Subject: [PATCH 27/30] buildenv/1.3.x/win32-static: update SQLite from version 3.18.0 to 3.24.0 --- buildenv/1.3.x/win32-static/sqlite3.build | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/buildenv/1.3.x/win32-static/sqlite3.build b/buildenv/1.3.x/win32-static/sqlite3.build index ed928c17..bbb1636d 100755 --- a/buildenv/1.3.x/win32-static/sqlite3.build +++ b/buildenv/1.3.x/win32-static/sqlite3.build @@ -1,23 +1,23 @@ #!/usr/bin/env mumble-build -# Copyright 2016 The 'mumble-releng' Authors. All rights reserved. +# Copyright 2016-2018 The 'mumble-releng' Authors. All rights reserved. # Use of this source code is governed by a BSD-style license that # can be found in the LICENSE file in the source tree or at # . urls=( - "http://releng-distfiles.mumble.info/releng-distfiles/sqlite-autoconf-3180000.tar.gz" - "http://sqlite.org/2017/sqlite-autoconf-3180000.tar.gz" + "https://s3.amazonaws.com/mumble-releng-distfiles/sqlite-autoconf-3240000.tar.gz" + "https://sqlite.org/2018/sqlite-autoconf-3240000.tar.gz" ) digests=( - "sha1:74559194e1dd9b9d577cac001c0e9d370856671b" - "sha256:3757612463976e7d08c5e9f0af3021613fc24bbcfe1c51197d6776b9ece9ac5c" - "blake2:b85a8e6a504a3f88246272002770eee4ee595d888dd5f6b645facb16abcf6af3b5819b6806ca90dd24f78ef238ba00fc48c1a49f9d4064a630e0689a2e466796" + "sha1:da68915e3563b5244cbcdb6c7e20fb35559bcfc6" + "sha256:d9d14e88c6fb6d68de9ca0d1f9797477d82fc3aed613558f87ffbdbbc5ceb74a" + "blake2:c8beb3b90bdd06f76cafeba859cbf91cf4d0cb313fc9202d210ccbad5fca7f9a062ede63387e814d664f0ae38bcfa48db222f466dbcd429fecfb53cfdac155c4" ) function extract { - tar -zxf sqlite-autoconf-3180000.tar.gz - cd sqlite-autoconf-3180000 + tar -zxf sqlite-autoconf-3240000.tar.gz + cd sqlite-autoconf-3240000 } function prepare { From 87c39808ff6599f2156688a7816aa098768784dc Mon Sep 17 00:00:00 2001 From: Davide Beatrici Date: Sat, 1 Sep 2018 22:11:43 +0200 Subject: [PATCH 28/30] buildenv/1.3.x/win32-static: update WiX Toolset from version 3.10 to 3.11 --- buildenv/1.3.x/win32-static/wix.build | 17 +++++++++-------- 1 file changed, 9 insertions(+), 8 deletions(-) diff --git a/buildenv/1.3.x/win32-static/wix.build b/buildenv/1.3.x/win32-static/wix.build index f27cf74e..0a5615f0 100644 --- a/buildenv/1.3.x/win32-static/wix.build +++ b/buildenv/1.3.x/win32-static/wix.build @@ -1,23 +1,24 @@ #!/usr/bin/env mumble-build -# Copyright 2017 The 'mumble-releng' Authors. All rights reserved. +# Copyright 2017-2018 The 'mumble-releng' Authors. All rights reserved. # Use of this source code is governed by a BSD-style license that # can be found in the LICENSE file in the source tree or at # . urls=( - "http://releng-distfiles.mumble.info/releng-distfiles/wix310-binaries.zip" - "http://download-codeplex.sec.s-msft.com/Download/Release?ProjectName=wix&DownloadId=1587180&FileTime=131118854877130000&Build=21031#fn=wix310-binaries.zip" + "https://s3.amazonaws.com/mumble-releng-distfiles/wix311-binaries.zip" + "https://github.com/wixtoolset/wix3/releases/download/wix3111rtm/wix311-binaries.zip" ) digests=( - "sha1:aa6a9b4c578ccc6da05670bf5393effb1392b89d" - "sha256:493145b3fac22bdf8c55142a9f96ef8136d56b38d78a2322f13f1ba11f9cf2f8" + "sha1:79c2184c80a8b4c70f090ee25f709a056971ac80" + "sha256:37f0a533b0978a454efb5dc3bd3598becf9660aaf4287e55bf68ca6b527d051d" + "blake2:065762cebba85de2b147cf6ef65081b245dc092d76a5eed70d19bf786fdde17fdb99a93f0805bce263c463e93e83d3f2ca32a925a5062797504947918b8541f8" ) function extract { - mkdir -p wix310-binaries - cd wix310-binaries - unzip -q -o ../wix310-binaries.zip + mkdir -p wix311-binaries + cd wix311-binaries + unzip -q -o ../wix311-binaries.zip } function build { From 1ab107bf8cd41634a02d4c74dcb7e95a297d6923 Mon Sep 17 00:00:00 2001 From: Davide Beatrici Date: Sun, 2 Sep 2018 18:50:24 +0200 Subject: [PATCH 29/30] buildenv/1.3.x/win32-static: update ZeroC Ice links and add BLAKE2 checksum --- buildenv/1.3.x/win32-static/zeroc-ice.build | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/buildenv/1.3.x/win32-static/zeroc-ice.build b/buildenv/1.3.x/win32-static/zeroc-ice.build index bf9f80ce..e63bb61c 100755 --- a/buildenv/1.3.x/win32-static/zeroc-ice.build +++ b/buildenv/1.3.x/win32-static/zeroc-ice.build @@ -1,17 +1,18 @@ #!/usr/bin/env mumble-build -# Copyright 2013-2014 The 'mumble-releng' Authors. All rights reserved. +# Copyright 2013-2018 The 'mumble-releng' Authors. All rights reserved. # Use of this source code is governed by a BSD-style license that # can be found in the LICENSE file in the source tree or at # . urls=( - "http://releng-distfiles.mumble.info/releng-distfiles/ice-3.6.3.tar.gz" + "https://s3.amazonaws.com/mumble-releng-distfiles/ice-3.6.3.tar.gz" "https://github.com/zeroc-ice/ice/archive/v3.6.3.tar.gz#fn=ice-3.6.3.tar.gz" ) digests=( "sha1:9d18e11afa53669ac68c778f95ccb4ada6801967" "sha256:82ff74e6d24d9fa396dbb4d9697dc183b17bc9c3f6f076fecdc05632be80a2dc" + "blake2:7219cd263ccf6207c0d1e788358004744bd53717bba79a53be468b5e38ddbc81895ef078ba31c98d90ac9ccdd9e17123f4a7ab590fa354c28f6d82f09bf0301d" ) function extract { From 6b97ad889c93a91aea8b9e4ca4674850d8862cde Mon Sep 17 00:00:00 2001 From: Davide Beatrici Date: Sat, 1 Sep 2018 22:13:33 +0200 Subject: [PATCH 30/30] buildenv/1.3.x/win32-static: update zlib links --- buildenv/1.3.x/win32-static/zlib.build | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/buildenv/1.3.x/win32-static/zlib.build b/buildenv/1.3.x/win32-static/zlib.build index 4805f3ad..185eef30 100755 --- a/buildenv/1.3.x/win32-static/zlib.build +++ b/buildenv/1.3.x/win32-static/zlib.build @@ -1,11 +1,11 @@ #!/usr/bin/env mumble-build -# Copyright 2013-2014 The 'mumble-releng' Authors. All rights reserved. +# Copyright 2013-2018 The 'mumble-releng' Authors. All rights reserved. # Use of this source code is governed by a BSD-style license that # can be found in the LICENSE file in the source tree or at # . urls=( - "http://releng-distfiles.mumble.info/releng-distfiles/zlib-1.2.11.tar.gz" + "https://s3.amazonaws.com/mumble-releng-distfiles/zlib-1.2.11.tar.gz" "http://zlib.net/zlib-1.2.11.tar.gz" )