From de437b905b44ce27455cae2fed7be6918fbaed26 Mon Sep 17 00:00:00 2001 From: Chocobo1 Date: Thu, 6 Dec 2018 17:23:28 +0800 Subject: [PATCH 1/4] Fix MSVC C4267 warning The warning was: "warning C4267: 'argument': conversion from 'size_t' to 'int', possible loss of data" --- src/base/utils/password.cpp | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/src/base/utils/password.cpp b/src/base/utils/password.cpp index bced8359e..ec9257ab5 100644 --- a/src/base/utils/password.cpp +++ b/src/base/utils/password.cpp @@ -78,16 +78,16 @@ QByteArray Utils::Password::PBKDF2::generate(const QByteArray &password) std::array outBuf {}; const int hmacResult = PKCS5_PBKDF2_HMAC(password.constData(), password.size() - , reinterpret_cast(salt.data()), (sizeof(salt[0]) * salt.size()) + , reinterpret_cast(salt.data()), static_cast(sizeof(salt[0]) * salt.size()) , hashIterations, hashMethod - , outBuf.size(), outBuf.data()); + , static_cast(outBuf.size()), outBuf.data()); if (hmacResult != 1) return {}; const QByteArray saltView = QByteArray::fromRawData( - reinterpret_cast(salt.data()), (sizeof(salt[0]) * salt.size())); + reinterpret_cast(salt.data()), static_cast(sizeof(salt[0]) * salt.size())); const QByteArray outBufView = QByteArray::fromRawData( - reinterpret_cast(outBuf.data()), outBuf.size()); + reinterpret_cast(outBuf.data()), static_cast(outBuf.size())); return (saltView.toBase64() + ':' + outBufView.toBase64()); } @@ -110,11 +110,11 @@ bool Utils::Password::PBKDF2::verify(const QByteArray &secret, const QByteArray const int hmacResult = PKCS5_PBKDF2_HMAC(password.constData(), password.size() , reinterpret_cast(salt.constData()), salt.size() , hashIterations, hashMethod - , outBuf.size(), outBuf.data()); + , static_cast(outBuf.size()), outBuf.data()); if (hmacResult != 1) return false; const QByteArray outBufView = QByteArray::fromRawData( - reinterpret_cast(outBuf.data()), outBuf.size()); + reinterpret_cast(outBuf.data()), static_cast(outBuf.size())); return slowEquals(key, outBufView); } From a137f1493e136cf1b016ea2600b02dfe23a08388 Mon Sep 17 00:00:00 2001 From: Chocobo1 Date: Thu, 6 Dec 2018 18:26:27 +0800 Subject: [PATCH 2/4] Use correct locale to display date --- src/base/net/geoipmanager.cpp | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/base/net/geoipmanager.cpp b/src/base/net/geoipmanager.cpp index fdedc0131..49d5c8db3 100644 --- a/src/base/net/geoipmanager.cpp +++ b/src/base/net/geoipmanager.cpp @@ -435,8 +435,9 @@ void GeoIPManager::downloadFinished(const QString &url, QByteArray data) if (m_geoIPDatabase) delete m_geoIPDatabase; m_geoIPDatabase = geoIPDatabase; + const QLocale locale {Preferences::instance()->getLocale()}; Logger::instance()->addMessage(tr("GeoIP database loaded. Type: %1. Build time: %2.") - .arg(m_geoIPDatabase->type(), m_geoIPDatabase->buildEpoch().toString()), + .arg(m_geoIPDatabase->type(), locale.toString(m_geoIPDatabase->buildEpoch())), Log::INFO); QString targetPath = Utils::Fs::expandPathAbs( specialFolderLocation(SpecialFolder::Data) + GEOIP_FOLDER); From 2a428ffd37ac702109c1701bd7be0ba543aa8dc3 Mon Sep 17 00:00:00 2001 From: Chocobo1 Date: Sat, 8 Dec 2018 13:05:05 +0800 Subject: [PATCH 3/4] Use CC, CXX from environment when available --- conf.pri.in | 2 ++ configure | 8 ++++++++ configure.ac | 6 ++++++ 3 files changed, 16 insertions(+) diff --git a/conf.pri.in b/conf.pri.in index 09ce6d1e5..1a9e84335 100644 --- a/conf.pri.in +++ b/conf.pri.in @@ -5,6 +5,8 @@ BINDIR = @EXPAND_BINDIR@ DATADIR = @EXPAND_DATADIR@ MANPREFIX = @EXPAND_MANDIR@ +QMAKE_CC = @QBT_CC@ +QMAKE_CXX = @QBT_CXX@ QMAKE_CXXFLAGS += @QBT_CONF_EXTRA_CFLAGS@ EXTERNAL_INCLUDES = @QBT_CONF_INCLUDES@ diff --git a/configure b/configure index 47533ffb9..629bbba1e 100755 --- a/configure +++ b/configure @@ -595,6 +595,8 @@ QBT_REMOVE_CONFIG QBT_ADD_CONFIG QBT_CONF_EXTRA_CFLAGS QBT_CONF_INCLUDES +QBT_CXX +QBT_CC EXPAND_MANDIR EXPAND_DATADIR EXPAND_BINDIR @@ -4178,6 +4180,10 @@ END fi +# use compiler from env variables if available +QBT_CC="$CC" +QBT_CXX="$CXX" + # Define --wth-* and --enable-* arguments @@ -5795,6 +5801,8 @@ QBT_ADD_DEFINES="$QBT_ADD_DEFINES $QBT_CONF_DEFINES" + + ac_config_files="$ac_config_files conf.pri" cat >confcache <<\_ACEOF diff --git a/configure.ac b/configure.ac index 751403ba8..4591467d8 100644 --- a/configure.ac +++ b/configure.ac @@ -8,6 +8,10 @@ AC_LANG(C++) AC_CANONICAL_HOST AM_INIT_AUTOMAKE +# use compiler from env variables if available +QBT_CC="$CC" +QBT_CXX="$CXX" + # Define --wth-* and --enable-* arguments AC_ARG_WITH(qtsingleapplication, @@ -275,6 +279,8 @@ extract "$CFLAGS $CXXFLAGS" QBT_ADD_DEFINES="$QBT_ADD_DEFINES $QBT_CONF_DEFINES" # Substitute the values of these vars in conf.pri.in +AC_SUBST(QBT_CC) +AC_SUBST(QBT_CXX) AC_SUBST(QBT_CONF_INCLUDES) AC_SUBST(QBT_CONF_EXTRA_CFLAGS) AC_SUBST(QBT_ADD_CONFIG) From 1b2cdda7e2e6b95285eda1ab3db51afd1b191046 Mon Sep 17 00:00:00 2001 From: Chocobo1 Date: Sat, 8 Dec 2018 12:35:23 +0800 Subject: [PATCH 4/4] Use gcc-5 for TravisCI linux builds Remove workarounds for CXXFLAGS. Using 3 compilation jobs should cause process trashing, tune it down to 2. TravisCI container builds is deprecated, so remove the `sudo: false` command. --- .travis.yml | 25 +++++-------------------- 1 file changed, 5 insertions(+), 20 deletions(-) diff --git a/.travis.yml b/.travis.yml index 646e02ed1..476d23f6a 100644 --- a/.travis.yml +++ b/.travis.yml @@ -39,8 +39,6 @@ cache: # opt-in Ubuntu Trusty dist: trusty -# container-based builds -sudo: false addons: coverity_scan: @@ -67,20 +65,21 @@ addons: - [libboost-dev, libboost-system-dev] - libtorrent-rasterbar-dev - [qt55base, qt55svg, qt55tools] - - [gcc-6, g++-6] + - [gcc-5, g++-5] before_install: # only allow specific build for coverity scan, others will stop - if [ "$TRAVIS_BRANCH" = "$coverity_branch" ] && ! [ "$TRAVIS_OS_NAME" = "linux" -a "$lt_branch" = "RC_1_0" -a "$gui" = true -a "$build_system" = "qmake" ]; then exit ; fi - shopt -s expand_aliases - - alias make="colormake -j3" # Using nprocs/2 sometimes may fail (gcc is killed by system) + - alias make="colormake -j2" # Using nprocs/2 sometimes may fail (gcc is killed by system) - qbt_path="$HOME/qbt_install" - | if [ "$TRAVIS_OS_NAME" = "linux" ]; then qbtconf="$qbtconf --prefix="$qbt_path" PKG_CONFIG_PATH=/opt/qt55/lib/pkgconfig:$PKG_CONFIG_PATH" else qbtconf="$qbtconf --prefix="$qbt_path" PKG_CONFIG_PATH=/usr/local/opt/openssl/lib/pkgconfig:$PKG_CONFIG_PATH" + CXXFLAGS="$CXXFLAGS -Wno-unused-local-typedefs -Wno-inconsistent-missing-override" fi # options for specific branches @@ -93,10 +92,7 @@ before_install: # Qt 5 PATH=/opt/qt55/bin:${PATH} - if [ "$build_system" = "cmake" ]; then - COMPILER_VERSION=6 - export CXX="${CXX}-${COMPILER_VERSION}" CC="${CC}-${COMPILER_VERSION}" - fi + export CXX="${CXX}-5" CC="${CC}-5" fi # print settings @@ -156,18 +152,7 @@ script: BUILD_TOOL="ninja" fi if [ "$build_system" = "qmake" ]; then - if [ "$TRAVIS_OS_NAME" = "osx" ]; then - # For some reason for RC_1_1 we need to also specify the OpenSSL compiler/linker flags - # Homebrew doesn't symlink OpenSSL for security reasons - ./bootstrap.sh - ./configure $qbtconf CXXFLAGS="$CXXFLAGS -std=c++14" - - sed -i "" -e "s/^\(CC.*&&\).*$/\1 $CC/" src/Makefile # workaround for Qt & ccache: https://bugreports.qt.io/browse/QTBUG-31034 - sed -i "" -e "s/^\(CXX.*&&\).*$/\1 $CXX/" src/Makefile - sed -i "" -e 's/^\(CXXFLAGS.*\)$/\1 -Wno-unused-local-typedefs -Wno-inconsistent-missing-override/' src/Makefile - else - ./bootstrap.sh && ./configure $qbtconf - fi + ./bootstrap.sh && ./configure $qbtconf CXXFLAGS="$CXXFLAGS" BUILD_TOOL="make" fi - $BUILD_TOOL && $BUILD_TOOL install