-
Notifications
You must be signed in to change notification settings - Fork 36.6k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
depends: Upgrade Qt to 5.9.6 #12971
depends: Upgrade Qt to 5.9.6 #12971
Conversation
According to https://doc.qt.io/qt-5.10/supported-platforms-and-configurations.html#qt-5-9 gcc4.8 is supported. Also, I could build your receipt on ubuntu trusty, which comes with gcc4.8. I think you can get rid of the optional flag to compile qt5.9? Edit: I didn't try windows or mac cross builds, so those might be causing issues ... ? |
The plan is to just move depends to Qt 5.9+ quite soon, I have been delayed doing that work. |
@MarcoFalke The compiler version for linux native compilation is not a problem. It is though as soon as you are trying to cross compile to windows (which requires Mingw5.3). The macos build needs some further investigation. It fails upon creating qmake and the current qmake patch does not seem to work. Upon some investigation, I saw that multiple people had to do some manual property setting on xcode to make the build work. I am not sure if this is related though. |
Hmm. Imo we could drop support for cross-compile to windows on trusty and just require xenial or above. |
Could do a rebase since #12946 is merged? |
Rebased. |
@TheCharlatan Thanks for the work so far, however did you see my comment above? I think this would be better as a straight 5.7 -> 5.9 upgrade, instead of adding an additional version of Qt to depends. We would like to use Qt 5.9+ to build the next release anyways. Regardless of the that this needs a few fixes. There are currently whitespace linting errors. A linux Travis build is currently failing:
The macOS build would also need to be fixed/updated:
|
depends/packages/packages.mk
Outdated
qt_i686_linux_packages:=$(qt_x86_64_linux_packages) | ||
|
||
qt_darwin_packages=qt |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This looks like it's building QT 5.9 in either case?
@fanquake thanks for the review. |
Our gitian descriptors will be switched to bionic soon: #12511. Similarly, we can switch travis to xenial. Those will happen in separate pull request, so don't worry about them. |
Travis fails on linux 64 bit with:
And OSX:
|
See also #13215 |
Removed the optional flags, Qt5.9.4 is now the new default. The build still fails on MacOS. |
@TheCharlatan Can you fixup any trailing whitespace so that Travis will run: https://travis-ci.org/bitcoin/bitcoin/jobs/379496754 |
depends/README.md
Outdated
@@ -12,6 +12,10 @@ For example: | |||
|
|||
make HOST=x86_64-w64-mingw32 -j4 | |||
|
|||
To build the more recent Qt5.9.4, you can build depends with | |||
|
|||
make HOST=host-platform-triple QT_59=1 |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Can remove this hunk and all other references to qt 5.9?
depends/packages/qt.mk
Outdated
@@ -75,12 +64,10 @@ $(package)_config_opts += -qt-libpng | |||
$(package)_config_opts += -qt-libjpeg | |||
$(package)_config_opts += -qt-pcre | |||
$(package)_config_opts += -system-zlib | |||
$(package)_config_opts += -reduce-exports | |||
#$(package)_config_opts += -reduce-exports |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
nit: Either remove or replace with proper comment/reasoning.
doc/build-windows.md
Outdated
./autogen.sh # not required when building from tarball | ||
CONFIG_SITE=$PWD/depends/x86_64-w64-mingw32/share/config.site ./configure --prefix=/ --enable-qt59 | ||
make | ||
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This whole section is added in #13246, so feel free to remove this to avoid merge conflicts.
This should fix the problem. Patch from QTBUG-67286 |
This additional patch should fix all Mac and Windows build: |
You committed the wrong patch, it's not |
7ba4aac
to
51a5430
Compare
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Tested 77fd4f8 on macOS 10.13.5 (did a make clean-all
first). Also ran the tests.
@fanquake wrote:
this will likely bump the minimum required macOS version to 10.10. Which probably requires further discussion.
macOS 10.10 Yosemite indeed: https://doc-snapshots.qt.io/qt5-5.9/osx.html
See #13362 for discussion.
build-aux/m4/bitcoin_qt.m4
Outdated
|
||
|
||
dnl Internal. Check if the linked version of Qt was built as static libs. | ||
dnl Requires: Qt5. This check cannot determine if Qt4 is static. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Nit: no need to reference Qt4 anymore
depends/packages/qt.mk
Outdated
$(package)_file_name=qtbase-$($(package)_suffix) | ||
$(package)_sha256_hash=95f83e532d23b3ddbde7973f380ecae1bac13230340557276f75f2e37984e410 | ||
$(package)_sha256_hash=eed620cb268b199bd83b3fc6a471c51d51e1dc2dbb5374fc97a0cc75facbe36f |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Can confirm eed620cb268b199bd83b3fc6a471c51d51e1dc2dbb5374fc97a0cc75facbe36f matches https://download.qt.io/archive/qt/5.9/5.9.6/submodules/qtbase-opensource-src-5.9.6.tar.xz.mirrorlist
depends/packages/qt.mk
Outdated
$(package)_download_path=https://download.qt.io/archive/qt/5.7/$($(package)_version)/submodules | ||
$(package)_suffix=opensource-src-$($(package)_version).tar.gz | ||
$(package)_version=5.9.6 | ||
$(package)_download_path=http://download.qt.io/official_releases/qt/5.9/$($(package)_version)/submodules |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Why the http downgrade?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Thanks, missed this during rebase.
@@ -29,25 +27,18 @@ $(package)_config_opts += -c++std c++11 | |||
$(package)_config_opts += -confirm-license | |||
$(package)_config_opts += -dbus-runtime | |||
$(package)_config_opts += -hostprefix $(build_prefix) | |||
$(package)_config_opts += -no-alsa |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Is the reason we can drop these lines that these options been removed from QT?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
The config_opts lines I removed are no longer supported by qt's configure.
$(package)_config_opts_linux += -fontconfig | ||
$(package)_config_opts_linux += -no-opengl | ||
$(package)_config_opts_arm_linux = -platform linux-g++ -xplatform $(host) | ||
$(package)_config_opts_i686_linux = -xplatform linux-g++-32 | ||
$(package)_config_opts_x86_64_linux = -xplatform linux-g++-64 |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I can try building these depends on an arm64 device soon.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
cd depends && make
doesn't build QT when run from a aarch64 host, so nvm :-)
utACK 800dea8 |
800dea8 Upgrade Qt depends to 5.9.6 (Sebastian Kung) 70afa65 Fix depends Qt5.9.4 mac build (Ken Lee) 28482ef Ugrade Qt depends to Qt5.9.4 (Sebastian Kung) Pull request description: With the introduction of Ubuntu 18.04 (Bionic Beaver) modern versions of gcc and mingw that allow cross compilation of versions of Qt greater than 5.8 are now readily available. This pull requests upgrades the Qt depends recipe from Qt 5.7.1 to Qt 5.9.6. Qt 5.9.x is the current LTS version and should be supported by Qt until 2020. Tree-SHA512: 439295d594ff8954a5ba5e348a0452713721c805485be2edcb9f8603ee59e96db5a61e1c684bdff36bbfd643a79cd35c289817257af88f489d2890e7843460bf
3387bb0 travis: avoid timeout without saving caches, also enable all qt (Chun Kuan Lee) Pull request description: - If depends build take more than 20 mins, skip Bitcoin Core build to store depends caches and mark it fail. Then restart the job for Bitcoin Core build. - Enable Qt build for Windows and 32-bit Linux - Enable wallet for depends x86-64 Linux - Disable gui tests for Windows since they are not supported This would be helpful for upgrading Qt (#12971) and protobuf (#13513) Tree-SHA512: e943cbd848d90f9f70e29c94ed717f96ad2c2d27b433bafea762015756a2d2794fc28976c54aee087bf0f3726ac2c9140920272445a902038719b956e2160cf9
800dea8 Upgrade Qt depends to 5.9.6 (Sebastian Kung) 70afa65 Fix depends Qt5.9.4 mac build (Ken Lee) 28482ef Ugrade Qt depends to Qt5.9.4 (Sebastian Kung) Pull request description: With the introduction of Ubuntu 18.04 (Bionic Beaver) modern versions of gcc and mingw that allow cross compilation of versions of Qt greater than 5.8 are now readily available. This pull requests upgrades the Qt depends recipe from Qt 5.7.1 to Qt 5.9.6. Qt 5.9.x is the current LTS version and should be supported by Qt until 2020. Tree-SHA512: 439295d594ff8954a5ba5e348a0452713721c805485be2edcb9f8603ee59e96db5a61e1c684bdff36bbfd643a79cd35c289817257af88f489d2890e7843460bf
800dea8 Upgrade Qt depends to 5.9.6 (Sebastian Kung) 70afa65 Fix depends Qt5.9.4 mac build (Ken Lee) 28482ef Ugrade Qt depends to Qt5.9.4 (Sebastian Kung) Pull request description: With the introduction of Ubuntu 18.04 (Bionic Beaver) modern versions of gcc and mingw that allow cross compilation of versions of Qt greater than 5.8 are now readily available. This pull requests upgrades the Qt depends recipe from Qt 5.7.1 to Qt 5.9.6. Qt 5.9.x is the current LTS version and should be supported by Qt until 2020. Tree-SHA512: 439295d594ff8954a5ba5e348a0452713721c805485be2edcb9f8603ee59e96db5a61e1c684bdff36bbfd643a79cd35c289817257af88f489d2890e7843460bf
Ugrade Qt depends to Qt5.9.4 Depends can now be built with Qt5.9.4 , which is Qt's new long term support version. Fix depends Qt5.9.4 mac build Apply patch from QTBUG-67286 Upgrade Qt depends to 5.9.6
A fix for QTBUG-34748 was introduced in bitcoin#5915 (v0.11.0, Qt 5.2.1). QTBUG-34748 was fixed in version 5.3.0. The separated patch file, provided by bitcoin#5915, was dropped in bitcoin#12971 while bumping Qt to 5.9.4 (5.9.6). But libxcb.mk remained unchanged. This change reverts bitcoin#5915 for libxcb.mk.
173ef89 build: Small libxcb.mk improvements (Hennadii Stepanov) 5129b36 build: Clean remnants of QTBUG-34748 fix (Hennadii Stepanov) Pull request description: Hope, this PR will make [transit](#21376) to Qt 5.12.10 neater. A fix for [QTBUG-34748](https://bugreports.qt.io/browse/QTBUG-34748) was introduced in #5915 (v0.11.0, Qt 5.2.1). [QTBUG-34748](https://bugreports.qt.io/browse/QTBUG-34748) was [fixed](qt/qtbase@b19b080) in Qt 5.3.0. The separated [`fix-xcb-include-order.patch`](https://github.com/theuni/bitcoin/blob/bb44d9e7546e6118cd91db5bbe471a3ce2ee7fcd/depends/patches/qt/fix-xcb-include-order.patch), provided by #5915, was dropped in #12971 while bumping Qt to 5.9.4 (5.9.6). But `libxcb.mk` remained unchanged. This PR reverts #5915 for `libxcb.mk` as well. ACKs for top commit: practicalswift: cr ACK 173ef89: patch looks correct fanquake: ACK 173ef89 Tree-SHA512: 9815a7e532ff4aa08f9623ded8d5708eca1c9c73ac7a2684419a18c125da7627b44ac3191f2e7978946942c8d0580e73b1a93df624986fb2a13791a68ce1e025
173ef89 build: Small libxcb.mk improvements (Hennadii Stepanov) 5129b36 build: Clean remnants of QTBUG-34748 fix (Hennadii Stepanov) Pull request description: Hope, this PR will make [transit](bitcoin#21376) to Qt 5.12.10 neater. A fix for [QTBUG-34748](https://bugreports.qt.io/browse/QTBUG-34748) was introduced in bitcoin#5915 (v0.11.0, Qt 5.2.1). [QTBUG-34748](https://bugreports.qt.io/browse/QTBUG-34748) was [fixed](qt/qtbase@b19b080) in Qt 5.3.0. The separated [`fix-xcb-include-order.patch`](https://github.com/theuni/bitcoin/blob/bb44d9e7546e6118cd91db5bbe471a3ce2ee7fcd/depends/patches/qt/fix-xcb-include-order.patch), provided by bitcoin#5915, was dropped in bitcoin#12971 while bumping Qt to 5.9.4 (5.9.6). But `libxcb.mk` remained unchanged. This PR reverts bitcoin#5915 for `libxcb.mk` as well. ACKs for top commit: practicalswift: cr ACK 173ef89: patch looks correct fanquake: ACK 173ef89 Tree-SHA512: 9815a7e532ff4aa08f9623ded8d5708eca1c9c73ac7a2684419a18c125da7627b44ac3191f2e7978946942c8d0580e73b1a93df624986fb2a13791a68ce1e025
Ugrade Qt depends to Qt5.9.4 Depends can now be built with Qt5.9.4 , which is Qt's new long term support version. Fix depends Qt5.9.4 mac build Apply patch from QTBUG-67286 Upgrade Qt depends to 5.9.6
3387bb0 travis: avoid timeout without saving caches, also enable all qt (Chun Kuan Lee) Pull request description: - If depends build take more than 20 mins, skip Bitcoin Core build to store depends caches and mark it fail. Then restart the job for Bitcoin Core build. - Enable Qt build for Windows and 32-bit Linux - Enable wallet for depends x86-64 Linux - Disable gui tests for Windows since they are not supported This would be helpful for upgrading Qt (bitcoin#12971) and protobuf (bitcoin#13513) Tree-SHA512: e943cbd848d90f9f70e29c94ed717f96ad2c2d27b433bafea762015756a2d2794fc28976c54aee087bf0f3726ac2c9140920272445a902038719b956e2160cf9
3387bb0 travis: avoid timeout without saving caches, also enable all qt (Chun Kuan Lee) Pull request description: - If depends build take more than 20 mins, skip Bitcoin Core build to store depends caches and mark it fail. Then restart the job for Bitcoin Core build. - Enable Qt build for Windows and 32-bit Linux - Enable wallet for depends x86-64 Linux - Disable gui tests for Windows since they are not supported This would be helpful for upgrading Qt (bitcoin#12971) and protobuf (bitcoin#13513) Tree-SHA512: e943cbd848d90f9f70e29c94ed717f96ad2c2d27b433bafea762015756a2d2794fc28976c54aee087bf0f3726ac2c9140920272445a902038719b956e2160cf9
3387bb0 travis: avoid timeout without saving caches, also enable all qt (Chun Kuan Lee) Pull request description: - If depends build take more than 20 mins, skip Bitcoin Core build to store depends caches and mark it fail. Then restart the job for Bitcoin Core build. - Enable Qt build for Windows and 32-bit Linux - Enable wallet for depends x86-64 Linux - Disable gui tests for Windows since they are not supported This would be helpful for upgrading Qt (bitcoin#12971) and protobuf (bitcoin#13513) Tree-SHA512: e943cbd848d90f9f70e29c94ed717f96ad2c2d27b433bafea762015756a2d2794fc28976c54aee087bf0f3726ac2c9140920272445a902038719b956e2160cf9
3387bb0 travis: avoid timeout without saving caches, also enable all qt (Chun Kuan Lee) Pull request description: - If depends build take more than 20 mins, skip Bitcoin Core build to store depends caches and mark it fail. Then restart the job for Bitcoin Core build. - Enable Qt build for Windows and 32-bit Linux - Enable wallet for depends x86-64 Linux - Disable gui tests for Windows since they are not supported This would be helpful for upgrading Qt (bitcoin#12971) and protobuf (bitcoin#13513) Tree-SHA512: e943cbd848d90f9f70e29c94ed717f96ad2c2d27b433bafea762015756a2d2794fc28976c54aee087bf0f3726ac2c9140920272445a902038719b956e2160cf9
3387bb0 travis: avoid timeout without saving caches, also enable all qt (Chun Kuan Lee) Pull request description: - If depends build take more than 20 mins, skip Bitcoin Core build to store depends caches and mark it fail. Then restart the job for Bitcoin Core build. - Enable Qt build for Windows and 32-bit Linux - Enable wallet for depends x86-64 Linux - Disable gui tests for Windows since they are not supported This would be helpful for upgrading Qt (bitcoin#12971) and protobuf (bitcoin#13513) Tree-SHA512: e943cbd848d90f9f70e29c94ed717f96ad2c2d27b433bafea762015756a2d2794fc28976c54aee087bf0f3726ac2c9140920272445a902038719b956e2160cf9
With the introduction of Ubuntu 18.04 (Bionic Beaver) modern versions of gcc and mingw that allow cross compilation of versions of Qt greater than 5.8 are now readily available. This pull requests upgrades the Qt depends recipe from Qt 5.7.1 to Qt 5.9.6. Qt 5.9.x is the current LTS version and should be supported by Qt until 2020.