qt6.qtbase: fix build on Darwin by preferring frameworks#455458
qt6.qtbase: fix build on Darwin by preferring frameworks#455458K900 merged 1 commit intoNixOS:masterfrom
Conversation
|
I suspect this may need to go to |
|
Can we not just put this in cmakeFlags? |
If I understand correctly (not a guarantee when it comes to CMake), that's slightly different behavior because in this patch (and the upstream patch) setting That's not a no, and I'm running a build right now to check whether qtbase builds with the additional cmakeFlag, but there may be a reason to prefer the patch even if that is the case. |
|
Yep, adding |
This was introduced in NixOS#37015, before the migration of Apple SDK frameworks to be included by default. More specifically, it breaks anything looking for `Network.framework` (such as qtbase 6.10) because it will prefer `libnetwork.tbd` over the framework. Fixes NixOS#455059. Supersedes NixOS#455458.
277a6a3 to
1e82334
Compare
Prince213
left a comment
There was a problem hiding this comment.
Let's merge this to re-enable builds. Not sure about if master is good though, maybe staging-next?
1e82334 to
5b15f92
Compare
|
Tested on aarch64-darwin which fixes all qt GUI packages on my darwin profile. Please consider fast-tracking this as it may fix up to 371 darwin packages according to CI results (and it is now conditioned such that it will not introduce any linux rebuilds). Also since the number of rebuilds appears to be moderate(?) would it be possible to target master instead? Friendly ping @K900 and @NickCao for comments and review! |
|
Just a precaution to target staging-next. If you consider the rebuilds to be what should have been parts of #449572, then it's actually 0 rebuilds. |
|
Happy to retarget this to |
|
The way we should do this is: merge this to master, then immediately revert on staging. |
This essentially applies NixOS#455592 to qtbase (and thus all packages depending on Qt on Darwin) without rebuilding the world. We're doing this so that Qt-based applications will be fixed faster than the time it takes to wait for a staging cycle.
5b15f92 to
dd9fbf6
Compare
qtbasewas unable to findNetwork.framework(instead findinglibnetwork.tbd), which meant it failed to build on Darwin.Looks like the upgrade to qt 6.10 was the first time that
Network.frameworkwas used, in commit qt/qtbase@1299aaa.This is a problem that we only encounter because our CMake setup hook sets
CMAKE_FIND_FRAMEWORK=LAST. This appears to be a holdover from before our Darwin SDK packaging was updated. It's been removed on staging (#455592), but that will take a while to percolate, so this PR fixes it for qtbase specifically (while avoiding a world-rebuild).Fixes #455059 (when combined with #455455).
Things done
passthru.tests.nixpkgs-reviewon this PR. See nixpkgs-review usage../result/bin/.Add a 👍 reaction to pull requests you find important.