Conversation
(on x86_64-darwin) |
036eebe to
9db2588
Compare
|
qt5.qtbase evals now for me but won't build: |
9db2588 to
441be86
Compare
|
Progress: it now fails in identical ways on x86_64-darwin and aarch64-darwin, which means we should be good on the SDK upgrade. The bad news is, it fails because qkvgen segfaults, and I have no idea where to even start debugging it. |
|
And I suppose it's not easy to avoid the cleaning and just fix the build? (which regressed on darwin on the qt5 patch update) |
441be86 to
4c61147
Compare
|
We'd have to rebase all the Darwin patches again, and I really don't want to do that tbh. Upstream is expecting at least 10.13, we can't just keep patching things out forever. |
4c61147 to
ec880a3
Compare
ec880a3 to
91e6327
Compare
0e49bcc to
a7a7009
Compare
|
Let's exercise ofBorg at least a bit: |
|
Current status:
|
|
I cherry-picked your three commits and the qt5: 5.15.7 -> 5.15.8 update commit onto master so that I don't have to rebuild 500 package to build qtbase. However on my aarch64-darwin machine I always run into the following issue: WARNING: Failure to find: /private/tmp/nix-build-qtbase-5.15.8.drv-3/qtbase-9cf586d/src/gui/qt5gui_metatypes.json
make[2]: Entering directory '/private/tmp/nix-build-qtbase-5.15.8.drv-3/qtbase-9cf586d/src/gui'
/private/tmp/nix-build-qtbase-5.15.8.drv-3/qtbase-9cf586d/src/gui/qvkgen_wrapper.sh vulkan/vk.xml /private/tmp/nix-build-qtbase-5.15.8.drv-3/qtbase-9cf586d/header.LGPL vulkan/qvulkanfunctions
make[2]: *** [Makefile:2749: vulkan/qvulkanfunctions.h] Segmentation fault: 11
make[2]: *** Deleting file 'vulkan/qvulkanfunctions.h'
make[2]: Leaving directory '/private/tmp/nix-build-qtbase-5.15.8.drv-3/qtbase-9cf586d/src/gui'
make[1]: *** [Makefile:533: sub-gui-make_first] Error 2
make[1]: Leaving directory '/private/tmp/nix-build-qtbase-5.15.8.drv-3/qtbase-9cf586d/src'
make: *** [Makefile:54: sub-src-make_first] Error 2
note: keeping build directory '/private/tmp/nix-build-qtbase-5.15.8.drv-3'
error: builder for '/nix/store/s124k9ap6zsvyb98hbfh8d6d71g5mh5c-qtbase-5.15.8.drv' failed with exit code 2;
last 10 log lines:
> cd gui/ && ( test -e Makefile || /private/tmp/nix-build-qtbase-5.15.8.drv-3/qtbase-9cf586d/bin/qmake -o Makefile /private/tmp/nix-build-qtbase-5.15.8.drv-3/qtbase-9cf586d/src/gui/gui.pro ) && make -f Makefile
> WARNING: Failure to find: /private/tmp/nix-build-qtbase-5.15.8.drv-3/qtbase-9cf586d/src/gui/qt5gui_metatypes.json
> make[2]: Entering directory '/private/tmp/nix-build-qtbase-5.15.8.drv-3/qtbase-9cf586d/src/gui'
> /private/tmp/nix-build-qtbase-5.15.8.drv-3/qtbase-9cf586d/src/gui/qvkgen_wrapper.sh vulkan/vk.xml /private/tmp/nix-build-qtbase-5.15.8.drv-3/qtbase-9cf586d/header.LGPL vulkan/qvulkanfunctions
> make[2]: *** [Makefile:2749: vulkan/qvulkanfunctions.h] Segmentation fault: 11
> make[2]: *** Deleting file 'vulkan/qvulkanfunctions.h'
> make[2]: Leaving directory '/private/tmp/nix-build-qtbase-5.15.8.drv-3/qtbase-9cf586d/src/gui'
> make[1]: *** [Makefile:533: sub-gui-make_first] Error 2
> make[1]: Leaving directory '/private/tmp/nix-build-qtbase-5.15.8.drv-3/qtbase-9cf586d/src'
> make: *** [Makefile:54: sub-src-make_first] Error 2
For full logs, run 'nix log /nix/store/s124k9ap6zsvyb98hbfh8d6d71g5mh5c-qtbase-5.15.8.drv'. |
|
Disable the sandbox. |
|
If you're building on native x86_64, that may make libepoxy work, and yes, that error looks like you'll need an SDK upgrade. |
|
I thought so too, but it doesn't appear to solve it 🤷 . I'm just working on the security bump #210742 so addressing it isn't my highest priority. |
I seem to have the same errors (with other package though) on GitHub builders when building my NUR packages for binary cache |
|
Try switching it to SDK 11? |
|
Isn't that what this PR does? I don't quite understand what should I do to switch otherwise as paths in the errors look like SDK 11 is already used. |
|
Those errors usually show up when you mix SDK versions, so maybe you're linking against SDK 10 frameworks or something. Got a link to the expression? Or is it just the default nixpkgs one? |
|
Never mind, got it |
|
Do I understand right that various Qt applications are broken on Darwin now? As the package I get errors for is also present in nixpkgs, so it should've been start failing in nixpkgs as well as you haven't changed it in your PR and I'm its maintainer. |
|
I've fixed everything I noticed during the staging cycle, but there have been some regressions unfortunately :( It specifically affects the applications that either don't use |
Is there other way to pass Darwin frameworks? |
|
You should be able to just take |
But it would need to specify sdk version anyway as the frameworks are in darwin.(apple_sdk|apple_sdk_11_0).frameworks, just inside the derivation? |
|
Sorry, |
And then libsForQt5.callPackage will give apple_sdk_11_0 instead? |
|
Yep. I believe it already does. |
|
That's interesting, but it seems only a few derivations in nixpkgs are doing like that and none of them are Qt derivations... |
|
Something seem to be wrong with SDK 11 as it throws at me errors about various system types and constants being not defined Isn't it possible to choose to stay on old SDK for a package? |
|
Qt upstream requires a newer SDK version now. We used to patch it to make it build with 10.12, but the recent Qt updates have raised the requirements again, and trying to backport stuff forever just isn't sustainable. |
|
nixpkgs honestly has a weird workflow with the SDKs, most projects use latest SDK with MACOSX_DEPLOYMENT_TARGET being set to the needed minimum supported macOS version. I wonder why it throws those errors at me thoguh, the code builds just fine outside of nixpkgs, using Xcode cmake generator and AppleClang. Is it possible to build using AppleClang within nixpkgs? |
|
I'm not really familiar with the details of Darwin stuff in nixpkgs, so I don't have the full full picture, but the reason we don't have the latest SDKs is because they're a pain to package in a way that works with the Nix sandbox. |
|
Do you know where I can find someone who familiar? As I'm out of ideas how to make it build now... |
|
Maybe try #macos:nixos.org on Matrix. I've linked this thread there too. |
|
🤔 I wonder how this worked with old SDK and how this works with Xcode-based build |
kotatogram-desktop: fix build on Darwin after #210062
Description of changes
Things done
sandbox = trueset innix.conf? (See Nix manual)nix-shell -p nixpkgs-review --run "nixpkgs-review rev HEAD". Note: all changes have to be committed, also see nixpkgs-review usage./result/bin/)nixos/doc/manual/md-to-db.shto update generated release notes