From c98eb89ffe7416e525ba74810644eac5f6e88f44 Mon Sep 17 00:00:00 2001 From: midchildan Date: Sat, 13 Jan 2024 03:02:40 +0900 Subject: [PATCH 1/3] qt6.qtwebengine: use system ICU only on Linux --- pkgs/development/libraries/qt-6/modules/qtwebengine.nix | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/pkgs/development/libraries/qt-6/modules/qtwebengine.nix b/pkgs/development/libraries/qt-6/modules/qtwebengine.nix index affb512a22f2..df23e103f1da 100644 --- a/pkgs/development/libraries/qt-6/modules/qtwebengine.nix +++ b/pkgs/development/libraries/qt-6/modules/qtwebengine.nix @@ -185,7 +185,6 @@ qtModule { "-DQT_FEATURE_pdf_xfa_gif=ON" "-DQT_FEATURE_pdf_xfa_png=ON" "-DQT_FEATURE_pdf_xfa_tiff=ON" - "-DQT_FEATURE_webengine_system_icu=ON" "-DQT_FEATURE_webengine_system_libevent=ON" "-DQT_FEATURE_webengine_system_libxml=ON" "-DQT_FEATURE_webengine_system_ffmpeg=ON" @@ -195,6 +194,10 @@ qtModule { "-DQT_FEATURE_webengine_kerberos=ON" ] ++ lib.optionals stdenv.isLinux [ "-DQT_FEATURE_webengine_webrtc_pipewire=ON" + + # Appears not to work on some platforms + # https://github.com/Homebrew/homebrew-core/issues/104008 + "-DQT_FEATURE_webengine_system_icu=ON" ] ++ lib.optionals enableProprietaryCodecs [ "-DQT_FEATURE_webengine_proprietary_codecs=ON" ] ++ lib.optionals stdenv.isDarwin [ From e964964297ea89a0e438073d395276b31f80a46a Mon Sep 17 00:00:00 2001 From: Weijia Wang <9713184+wegank@users.noreply.github.com> Date: Sat, 20 Jan 2024 04:01:29 +0100 Subject: [PATCH 2/3] qt6.qtwebengine: fix build on darwin --- .../libraries/qt-6/modules/qtwebengine.nix | 7 ++++--- .../qt-6/patches/qtwebengine-libxml-2.12.patch | 15 +++++++++++---- 2 files changed, 15 insertions(+), 7 deletions(-) diff --git a/pkgs/development/libraries/qt-6/modules/qtwebengine.nix b/pkgs/development/libraries/qt-6/modules/qtwebengine.nix index df23e103f1da..bed95312e7e0 100644 --- a/pkgs/development/libraries/qt-6/modules/qtwebengine.nix +++ b/pkgs/development/libraries/qt-6/modules/qtwebengine.nix @@ -186,13 +186,13 @@ qtModule { "-DQT_FEATURE_pdf_xfa_png=ON" "-DQT_FEATURE_pdf_xfa_tiff=ON" "-DQT_FEATURE_webengine_system_libevent=ON" - "-DQT_FEATURE_webengine_system_libxml=ON" "-DQT_FEATURE_webengine_system_ffmpeg=ON" # android only. https://bugreports.qt.io/browse/QTBUG-100293 # "-DQT_FEATURE_webengine_native_spellchecker=ON" "-DQT_FEATURE_webengine_sanitizer=ON" "-DQT_FEATURE_webengine_kerberos=ON" ] ++ lib.optionals stdenv.isLinux [ + "-DQT_FEATURE_webengine_system_libxml=ON" "-DQT_FEATURE_webengine_webrtc_pipewire=ON" # Appears not to work on some platforms @@ -225,11 +225,9 @@ qtModule { # Text rendering harfbuzz - icu openssl glib - libxml2 libxslt lcms2 @@ -244,6 +242,9 @@ qtModule { protobuf jsoncpp + icu + libxml2 + # Audio formats alsa-lib pulseaudio diff --git a/pkgs/development/libraries/qt-6/patches/qtwebengine-libxml-2.12.patch b/pkgs/development/libraries/qt-6/patches/qtwebengine-libxml-2.12.patch index 1fc7d837f8f3..3c3d59b488da 100644 --- a/pkgs/development/libraries/qt-6/patches/qtwebengine-libxml-2.12.patch +++ b/pkgs/development/libraries/qt-6/patches/qtwebengine-libxml-2.12.patch @@ -1,22 +1,29 @@ --- a/src/3rdparty/chromium/third_party/blink/renderer/core/xml/xslt_processor.h +++ b/src/3rdparty/chromium/third_party/blink/renderer/core/xml/xslt_processor.h -@@ -77,7 +77,7 @@ class XSLTProcessor final : public ScriptWrappable { +@@ -77,7 +77,12 @@ class XSLTProcessor final : public ScriptWrappable { void reset(); -- static void ParseErrorFunc(void* user_data, xmlError*); ++#if LIBXML_VERSION >= 21200 + static void ParseErrorFunc(void* user_data, const xmlError*); ++#else + static void ParseErrorFunc(void* user_data, xmlError*); ++#endif ++ static void GenericErrorFunc(void* user_data, const char* msg, ...); // Only for libXSLT callbacks --- a/src/3rdparty/chromium/third_party/blink/renderer/core/xml/xslt_processor_libxslt.cc +++ b/src/3rdparty/chromium/third_party/blink/renderer/core/xml/xslt_processor_libxslt.cc -@@ -66,7 +66,7 @@ void XSLTProcessor::GenericErrorFunc(void*, const char*, ...) { +@@ -66,7 +66,11 @@ void XSLTProcessor::GenericErrorFunc(void*, const char*, ...) { // It would be nice to do something with this error message. } --void XSLTProcessor::ParseErrorFunc(void* user_data, xmlError* error) { ++#if LIBXML_VERSION >= 21200 +void XSLTProcessor::ParseErrorFunc(void* user_data, const xmlError* error) { ++#else + void XSLTProcessor::ParseErrorFunc(void* user_data, xmlError* error) { ++#endif FrameConsole* console = static_cast(user_data); if (!console) return; From 90cae4d942269df2d9a5909e7a2f9bb7179926f2 Mon Sep 17 00:00:00 2001 From: Weijia Wang <9713184+wegank@users.noreply.github.com> Date: Sat, 20 Jan 2024 19:44:52 +0100 Subject: [PATCH 3/3] qt6.qtwebengine: force signing darwin binaires --- pkgs/development/libraries/qt-6/default.nix | 2 +- pkgs/development/libraries/qt-6/modules/qtwebengine.nix | 2 ++ 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/pkgs/development/libraries/qt-6/default.nix b/pkgs/development/libraries/qt-6/default.nix index 2610c8463b2e..a1d597adcd1d 100644 --- a/pkgs/development/libraries/qt-6/default.nix +++ b/pkgs/development/libraries/qt-6/default.nix @@ -164,7 +164,7 @@ let qtwayland = callPackage ./modules/qtwayland.nix { }; qtwebchannel = callPackage ./modules/qtwebchannel.nix { }; qtwebengine = callPackage ./modules/qtwebengine.nix { - inherit (darwin) bootstrap_cmds cctools xnu; + inherit (darwin) autoSignDarwinBinariesHook bootstrap_cmds cctools xnu; inherit (darwin.apple_sdk_11_0) libpm libunwind; inherit (darwin.apple_sdk_11_0.libs) sandbox; inherit (darwin.apple_sdk_11_0.frameworks) diff --git a/pkgs/development/libraries/qt-6/modules/qtwebengine.nix b/pkgs/development/libraries/qt-6/modules/qtwebengine.nix index bed95312e7e0..8b9542511b72 100644 --- a/pkgs/development/libraries/qt-6/modules/qtwebengine.nix +++ b/pkgs/development/libraries/qt-6/modules/qtwebengine.nix @@ -60,6 +60,7 @@ , mesa , enableProprietaryCodecs ? true # darwin +, autoSignDarwinBinariesHook , bootstrap_cmds , cctools , xcbuild @@ -105,6 +106,7 @@ qtModule { gn nodejs ] ++ lib.optionals stdenv.isDarwin [ + autoSignDarwinBinariesHook bootstrap_cmds cctools xcbuild