Skip to content

Conversation

fanquake
Copy link
Member

@fanquake fanquake commented Jan 4, 2017

This updates the depends system to use Qt 5.7.1. One improvement includes:

Starting with Qt 5.7, we will require a C++11 compliant compiler to build and use Qt. 
This allows us to use many of the new features in Qt itself, and renew our codebase 
using features such as constexpr, move semantics, range-for and auto. These efforts 
are well under way and will continue throughout the next versions.

See #8237 for some more discussion. However it's worth noting that build-related improvements likely won't make it into 0.14.0.

We can drop the configure-xcoderun patch, as it's been fixed in src.
The other patches have been updated to apply cleanly.

-c++11 and -no-nis have been removed as they are now invalid options.

There is currently an lrelease/translations related issue, and one other on linux.

compiling ../shared/qmakeevaluator.cpp
compiling ../shared/qmakebuiltins.cpp
compiling ../shared/profileevaluator.cpp
linking ../../../bin/lrelease
make[1]: Leaving directory `/home/travis/build/bitcoin/bitcoin/depends/work/build/x86_64-unknown-linux-gnu/qt/5.7.1-b0275a68b64/qttools/src/linguist/lrelease'
make[1]: Entering directory `/home/travis/build/bitcoin/bitcoin/depends/work/build/x86_64-unknown-linux-gnu/qt/5.7.1-b0275a68b64/qttranslations'
cd translations/ && ( test -e Makefile || /home/travis/build/bitcoin/bitcoin/depends/work/build/x86_64-unknown-linux-gnu/qt/5.7.1-b0275a68b64/qtbase/bin/qmake /home/travis/build/bitcoin/bitcoin/depends/work/build/x86_64-unknown-linux-gnu/qt/5.7.1-b0275a68b64/qttranslations/translations/translations.pro -o Makefile ) && make -f Makefile 
make[2]: Entering directory `/home/travis/build/bitcoin/bitcoin/depends/work/build/x86_64-unknown-linux-gnu/qt/5.7.1-b0275a68b64/qttranslations/translations'
make[2]: *** No rule to make target `/home/travis/build/bitcoin/bitcoin/depends/x86_64-unknown-linux-gnu/native/bin/lrelease', needed by `assistant_cs.qm'.  Stop.

cc @theuni
Closes #8237

@fanquake fanquake added this to the 0.14.0 milestone Jan 4, 2017
@fanquake fanquake requested a review from theuni January 4, 2017 13:28
--- old/qtbase/mkspecs/features/qt_module.prf 2016-03-17 02:06:42.705930685 +0000
+++ new/qtbase/mkspecs/features/qt_module.prf 2016-03-17 02:06:42.705930685 +0000
@@ -244,7 +244,7 @@
--- old/qtbase/mkspecs/features/qt_module.prf
Copy link
Contributor

@paveljanik paveljanik Jan 8, 2017

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Why so many diff-only related changes here?

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The code stayed the same but the lines moved.

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

We already clarified this with @fanquake. He re-did the diffs to apply cleanly.

@theuni
Copy link
Member

theuni commented Jan 10, 2017

@fanquake Thanks, having a look.

@theuni
Copy link
Member

theuni commented Jan 10, 2017

@fanquake Seems the xcoderun issue still exists. Did you see something upstream that looked like a fix?

I remember fixing up some of those issues in my unfinished branch, which was an attempt to split up the monolithic build into smaller chunks: theuni@b00b202. It's obviously not worth trying to do all that now, but it may be helpful to pick some of the changes out.

IIRC the lrelease problem was caused by something assuming that lrelease was already built, forcing it to build earlier should do the trick.

@jtimon
Copy link
Contributor

jtimon commented Jan 11, 2017

Concept ACK

@fanquake
Copy link
Member Author

@theuni I thought it only affected the 5.6 branch https://codereview.qt-project.org/#/c/164673.
Homebrew also dropped their patch for the same issue when moving to 5.7.1, see this commit.

@theuni
Copy link
Member

theuni commented Jan 11, 2017

@fanquake That's a different issue. Our problem is that it assumes that builds for osx are done on osx. Our patch fixes the cross build.

@theuni
Copy link
Member

theuni commented Jan 13, 2017

@fanquake My apologies, you were right about that patch. I had something different in mind (a sed we do in the .mk).

Mind putting that back the way you had it, then grabbing the top two commits here: https://github.com/theuni/bitcoin/tree/qt-5.7new ?

I think that may be enough to get this working.

@theuni
Copy link
Member

theuni commented Jan 13, 2017

@fanquake Also, rather than dropping the "-c++11" option, let's change it to "-c++std c++11". Otherwise, it'll pick up c++14/c++17 and potentially end up with a confused abi.

@fanquake
Copy link
Member Author

Rebased, so this is now on top of the other depends changes.
Updated to use -c++std c++11 instead of just dropping -c++11.
Re-dropped the xcrun configure patch.
Pull in two commits from @theuni.

@fanquake fanquake changed the title [WIP][depends] Qt 5.7.1 [depends] Qt 5.7.1 Jan 14, 2017
@fanquake
Copy link
Member Author

After discussion with theuni on IRC, have just pushed a fix for the c++ issue with the OSX build.

If this works, make sure to split out the config.site.in change into a separate commit, as it could be backported.

cfields: fanquake only reason i mention is that i had a theory at one point that it was the cause of the 10.7 back-compat breakage. Since it's responsible for intoducing c++03 abi objects into the 0.13 build.

https://github.com/bitcoin/bitcoin/blob/master/configure.ac#L62

theuni and others added 2 commits January 14, 2017 14:23
Their buildsystem insists on using the installed ltranslate, but gets confused
about how to find it. Since we manually control the build order, just drop the
dependency.
@maflcko
Copy link
Member

maflcko commented Jan 14, 2017

Concept ACK.

@laanwj
Copy link
Member

laanwj commented Jan 15, 2017

utACK bb077fa, looks good to me, good to see this is passing now.

@laanwj laanwj merged commit bb077fa into bitcoin:master Jan 15, 2017
laanwj added a commit that referenced this pull request Jan 15, 2017
bb077fa [depends] Remove OBJCXX define from config.site.in (fanquake)
c37ea4d depends: fix qt translations build (Cory Fields)
2b32dea depends: use new variable layout for qt sdk (Cory Fields)
02fcb29 [depends] Qt 5.7.1 (fanquake)
@fanquake fanquake deleted the depends-0-14-0-qt branch January 15, 2017 06:02
@maflcko
Copy link
Member

maflcko commented Jan 15, 2017

If this works, make sure to split out the config.site.in change into a separate commit, as it could be backported.

Tagging for backport

@maflcko maflcko modified the milestones: 0.13.3, 0.14.0 Jan 15, 2017
@fanquake fanquake removed the request for review from theuni January 16, 2017 13:40
sickpig referenced this pull request in sickpig/BitcoinUnlimited Feb 28, 2017
bb077fa [depends] Remove OBJCXX define from config.site.in (fanquake)
c37ea4d depends: fix qt translations build (Cory Fields)
2b32dea depends: use new variable layout for qt sdk (Cory Fields)
02fcb29 [depends] Qt 5.7.1 (fanquake)
codablock pushed a commit to codablock/dash that referenced this pull request Jan 21, 2018
bb077fa [depends] Remove OBJCXX define from config.site.in (fanquake)
c37ea4d depends: fix qt translations build (Cory Fields)
2b32dea depends: use new variable layout for qt sdk (Cory Fields)
02fcb29 [depends] Qt 5.7.1 (fanquake)
CryptoCentric pushed a commit to absolute-community/absolute that referenced this pull request Feb 27, 2019
CryptoCentric pushed a commit to absolute-community/absolute that referenced this pull request Feb 27, 2019
…dablock committed on Jan 20, 2018 Use version 2 blocks for miner_tests … @codablock codablock committed on Jan 20, 2018   Merge bitcoin#7871: Manual block file pruning.  …  @laanwj @codablock laanwj authored and codablock committed on Jan 11, 2017   Merge bitcoin#9507: Fix use-after-free in CTxMemPool::removeConflicts()  …  @sipa @codablock sipa authored and codablock committed on Jan 11, 2017   Merge bitcoin#9297: Various RPC help outputs updated  …  @MarcoFalke @codablock MarcoFalke authored and codablock committed on Jan 12, 2017   Merge bitcoin#9416: travis: make distdir before make  …  @MarcoFalke @codablock MarcoFalke authored and codablock committed on Jan 12, 2017   Merge bitcoin#9520: Deprecate non-txindex getrawtransaction and bette…  …  @MarcoFalke @codablock MarcoFalke authored and codablock committed on Jan 12, 2017   Merge bitcoin#9518: Return height of last block pruned by pruneblockc…  …  @MarcoFalke @codablock MarcoFalke authored and codablock committed on Jan 12, 2017   Merge bitcoin#9472: Disentangle progress estimation from checkpoints …  …  @laanwj @codablock laanwj authored and codablock committed on Jan 12, 2017   Merge bitcoin#8883: Add all standard TXO types to bitcoin-tx  …  @laanwj @codablock laanwj authored and codablock committed on Jan 12, 2017   Merge bitcoin#9261: Add unstored orphans with rejected parents to rec…  …  @laanwj @codablock laanwj authored and codablock committed on Jan 12, 2017   Merge bitcoin#9468: [Depends] Dependency updates for 0.14.0  …  @laanwj @codablock laanwj authored and codablock committed on Jan 12, 2017   Merge bitcoin#9222: Add 'subtractFeeFromAmount' option to 'fundrawtra…  …  @laanwj @codablock laanwj authored and codablock committed on Jan 12, 2017   Merge bitcoin#9490: Replace FindLatestBefore used by importmuti with …  …  @sipa @codablock sipa authored and codablock committed on Jan 13, 2017   Merge bitcoin#9469: [depends] Qt 5.7.1  …  @laanwj @codablock laanwj authored and codablock committed on Jan 15, 2017   Merge bitcoin#9380: Separate different uses of minimum fees  …  @laanwj @codablock laanwj authored and codablock committed on Jan 16, 2017   Remove SegWit related code in dash-tx  @codablock codablock committed on Sep 21, 2017   Merge bitcoin#9561: Wake message handling thread when we receive a ne…  …  @sipa @codablock sipa authored and codablock committed on Jan 17, 2017   Merge bitcoin#9508: Remove unused Python imports  …  @MarcoFalke @codablock MarcoFalke authored and codablock committed on Jan 18, 2017   Merge bitcoin#9512: Fix various things -fsanitize complains about
@bitcoin bitcoin locked as resolved and limited conversation to collaborators Sep 8, 2021
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Projects
None yet
Development

Successfully merging this pull request may close these issues.

[GUI] QT 5.7
6 participants