18 Oct 2024 |
K900 | Well nothing that would help you here | 09:33:01 |
emily | ok wonderful | 09:33:01 |
emily | this build is horrifying | 09:36:56 |
emily | Marcus: this is probably going to require some trial and error, but here's my first attempt:
diff --git a/pkgs/development/libraries/qt-6/modules/qtwebengine.nix b/pkgs/development/libraries/qt-6/modules/qtwebengine.nix
index c137bd5a1f..1c56916622 100644
--- a/pkgs/development/libraries/qt-6/modules/qtwebengine.nix
+++ b/pkgs/development/libraries/qt-6/modules/qtwebengine.nix
@@ -256,6 +256,10 @@
preConfigure = ''
export NINJAFLAGS="-j$NIX_BUILD_CORES"
+
+ cat >args.gn <<EOF
+ metal_internal_shader_compilation_supported=false
+ EOF
'';
meta = with lib; {
| 09:41:44 |
K900 | Don't we have args.gn somewhere already | 09:44:26 |
K900 | Idk | 09:44:27 |
K900 | Maybe it was in Chromium | 09:44:31 |
K900 | Speaking of Chromium | 09:44:36 |
K900 | Maybe I should go summon the other Emily | 09:44:49 |
emily | the problem is that there's a layer of Qt CMake wrapping the Chromium build | 09:45:34 |
emily | if it was just Chromium I think I could figure it out | 09:45:39 |
emily | Marcus: fwiw if the build fails with that patch there's like 3 things we can try instead. just a matter of figuring out how to pipe the setting through 3 layers of build | 10:11:10 |
Marcus | In reply to @emilazy:matrix.org
Marcus: this is probably going to require some trial and error, but here's my first attempt:
diff --git a/pkgs/development/libraries/qt-6/modules/qtwebengine.nix b/pkgs/development/libraries/qt-6/modules/qtwebengine.nix
index c137bd5a1f..1c56916622 100644
--- a/pkgs/development/libraries/qt-6/modules/qtwebengine.nix
+++ b/pkgs/development/libraries/qt-6/modules/qtwebengine.nix
@@ -256,6 +256,10 @@
preConfigure = ''
export NINJAFLAGS="-j$NIX_BUILD_CORES"
+
+ cat >args.gn <<EOF
+ metal_internal_shader_compilation_supported=false
+ EOF
'';
meta = with lib; {
I switched my devenv over from staging to staging-next to build more of it before going to lunch. Will try your patch once I get to the failure point again. | 10:11:33 |
Randy Eckenrode | In reply to @emilazy:matrix.org also, this isn't very urgent because Qt 6 WebEngine was already broken on Darwin previously I fixed it for Qt 6 and the rework, but upstream broke it again before it could even make it through staging-next to master. 😠| 10:39:44 |
emily | tbf they broke it by doing something entirely reasonable 😅 | 10:43:56 |
emily | and have an option to turn it off | 10:44:01 |
Marcus | In reply to @emilazy:matrix.org Marcus: fwiw if the build fails with that patch there's like 3 things we can try instead. just a matter of figuring out how to pipe the setting through 3 layers of build Fails with the same error. | 12:33:52 |
emily | ok, I can come up with a more invasive patch that should hopefully confirm whether the basic approach is sound before trying to refine it | 12:34:25 |
emily | try this
diff --git a/pkgs/development/libraries/qt-6/modules/qtwebengine.nix b/pkgs/development/libraries/qt-6/modules/qtwebengine.nix
index c137bd5a1f..c5f2a254dd 100644
--- a/pkgs/development/libraries/qt-6/modules/qtwebengine.nix
+++ b/pkgs/development/libraries/qt-6/modules/qtwebengine.nix
@@ -143,6 +143,8 @@
--replace "AppleClang" "Clang"
substituteInPlace cmake/Functions.cmake \
--replace "/usr/bin/xcrun" "${xcbuild}/bin/xcrun"
+ substituteInPlace src/3rdparty/chromium/third_party/angle/src/libANGLE/renderer/metal/metal_backend.gni \
+ --replace-fail 'angle_has_build && !(is_ios && target_environment == "simulator")' 'false'
'';
cmakeFlags = [
| 12:36:01 |
Marcus | In reply to @emilazy:matrix.org
try this
diff --git a/pkgs/development/libraries/qt-6/modules/qtwebengine.nix b/pkgs/development/libraries/qt-6/modules/qtwebengine.nix
index c137bd5a1f..c5f2a254dd 100644
--- a/pkgs/development/libraries/qt-6/modules/qtwebengine.nix
+++ b/pkgs/development/libraries/qt-6/modules/qtwebengine.nix
@@ -143,6 +143,8 @@
--replace "AppleClang" "Clang"
substituteInPlace cmake/Functions.cmake \
--replace "/usr/bin/xcrun" "${xcbuild}/bin/xcrun"
+ substituteInPlace src/3rdparty/chromium/third_party/angle/src/libANGLE/renderer/metal/metal_backend.gni \
+ --replace-fail 'angle_has_build && !(is_ios && target_environment == "simulator")' 'false'
'';
cmakeFlags = [
> ./media/PRESUBMIT_test.py: interpreter directive changed from "#!/usr/bin/env python" to "/nix/store/sgmh5fy4b2idsmy788cz747mjam4vrcp-python3-3.12.7-env/bin/python"
> substituteStream() in derivation qtwebengine-6.8.0: WARNING: '--replace' is deprecated, use --replace-{fail,warn,quiet}. (file 'cmake/Functions.cmake')
> substituteStream() in derivation qtwebengine-6.8.0: WARNING: pattern QLibraryInfo::path\(QLibraryInfo::TranslationsPath\) doesn't match anything in file 'src/core/web_engine_library_info.cpp'
> substituteStream() in derivation qtwebengine-6.8.0: ERROR: pattern angle_has_build\ \&\&\ \!\(is_ios\ \&\&\ target_environment\ ==\ \"simulator\"\) doesn't match anything in file 'src/3rdparty/chromium/third_party/angle/src/libANGLE/renderer/metal/metal_backend.gni'
| 12:40:32 |
emily | okay, I ned to actually see what version it's at 😅 | 12:40:49 |
emily | we might have to backport a patch | 12:40:51 |
Marcus | would getting the full build logs tell you? | 12:42:15 |
emily | nah, I'm just cloning the Git repo | 12:42:56 |
emily | oh oops | 12:58:18 |
emily | Marcus: use 'angle_has_build && !is_ios && target_os == host_os' for the string to replace instead | 12:58:31 |
emily | I copied from the wrong revision | 12:58:34 |
hexa | In reply to @emilazy:matrix.org hexa: was it intentional to upgrade to the Sphinx we had issues with in python-updates ? I regularly forget which of the 500+ packages in python-updates had regressions and which didn't | 13:03:37 |
emily | understandable | 13:03:49 |
emily | just wanted to check if it was meant to be solved | 13:03:54 |