-
-
Notifications
You must be signed in to change notification settings - Fork 13.7k
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
pyqt6: 6.5.2 -> 6.6.0 #264877
pyqt6: 6.5.2 -> 6.6.0 #264877
Conversation
Should |
didn't catch that one, yes thank you |
any objections to go ahead an merge this? My machine is not beefy enough to run a full nixpkgs-review here, but I have built the pyqt6 package successfully at least. |
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.
Changes look good, can't do a full nixpkgs-review due to rebuild count.
nom build .#ffado .#python3Packages.pyqt6 .#qt6Packages.qtwebengine
succeeds
How about only disabling the ffado mixer in the package where it would cause a dependency cycle instead of by default? That would mean it would still work if the flag is enabled globally via an overlay (and would avoid having to do that or manually enabling it in the first place for people who want the mixer), and preserve it being there. |
Is there even an actual dependency cycle here? Or are you just trying to reduce the amount of rebuilds caused by pyqt updates? |
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.
-1 until we figure out the ffado situation
Is that the right default though? Any package that uses ffado as a build dep probably doesn't want the mixer, and doesn't want to bring in a huge graphical stack as a dependency for no good reason. Whereas as user who does can simple toggle it in their config fairly easily.
Define "actual dependency cycle". If you mean that qtwebengine depends on pyqt5 unneccesarily before this change, and that any change to pyqt unnecessarily causes a costly rebuid of webengine for no good reason, then the answer is yes. |
So there is no actual dependency cycle, as in there's no situation where A depends on B, and B depends on A, and the result is impossible to express directly in Nix. Whether something is "unnecessary" or not has no bearing on whether it causes a dependency cycle. |
Okay, well perhaps I used incorrect wording, but in any case, it seems an appropriate change and should reduce the closure size of any package that uses ffado as a library. |
Build closure specifically, as the mixer is fully separated into a |
What exactly are you trying to get at? I already checked that my intention was effective with |
At runtime or at build time? My intention here is to figure out what exactly is being changed here and why, as the original wording of "dependency cycle" implied a very specific thing that is clearly not taking place here. |
It is is both the run and build time closure of webengine that is affected. The library is not legitimately needed by the buildtime at all, but ends up in the runtime closure regardless. |
Then the actual issue we have is that the dependency is leaking out from ffado's bin output, and that's what I'd prefer to see addressed. I'll take a look tomorrow morning. |
Yes, and that is the issue being addressed here. At least by default. The mixer is a GUI program which uses pyqt5. So if we leave it on by default, then any package that uses ffado will have pyqt5 in their runtime closure. Since pyqt5 is need by the ffado mixer at runtime, the only way not to leak is is to disable it entirely. Also updated OP with clearer language (hopefully) |
Is that only the case after the rest of this PR is applied (i.e. only the non-ffado changes)? I can only confirm that it is a build-time reference on
|
With this PR applied, there is no longer a build-time reference either, but this then raises the question of whether the extra complexity is worth it when PyQt updates will most likely have to go through staging anyway for the foreseeable future. |
It was at the time this PR was authored, perhaps something has changed in master since then. |
Closure size does not seem to have changed by a lot in a while: https://hydra.nixos.org/job/nixpkgs/trunk/pipewire.x86_64-linux#tabs-charts But either way I guess the ffado change is unnecessary here now regardless then? |
Previous pyqt updates didn't go through staging. It is only due to the sip bump that many python packages are being rebuilt here, but that is not always required. |
It is still present on master.
|
Those aren't comparable. Your command is equivalent to |
Okay, regardless the point of the change was to avoid a rebuild of webengine when pyqt is bumped. Even if it is only the build time closure, that is still enough to trigger a rebuild for no reason. qtwebengine is one of the heaviest builds we have, so avoiding rebuilding it for no good reason sounds like a good idea to me. |
In that case I suggest we scope this PR to just the version bump, and discuss the ffado situation separately after 23.11 branch-off. |
Sounds like a fair compromise. I can prepare a separate PR for that later then. |
It's not that simple if you want to run it with nix run or the other CLI tools. Plus, toggling the mixer off by default means it doesn't get built/tested by Hydra, so breakages might be found only after a package update. |
Makes sense. Probably the best solution is what @K900 seemed to be getting at earlier in separating the ffado bins into their own output. |
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.
With the ffado change removed and just having the version bump, this diff looks good to me now
If ofborg builds pass and @K900 is good with this now, then I think this is merge-ready. I added a backport label given this should be a backwards compatible change, but let me know/remove it if you feel it is not for some reason
Thank you @nrdxp!
Successfully created backport PR for |
Description of changes
update to match current qt release version.
Also included is a fix for ffado package to remove the GUI mixer by default, since that causes webengine to depend on pyqt unnecessarily.There is no way way to avoid a costly rebuild of qtwebengine for this change, but this fix will resolve having to do so each time we bump pyqt.addressed in #269467Because a bump of
sip
was also required, there are quite a few package rebuilds.Things done
nix.conf
? (See Nix manual)sandbox = relaxed
sandbox = true
nix-shell -p nixpkgs-review --run "nixpkgs-review rev HEAD"
. Note: all changes have to be committed, also see nixpkgs-review usage./result/bin/
)