Skip to content

Conversation

fanquake
Copy link
Member

@fanquake fanquake commented May 14, 2016

Bump Qt to 5.6.1

The major changes are:
LTS - 5.6 is the new Long Term Support release, the previous being 4.8
Windows 10 is fully supported
High-DPI support, details here
Improved C++11 support by adding reverse iterators for all our container classes, a key_iterator for QHash and QMap, and a const_iterator for QByteArray.

Maybe worth noting that 5.6 is the will be the last version before some open source licensing changes take place, more details here.

Qt 5.6.0 - release post
Qt 5.6.1 - release post

Fixes #7999

OpenSSL 1.0.2h
I had issues compiling with 1.0.1k, and had to remove the no-cms and no-rc2 configure options for 1.0.2h, otherwise the build would fail.
I also had to add a make depend step before building.

@jonasschnelli
Copy link
Contributor

Nice! Have you tested this already over a gitian build?

@jonasschnelli
Copy link
Contributor

Got gitian compile issues:
https://bitcoin.jonasschnelli.ch/pulls/8053/

making depend in crypto...
make[2]: Entering directory `/home/ubuntu/build/bitcoin/depends/work/build/i686-pc-linux-gnu/openssl/1.0.2h-08249684d6f/crypto'
../util/domd: 31: ../util/domd: makedepend: not found
mv: cannot stat 'Makefile.new': No such file or directory
make[2]: *** [local_depend] Error 127
make[2]: Leaving directory `/home/ubuntu/build/bitcoin/depends/work/build/i686-pc-linux-gnu/openssl/1.0.2h-08249684d6f/crypto'
make[1]: *** [depend] Error 1

@theuni
Copy link
Member

theuni commented May 20, 2016

Why not stick with 1.0.1k and drop no-cms and no-rc2? IIRC I had no trouble building that way when I tested qt 5.6. I'd really rather not require makedepend.

Alternatively, we could upstream the qt change to work properly without these. Either way, I don't think switching to 1.0.2 could be done lightly.

I assume the patches were dropped because they didn't apply cleanly? We'll need to check these. The mingw patch fixes a build-time problem with older gcc (4.6 iirc). Now that we require c++11, I think we can probably drop that.

The other is much more subtle, and fixes a runtime issue. See bb44d9e for info there.

@fanquake fanquake force-pushed the depends-qt-5-6-0 branch 2 times, most recently from 2827958 to 179df84 Compare May 21, 2016 08:08
@arowser
Copy link
Contributor

arowser commented May 25, 2016

Can one of the admins verify this patch?

@fanquake
Copy link
Member Author

This is now building successfully on OSX 10.11.5, plugging ./configure --prefix=/depends/x86_64-apple-darwin15.5.0 into configure.

Still investigating dropping the patches. I'll have to push a few more minor changes if they can be dropped.
@jonasschnelli Can you retest?
@theuni Is there any value in bumping our libxcb dependancy?

@laanwj
Copy link
Member

laanwj commented May 30, 2016

I guess we'd have to tackle #7945 as well, to make sure this gets tested.

@jonasschnelli
Copy link
Contributor

Still fails:

qxcbintegration.h:42:21: fatal error: xcb/xcb.h: No such file or directory

Build logs: https://bitcoin.jonasschnelli.ch/pulls/8053/

@laanwj
Copy link
Member

laanwj commented Jun 9, 2016

Let's try to get this in for 0.13, Qt is the single most important dependency to bump from a user perspective.

@fanquake
Copy link
Member Author

fanquake commented Jun 9, 2016

I'll rebase on master and look at removing dbus

On Thursday, 9 June 2016, Wladimir J. van der Laan notifications@github.com
wrote:

Let's try to get this in for 0.13, Qt is the single most important
dependency to bump from a user perspective.


You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub
#8053 (comment), or mute
the thread
https://github.com/notifications/unsubscribe/AA0t8v81tM--ZJ97yk6TX_nFJqiLZfhHks5qJ7L8gaJpZM4IejtX
.

@jonasschnelli
Copy link
Contributor

The bump to Qt5.6 would give users on Linux/Windows "full" HiDPI support which somehow is extremely convenient these days (most new computers/laptops come with a HiDPI capable screen).
There are some ugly glitches with Qt5.5 (#6472) and I guess more and more users will use HiDPI resolution on Linux/Mac.

It would be nice if we could bump to Qt5.6 before 0.13, but I agree, it is a little bit late. On the other hand, we still have the rc phase (I don't expect people reporting Qt5.6 relevant HiDPI issues before the rc phase).

@laanwj
Copy link
Member

laanwj commented Jun 9, 2016

It's not too late. The best time to test it is in the rc phase as different people will be testing it on different environments.

@theuni
Copy link
Member

theuni commented Jun 9, 2016

5.6.1 was released yesterday, may as well target that.

I'm working on build/toolchain stuff atm, I'll try to take a look at the xcb issue asap.

@theuni theuni mentioned this pull request Jun 9, 2016
3 tasks
@fanquake fanquake changed the title [WIP] [depends] Qt 5.6.0 [WIP] [depends] Qt 5.6.1 Jun 10, 2016
@fanquake
Copy link
Member Author

Rebased on master and updated to Qt 5.6.1

@fanquake
Copy link
Member Author

The xcb patch no longer applies cleanly, will look at this again later today.

@laanwj
Copy link
Member

laanwj commented Jun 14, 2016

It complains about the missing patch now...

/bin/sh: 1: cannot open /home/travis/build/bitcoin/bitcoin/depends/work/build/x86_64-unknown-linux-gnu/qt/5.6.1-697d96c0681/.patches-697d96c0681/fix-xcb-include-order.patch: No such file

@jonasschnelli
Copy link
Contributor

Using this commit (jonasschnelli@0102b7f) let me compile Qt5.6.1 (depends/linux), but I had to manually create the Qt5XcbQpa.pc and the Qt5PlatformSupport.pc.
I could not figure out why these two pkgconfig files where not generated.
@theuni any ideas?

@paveljanik
Copy link
Contributor

@fanquake
Copy link
Member Author

QT 5.7 has been released.

"
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.
"

Qt Core

Qt uses poll() instead of select() in it’s event loop allowing for more than 1024 file descriptors
Qt now uses std::atomic for it’s atomic classes

@laanwj
Copy link
Member

laanwj commented Jun 17, 2016

Okay this is getting confusing, is it just me or is Qt now releasing a new version every two weeks?

@jonasschnelli
Copy link
Contributor

Indeed.
Qt7 has been released yesterday. We might want to go with Qt5.6.1 for 0.13.

@laanwj
Copy link
Member

laanwj commented Jun 17, 2016

Qt7 has been released yesterday. We might want to go with Qt5.6.1 for 0.13.

+1. it's the more stable choice...

@theuni
Copy link
Member

theuni commented Jun 17, 2016 via email

@maflcko maflcko removed this from the 0.13.0 milestone Jun 20, 2016
@maflcko
Copy link
Member

maflcko commented Jun 20, 2016

Removed 0.13 milestone, as #8210 is merged

@laanwj laanwj closed this Jun 20, 2016
@fanquake fanquake deleted the depends-qt-5-6-0 branch June 22, 2016 02:55
@fanquake fanquake mentioned this pull request Jun 22, 2016
@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.

[depends] Qt fails to build on OSX 10.11, Xcode 7.3.1
7 participants