Join GitHub today
Qt: Make Qt 5.9 a hard requirement #7149
Jul 10, 2018
10 checks passed
The required addAction is available since 5.6.0
Obviously, as the check is ">= 5.6.0", also only requires 5.6.0
Support was added in 5.8.0, https://codereview.qt-project.org/#/c/170035/
Otherwise I would suggest to lower the requirements to 5.6, or 5.8 at most.Qt 5.6 is an LTS with support until March 2019.
@StefanBruens IMO Except that March 2019 from this date just doesn't look like "long term" to me. It's a magic circle, holding back Qt improvements fuels more reasons to keep Wx because those reasons would be using the cons of Qt as their argument for Wx. I agree with sypcrab to push with it while Qt momentum is still high so that it gets done good and quicker and doesn't drag the transition too long. The length of the transition is also a UX factor and it can only by it self create dilemmas in user preference and opinion as they have more time thinking and digging deeper in various comparisons.
@Zexaron but dolphin does not use a single feature introduced after 5.6.0
Nested namespace specifiers are a C++17 feature which you may use one day, but currently it is not used, so there is no need for a newer moc.
Qt 5.9 or newer is only available in the distribution releases from the last 3 months, e.g. Ubuntu 18.04 (2018-04-26), openSUSE Leap 15.0 (2018-05-18). There is no stable Debian with anything later than 5.7.x. I have tested building it for openSUSE Leap 42.3, which only provides Qt 5.6.4.
The only change to make it compatible with 5.6 is lowering the version in the CMakeLists.txt
@StefanBruens We actually already use nested namespace specifiers in the IOS and DSP code (and likely other places in the future). Of the list provided, we don't directly support openSUSE, we only have integration buildbots for Android, Debian (unstable, since stable likes to take forever to update and move with the rest of the world), Ubuntu, and FreeBSD as far as unix/unix-like support goes.
added a commit
this pull request
Jul 13, 2018
I fear you are confusing nested namespaces with nested namespace identifiers. E.g. DSP::Analyzser is a nested namespace, but the code does not use nested namespace identifiers, but the plain old C++98 syntax:
@StefanBruens Yes, I don't need to be "'splained" about what nested-namespaces are. "nested namespaces" and "nested namespace identifiers" are both commonly used to refer to the same thing. Thanks in advance.
Some parts of the DSP code do use nested namespaces, while other parts do not yet (example). Please don't cherry-pick otherwise, or just not thoroughly look. I can assure you I know where nested namespaces are used, since I've worked on that code. Again, thanks in advance.
Let's not escalate this further please.
@KAMiKAZOW @StefanBruens we are not going to limit ourselves to the 5.6 feature set. We are targetting 5.9, and while we are not currently relying on anything that's not in 5.6 this is 1. by pure chance; 2. going to change.
Our benchmark for Linux compatibility re: external dependencies is "latest Ubuntu LTS". We are not going to subject ourselves to the slow update schedule of every single distro that exists.
If you distribution is not packaging Qt 5.9 yet, then I would recommend to not use latest Dolphin and keep to pre-5.9 required versions. Or maintain a patch as part of your package that decreases the Qt requirement until it breaks. Then you're on your own.