-
-
Notifications
You must be signed in to change notification settings - Fork 18k
qt5.qtwebengine: Pin to GCC 14 #479108
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
qt5.qtwebengine: Pin to GCC 14 #479108
Conversation
No longer receiving fixes, and known-insecure.
|
Looking at the remaining list of packages that pull this in at all – and the fact that some of them are just via generic Python Qt bindings that it can probably be dropped from, and other distros like Arch have dropped the package – I think it might be time to finally drop this. It’s coming up on a year’s worth of Chromium CVEs now… |
Can we get the list of packages that this would break first? (I know I have at least one package that depends on qt5.qtwebengine on my systems -- I'm not happy about it, but I'd be even less happy if I cannot use the software at all.) |
|
Relevant: #437521 removes the qt5 webengine dependency for python-qt, that should cover the majority of dependent packages. |
It's in the rebuild report of this PR. I spot checked a few things and about half of them had solutions (just a binding that can be moved to Qt 6 or have WebEngine support dropped from, upstream rewrote on Rust/Tauri years ago but we're shipping a version from 2023) with the other half clearly never going to be fixed (notice in the upstream repo that it's not being maintained, or being replaced upstream with a rewrite). Arch also dropped it already. We can't keep this building forever and it's unlikely the things that can still be moved off it will do so spontaneously at this point since they don't have enough Nixpkgs maintenance to have done it in response to the |
Where? I don't see it. |
Under Eval Summary.
|
Thanks! First time I'm seeing that. I went there before but didn't notice I had to expand "Changed packages (59)". (I focused mostly on the top diagram, and tried to interact with the "Eval/report" block, but that's marked as skipped...) |
|
Re: Arch dropping qt5-webengine: keshavbhatt/whatsie#275. This hurts users. (And for myself, losing whatsie on the desktop means even stronger dependency on my Android phone...) |
|
WhatsApp has a web client, right? I can’t really recommend using what looks like a project that has been unmaintained for over a year using an unmaintained Chromium fork with a year’s worth of exploits unfixed, especially one that processes untrusted content (messaging platforms are often vectors for exploits). https://wiki.archlinux.org/title/WhatsApp suggests there are many potential alternatives. We certainly can’t maintain Qt 5 WebEngine (and Qt 5 in general) indefinitely for it, since it doesn’t look likely that upstream will ever move off it. Of course you can always use it from an old Nixpkgs commit, if you accept the risk; it’s unlikely any other vulnerabilities and issues that pile up in its dependency tree will be worse than what’s already there. |
Good point, thanks!
Of that list, few are packaged in nixpkgs. Some are forks of forks, some even listed as unmaintained. The first one I tested (zapzap) crashed at runtime (looks like a packaging bug). I also tried So that was one of 59(?) affected packages. What about the rest? (Another one I have interest in: 'eagle'.)
Forever is impossible, agreed, but we have a PR now to allow 59 software packages to work for (probably) 6 more months. And it requires opt-in to accept the security risk, so it's not like we recommend using this software. I don't think we should recommend users to run old pinned nixpkgs. |
bjornfor
left a comment
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.
whatsie[1] and eagle build and run with this, thanks!
[1] Use the web app instead if you can.
10 of the listed packages are just aliases for Qt WebEngine and Qt WebView themselves, 7 of them are the same packages duplicated across Python versions, 3 are aliases of packages both inside and outside the Python set. So we’re at 49 off the bat. From these, the ones I’ve spot‐checked are:
So that’s 15 out of 49, divided into 3 library packages that shouldn’t be counted separately, 4 packages where the dependency is optional and trivially removable (3 of which are currently broken anyway), 2 packages where the latest upstream versions support Qt 6, 2 packages where upstream has abandoned Qt altogether, 3 packages abandoned upstream, and 1 browser that is an acute hazard to use for anything (but that is migrating to Qt 6 anyway). The reason we marked Qt 5 WebEngine vulnerable rather than removing it outright was because it affected the stable release, and to to give time for some widely‐used packages that weren’t exposing it to untrusted web content time to migrate (e.g. Jellyfin); I’d say that has now happened. I haven’t assessed the remaining 34 packages in depth, of course, but I think this is more than sufficient effort to support my assumption that the vast majority of packages that will ever migrate off Qt 5 WebEngine have already done so, and the burden of proof is to demonstrate that holding off for another release cycle would make a difference.
The Qt/KDE maintainers no longer wish to maintain Qt 5 in general and plan to drop it, so everything that uses Qt 5 WebEngine is already going to break at some point soon by default, and triaging bug reports and fix PRs takes up time from their other work in the interim. It’s also been the consistent policy of the security team and release managers in my experience that packages marked as vulnerable are pending removal, absent remediation of upstream or downstream security issues, once load-bearing users have been dealt with, and it’s a documented part of the release process to remove EOL packages that won’t be supported for the life of the release where possible. I’m not saying people should run their entire systems on old Nixpkgs, of course – I’m talking about mixing in packages that require Qt 5 WebEngine from an older version after it’s removed. As you said, I certainly wouldn’t recommend it; nobody should be using anything depending on Qt 5 WebEngine at all unless they absolutely cannot avoid it and know that their specific use case mitigates the risk in some way. But even the oldest, most unmaintainable piece of broken software may have some use to someone; being able to access historical packages like that where relevant is a big strength of Nix. The usual reason that you’re better off overriding a vulnerability warning on the current version rather than getting software from an older one is getting fixes for other parts of the dependency tree, but in this case we’re talking about a browser engine that has a year’s worth of unfixed vulnerabilities, including the kind that are actively exploited in the wild by zero days; that’s as bad as it can get already, so there’s no sense worrying about the rest of the dependency tree. |
|
Draft for qt5 webengine drop is up at #480196 Will need a bunch more work (basically fixing all eval errors, either by dropping or updating or disabling features, but an end is in sight. |
Lomiri is currently being ported to Qt6 upstream. I'm on the team that works on Qt6 porting, but I'm veeeeeeeeeeeeeery low on spoons rn, for toooooooo many reasons... I think Qt6 Morph already works on Debian though. I have a draft PR that enables building parts of the DE for Qt6, including Morph Browser, but Morph segfaults while loading its main QML file, and I haven't found the energy to dig into that yet... #467662 (comment) |
|
Ok, so good reasons for gettting rid of (qt5) qtwebengine, but can we please fix nixpkgs right now by merging this PR? The way I think a project should be managed is to minimize breakage for people, and if breakage is introduced, fix it ASAP. |
|
+1. I had to pull this patch in because it was blocking me from updating. (I use |

No longer receiving fixes, and known-insecure.
Closes #475938
I noticed that changes to
stdenvweren't actually reaching into the build cus of the wholeqtModulething, so I'm not sure if the existingllvmPackages_19.stdenvchange actually ever did anything… Should do something now, I guess?AFAIU, there is a desire to not keep
qt5around for too much longer, so this temporary-permanent pin should hopefully not be an issue…Things done
passthru.tests.nixpkgs-reviewon this PR. See nixpkgs-review usage../result/bin/.Add a 👍 reaction to pull requests you find important.