Skip to content

Comments

qt5: 5.14.2 -> 5.15.0 #96619

Closed
gebner wants to merge 8 commits intoNixOS:stagingfrom
gebner:qt515
Closed

qt5: 5.14.2 -> 5.15.0 #96619
gebner wants to merge 8 commits intoNixOS:stagingfrom
gebner:qt515

Conversation

@gebner
Copy link
Member

@gebner gebner commented Aug 29, 2020

Motivation for this change

Update to Qt 5.15.

This is just a rebased version of https://github.com/petabyteboy/nixpkgs/pull/1
All thanks go to @nrdxp and @petabyteboy who did the actual work

Things done
  • Tested using sandboxing (nix.useSandbox on NixOS, or option sandbox in nix.conf on non-NixOS linux)
  • Built on platform(s)
    • NixOS
    • macOS
    • other Linux distributions
  • Tested via one or more NixOS test(s) if existing and applicable for the change (look inside nixos/tests)
  • Tested compilation of all pkgs that depend on this change using nix-shell -p nixpkgs-review --run "nixpkgs-review wip"
  • Tested execution of all binary files (usually in ./result/bin/)
  • Determined the impact on package closure size (by running nix path-info -S before and after)
  • Ensured that relevant documentation is up to date
  • Fits CONTRIBUTING.md.

@gebner gebner added this to the 21.03 milestone Aug 29, 2020
@ofborg ofborg bot added 6.topic: python Python is a high-level, general-purpose programming language. 6.topic: qt/kde Object-oriented framework for GUI creation 8.has: clean-up This PR removes packages or removes other cruft 8.has: package (new) This PR adds a new package labels Aug 29, 2020
@ofborg ofborg bot requested review from a user, bkchr, periklis, qknight, svanderburg and ttuegel August 29, 2020 17:37
@ofborg ofborg bot added 10.rebuild-darwin: 101-500 This PR causes between 101 and 500 packages to rebuild on Darwin. 10.rebuild-linux: 501+ This PR causes many rebuilds on Linux and should normally target the staging branches. 10.rebuild-linux: 1001-2500 This PR causes many rebuilds on Linux and should target the staging branches. labels Aug 29, 2020
@ghost
Copy link

ghost commented Aug 30, 2020

I have rebased this to current master and added the change from #95772 to Qt 5.15 as well.

@ghost
Copy link

ghost commented Aug 30, 2020

This should probably go to the staging branch, can you change that?

@gebner gebner changed the base branch from master to staging August 30, 2020 09:59
@gebner
Copy link
Member Author

gebner commented Aug 30, 2020

I've rebased it to staging.

@periklis periklis removed their request for review August 31, 2020 07:05
@ttuegel ttuegel modified the milestones: 21.03, 20.09 Sep 2, 2020
@ttuegel
Copy link
Member

ttuegel commented Sep 2, 2020

I moved the milestone. I want to have this in NixOS 20.09 because the support window for Qt 5.14 will end before NixOS 21.03. I'm building this locally right now, but obviously I won't be able to finish reviewing until tomorrow. 😅

This reverts commit bec5405.

Qt 5.14 is still supported upstream, so we will not remove it yet.
Qt 5.15 is not officially supported by many packages, notably Plasma.
[
"-${lib.optionalString (compareVersion "5.9.0" < 0) "no-"}rpath"

"-system-xcb"
Copy link
Member

Choose a reason for hiding this comment

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

Have these configuration changes been tested with Qt 5.12 and Qt 5.14?

@ttuegel ttuegel marked this pull request as ready for review September 4, 2020 10:17
@ttuegel
Copy link
Member

ttuegel commented Sep 4, 2020

I still want to merge this, but we will not make Qt 5.15 the default version. It is not officially supported by many packages yet, particularly it is unsupported by Plasma.

@ofborg ofborg bot removed the 6.topic: python Python is a high-level, general-purpose programming language. label Sep 4, 2020
@ofborg ofborg bot requested review from abbradar, periklis and ttuegel September 4, 2020 11:02
@worldofpeace
Copy link
Contributor

worldofpeace commented Sep 4, 2020

@ttuegel So we have to use a version of qt in stable for plasma that won't be supported (at some tiny point before 21.03)?

@ajs124
Copy link
Member

ajs124 commented Sep 4, 2020

From looking at all-packages.nix, default for linux is 5.14 right now, which will be supported until 2020-12-12.
5.12 is still supported until 2020-12-12.

@ttuegel
Copy link
Member

ttuegel commented Sep 5, 2020

So we have to use a version of qt in stable for plasma that won't be supported (at some tiny point before 21.03)?

@worldofpeace We actually need to revert to Qt 5.12 in stable. Plasma 5.18 doesn't support Qt 5.14, and Plasma 5.19 is only supported until October (and isn't merged anyway).

@gebner
Copy link
Member Author

gebner commented Sep 5, 2020

@worldofpeace We actually need to revert to Qt 5.12 in stable. Plasma 5.18 doesn't support Qt 5.14, and Plasma 5.19 is only supported until October (and isn't merged anyway).

I don't think we should stick with LTS versions of Plasma if that means we can't upgrade Qt. AFAICT Plasma LTS releases only come around once every 1.5 years, so we would only be able to upgrade Qt every 1.5 years either.

If maintaining non-LTS versions (5.19) of Plasma is infeasible, could we instead override the Qt version only for Plasma and keep the system version at 5.15?

BTW, did you run into any other build errors with 5.15 aside from Plasma?

@ttuegel
Copy link
Member

ttuegel commented Sep 5, 2020

I don't think we should stick with LTS versions of Plasma if that means we can't upgrade Qt.

Plasma 5.18 is the only version of Plasma that will have support through our support window for NixOS 20.09, so I don't think we have much choice there. Plasma 5.20 won't be released until October, and Plasma 5.19's support window expires shortly after. We don't have the resources to be backporting security patches onto Plasma 5.19 for six months. Qt 5.12 is also an LTS release, with security updates beyond the support window of NixOS 20.09.

The status of different version combinations is:

  1. I can't even build Qt 5.15 right now, let alone build anything with it.
  2. Plasma 5.18 officially supports Qt 5.12. Plasma 5.18 builds with Qt 5.14, but it's not officially supported upstream and it's very glitchy. (I'm using it right now, but I haven't been able to update my main work machine because it's so bad.)
  3. Plasma 5.19 supports Qt 5.14 officially. It does not support Qt 5.15, so I expect that combination to be buggy. The support window ends when Plasma 5.20 is released in October. It's too late to update for NixOS 20.09 now, and even if I begged for an exception (which I won't) I can't see how we can support it until NixOS 21.03.

I can't imagine foisting any combination other than Plasma 5.18 + Qt 5.12 on users of NixOS 20.09. The combination is supported upstream and each has LTS support through our support window. I think anything else would be an utter disaster.

Edit:

If maintaining non-LTS versions (5.19) of Plasma is infeasible, could we instead override the Qt version only for Plasma and keep the system version at 5.15?

Maybe. I think we have several custom patches to support Qt 5.14 with various applications, and even though they build, I'm not sure they work right. In general, open source applications are very slow to adapt to new Qt versions, so I don't see any reason we should be so eager. At least, I'd be happier adding the new version and waiting for application maintainers to pin their packages to the new version.

@worldofpeace
Copy link
Contributor

@ttuegel All of that sounds good to me. I encourage any option that makes Plasma use Qt 5.12.

@ttuegel
Copy link
Member

ttuegel commented Sep 5, 2020

I'm going to open two separate pull requests:

  1. Add Qt 5.15 and make it the default for everything except Plasma and KDE Applications, which stay at Qt 5.14. (I know, yet another pull request, I'm sorry.) I think this one can go directly into master because it shouldn't be a mass rebuild.
  2. Revert Plasma 5.18 to Qt 5.12. This needs to go into staging because it is a mass rebuild. This does not need to hold up the release branch because we can always push it into the release staging branch after. (It's a 3-line change, there won't be conflicts.)

I think this meets everyone's needs, and we can get it done quickly.

@ttuegel ttuegel mentioned this pull request Sep 5, 2020
10 tasks
@periklis periklis removed their request for review September 6, 2020 09:22
@ttuegel ttuegel closed this Sep 8, 2020
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

6.topic: qt/kde Object-oriented framework for GUI creation 8.has: clean-up This PR removes packages or removes other cruft 8.has: package (new) This PR adds a new package 10.rebuild-darwin: 101-500 This PR causes between 101 and 500 packages to rebuild on Darwin. 10.rebuild-linux: 501+ This PR causes many rebuilds on Linux and should normally target the staging branches. 10.rebuild-linux: 1001-2500 This PR causes many rebuilds on Linux and should target the staging branches.

Projects

No open projects
Archived in project

Development

Successfully merging this pull request may close these issues.

5 participants