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
[20.09] kdeApplications: Use latest qt515 by default #102347
Conversation
Building my system now against this PR. |
Backport of the PR NixOS#101369. All commits have been squashed, and other minor changes were made as well to align the state of 20.09 with that of master.
(cherry picked from commit 05d95cf)
(cherry picked from commit 7ac898f)
(cherry picked from commit d87b883)
(cherry picked from commit dfd29f9)
Plasma and applications that I have installed work fine. |
I just tried it (thanks a lot for this work), and I got rid the first errors I use to have (so guess it's quite an improvement already and it would make sense to merge since 20.09 is completely broken right now), but I still have an error with a package
I didn't explicitely installed that package, so not sure where it comes from. Maybe it's not related at all with this PR, but the fact that the issues comes from Thanks a lot! |
@tobiasBora do you happen to have kdenlive fix for master in #102364 |
@FRidh Indeed, I do have kdenlive! I just disabled it, and I'll try the kdenlive fix after. Meanwhile, I got another issue:
|
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 approve all, but I didn't test a thing.
was able to build largely everything... was about to merge xD |
This will make all Plasma users on NixOS 20.09 install two versions of Qt. |
Am I unusual in installing all of kdeApplications? Something is broken via qtwebkit and I'm not sure what |
Yeah, I did specify it would be essential if people could wait to merge because your review is essential |
IIRC, there was already 5.12 and 5.14 likely to be present, or did you mean 5.15 in addition to this? |
Because we don't have a qt-applications.nix, we have many packages built only for a specific qt version, declared in all-packages.nix and we don't know for sure if they are using 514 specifically because they really need to, or because they were falsley identified as broken with qt514. In 78b8ce7 and 22167ae @ttuegel you marked many such packages, while I suspect that they were broken because some of their inputs weren't part of So, if someone is bothered that they have many qt versions in their closure, they should track down whatever it is that pulls these older qt versions, and see if pinning them to qt514 is justified. Before attempting to build a package with a different Even if a package doesn't use inconsistent qt versions and does not build with qt515, one should contact upstream and tell them. Ideally, a link to such an upstream issue should be added to where qt514 is pinned. And you know, if there's a patch or a new version available that fixes that ...
It's better to have more qt versions in the closure then broken packages. |
There should only have been Qt 5.14 if you install the KDE PIM suite, which is unavoidable because KDE PIM depends on the newer Qt. The desktop alone only depended on Qt 5.12, but now it depends on both Qt 5.12 and Qt 5.15.
I strongly disagree. If a maintainer is bothered that their package is broken, they should fix the package. If they don't fix the package, then the package is de facto unmaintained, and we hope a user will step up to help maintain it. Either way, there is a strong signal: a broken package. This pull request replaces a strong signal with a weak one: closure size creep. |
Maybe
edit: I was checking only qtbase, not the other libs. |
Do you have an example?
The issue is more complicated then that, and I oversimplified it previously. My opinion is that we shouldn't expect every maintainer of such a broken package to comply with the override you forced for all kde attrsets, and that was inherited in the widest scope here which is the override and the inheritance that broke many packages. Let's take as an example Here's how it was defined: nixpkgs/pkgs/top-level/all-packages.nix Lines 21733 to 21734 in 6928309
It builds, but it was using qtbase 5.15 but other qt libraries from kde attrsets built with qt5.14. So should it also use qt5.14? Just because it's inputs are by default built with qt5.14? What is the casual maintainer of it is expected to do? Do you expect every package maintainer to realize that because of this: nixpkgs/pkgs/top-level/all-packages.nix Lines 13328 to 13329 in 6928309
And alike, their package is broken? I consider myself somewhat experienced with Nix and it took me quiet some time to understand what's wrong with everything. Say the maintainer does understand the above, and they still want to use qt5.15 for their package, do they need to override the Even if all of these maintainers would have understood the reason for their package to break, did we expect them to think "I know that the kde override breaks my package but I don't know why all kde attrsets are stuck with qt5.14 and I won't touch it because it's @ttuegel's land, so I'll put an ugly override in all-packages such as this, so my package will use qt5.15 but still work"? For how long did we plan to pin kde to use qt5.14? |
Hopefully next year we can just package the latest non-lts version. So that we have plasma using a more recent version of Qt. Would save a lot of this mess. https://discourse.nixos.org/t/what-should-stable-nixos-prioritize/9646/56 |
@@ -83,7 +82,6 @@ let | |||
setupHook = args.setupHook or defaultSetupHook; | |||
|
|||
meta = { | |||
broken = lib.versionAtLeast qtbase.version "5.15"; |
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.
Plasma 5.18 does not support Qt 5.15.
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?
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.
because it's based on qt 5.12 and 5.13 https://community.kde.org/Schedules/Plasma_5
src = fetchurl { | ||
url = "https://download.kde.org/stable/${pname}/${version}/${pname}-${version}.tar.xz"; | ||
sha256 = "sha256:1pgvf2q8b59hw0jg5ajmj5nrn4q8cgnifpvdd0fynk2ml6zym8k3"; | ||
src = fetchFromGitLab { |
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 aren't we using the official release?
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 commit message of the unsquashed PR explains it - From some reason I couldn't find the latest git tag in that URL, maybe they forgot to push the tarball 🤷♂️ .
Do I have an example of... the default Plasma install depending on Qt 5.12 and Qt 5.15? Yes: Dolphin and Konsole are part of the default installation and are now built with Qt 5.15.
I introduced In this specific case, I expect Okteta to be built with Qt 5.15. The dependencies which are incorrectly pinned to Qt 5.14 should be unpinned. If the maintainer isn't comfortable un-pinning the dependencies themselves, I hope they will open a bug report about the incorrectly pinned libraries and tag the maintainers. |
I hope so, too, but that will require that Plasma's maintainers keep up with the latest Qt, which they have not done so far. |
The issue I opened regarding unpinning deps is #100707 . The deps which were supposed to be unpinned are all of kde attrsets, and I had no answer to the question why were they pinned in the 1st place (the commits in #97242 didn't explain why) and testing has proved that the changes here were appropriate and that kde does support qt515.
I don't understand. So is there a problem now or not?
You are ignoring the fact that some people in the past have added packages which they considered back then as applications and they used An example of the "phenomena" above is |
This MR somehow pulled in a change to
The |
Yes, there is a problem, but I admit it is not the problem I originally thought. Here is the real problem: Plasma packages have been changed to use Qt 5.15!
Plasma 5.18 does not officially support Qt 5.15. The packages can build with Qt 5.15, but upstream does not test them with that version. My own testing revealed a lot of glitches. We intentionally released NixOS 20.09 with Plasma 5.18 built with Qt 5.12, because my view was that Plasma 5.18 built with Qt 5.15 was not stable. EDIT: Oh, I guess (contrary to the title) this pull request also makes Plasma use Qt 5.15? 😮
I am not ignoring that. People add packages all the time that are broken in subtle ways; broken in ways that we don't realize until later. I add packages sometimes that are broken in subtle ways. I expect that to happen. We should find ways to make it easier for people to do the right thing. We should fix the broken packages as we find them. I think people want to package things the right way, and I think they look for examples in Nixpkgs when they do it, so we should not make more broken packages (bad examples) for them to follow. In my view, this does not make good examples. However, in light of the above changes (moving everything to Qt 5.15) then my comments in this paragraph are irrelevant and may safely be ignored. 🤷 |
Backport of the PR #101369.
All commits have been squashed, and other minor changes were made as
well to align the state of 20.09 with that of master.
Furthermore, other KDE-related fixes were cherry-picked
Motivation for this change
Fix #98879 , Fix #101023, Fix #102361 .
Things done
sandbox
innix.conf
on non-NixOS linux)nix-shell -p nixpkgs-review --run "nixpkgs-review wip"
./result/bin/
)nix path-info -S
before and after)