-
-
Notifications
You must be signed in to change notification settings - Fork 14.2k
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
pythonPackages: use latest qt version instead of 5.14 #99956
Conversation
It's important here that we build and test at least some Python+Qt applications. |
I have a question regarding qutebrowser. Why isn't like this: diff --git i/pkgs/top-level/all-packages.nix w/pkgs/top-level/all-packages.nix
index c13b60c5d80..73300080f66 100644
--- i/pkgs/top-level/all-packages.nix
+++ w/pkgs/top-level/all-packages.nix
@@ -22990,7 +22990,8 @@ in
pkgs_ = pkgs.extend(_: prev: {
pythonInterpreters = prev.pythonInterpreters.override(oldAttrs: {
pkgs = oldAttrs.pkgs.extend(_: _: {
- inherit (pkgs) qt5 libsForQt514;
+ qt5 = qt514;
+ libsForQt5 = libsForQt514;
});
});
}); |
There are two parts:
|
According to qutebrowser latest release notes, qt5.15 is supported. I'm confused now - #97586 tried to make it use qt5.15, why won't it use 5.15 now? |
There are many In any case, If it'll turn out that we can't switch to |
I suppose one could do mypackage = (pkgs.extend(final: prev: {
qt5 = prev.qt514;
libsForQt5 = prev.libsForQt514;
})).libsForQt5.callPackage ... { }; which I think is cleanest. This probably takes more effort to evaluate though and thus probably should be avoided. |
maestral-gui is fixed by this PR. |
@SFrijters it's a bit surprising to hear. It seems to me that we should have included the changes in #99589 here, or at least it should be safer to do so. |
Kile was not affected by this issue, since it does not use pyqt5. So it is unrelated. |
Kile is no python package, so outside the scope of this issue.
In Principle, the problem is the same as the former python problem: `kdeApplications` and `kdeFrameworks` use qt514 (see their definitions in `pkgs/top-level/all-packages.nix`) and thus any package using `qt5` == `qt515` and `kdeFrameworks` have inconsistent qt5 versions in their scope.
Kile can simply be fixed by using `libsForQt514.callPackage` instead of `libsForQt5.callPackage`, or by updating kde to use qt 5.15 as well, analogously to this issue.
|
The problem with nixpkgs/pkgs/top-level/all-packages.nix Lines 21560 to 21569 in 62e6142
That's why @piegamesde you should open an issue similar to #99937 but refer to Working on this PR took me and @FRidh a full day, I hope it won't take you as long. Good luck. |
Specifically for kile, I'd also do this: diff --git i/pkgs/applications/editors/kile/default.nix w/pkgs/applications/editors/kile/default.nix
index f928dbb6ad1..cebd59c98b9 100644
--- i/pkgs/applications/editors/kile/default.nix
+++ w/pkgs/applications/editors/kile/default.nix
@@ -30,14 +30,17 @@ mkDerivation rec {
};
- nativeBuildInputs = [ extra-cmake-modules wrapGAppsHook ];
+ nativeBuildInputs = [
+ extra-cmake-modules
+ wrapGAppsHook
+ kdoctools
+ ];
- propagatedBuildInputs = [
+ buildInputs = [
kconfig
kcrash
kdbusaddons
kdelibs4support
- kdoctools
kguiaddons
kiconthemes
kinit
@@ -49,6 +52,10 @@ mkDerivation rec {
poppler
qtscript
];
+ dontWrapGApps = true;
+ preFixup = ''
+ makeWrapperArgs+=("''${gappsWrapperArgs[@]}")
+ '';
propagatedUserEnvPkgs = [ konsole ];
FYI, |
I agree. |
Working now on cherry-picking this to 20.09 #100428 |
Remove included upstream patches. Use qt5.15 (NixOS#99956). Spare double wrapping by using `makeWrapperArgs+=()`. (cherry picked from commit 2edd4ed)
The same as used by pyqt5 (NixOS#99956). Also: Fix double wrapping. (cherry picked from commit bc0113e)
Don't mix qt5.14 and pyqt5 which uses qt5.15 (NixOS#99956). (cherry picked from commit 16c2b3c)
Bonus: Spare double wrapping. (cherry picked from commit 3d8267e)
(NixOS#99956). (cherry picked from commit 244ef6c)
(cherry picked from commit 2aff7cf)
(cherry picked from commit 32a362b)
(cherry picked from commit aa20203)
(cherry picked from commit 36caf7e)
(cherry picked from commit dfec61e)
(cherry picked from commit a9a2cc9)
(cherry picked from commit 8b8febd)
(cherry picked from commit 0cbd755)
(cherry picked from commit 38d517f)
(cherry picked from commit 1fa7655)
(cherry picked from commit 179986f)
Please stop using |
Interesting metric. We should be able to get rid of it in #104474 . |
Motivation for this change
In 3cbcc14 the Qt version used in Python packages was pinned to 5.14. This was done because certain applications were not compatible. In principle, we should try to have the same Qt version in the Python packages set as in the top-level set, and override applications in case they're not compatible.
There were some problems with how the pinning to 5.14 was done, which eventually led to #98197.
This PR now unpins the Qt version. Applications are going to need some fixing, as is done for Qutebrowser in #98197.
This fixes #99937 + fixes #99982 + fixes #99951 .
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)Packages
Just to note anyone wishing to help, these are the affected packages, filtered from ofborg's eval:
libsForQt5.callPackage
(instead oflibsForQt514.callPackage
) - not sure if this needs to be committed, considering 22167ae .libsForQt5.callPackage
(instead oflibsForQt514.callPackage
) - not sure if this needs to be committed, considering 22167ae .qt.qpa.plugin: Could not load the Qt platform plugin "xcb" in "" even though it was found.
)qt.qpa.plugin: Could not load the Qt platform plugin "xcb" in "" even though it was found.
, old version, probably best removed)error: no matching function for call to ‘QsciAPIs::QsciAPIs()’
)