qtwebengine: link to pulseaudio

Nix builds of QTWebEngine doesn't support sound output via Pulse, only
through ALSA, unless sandboxing is disabled and LD_LIBRARY_PATH
contains a reference to the Pulse libraries.

By default, Chromium won't link to PulseAudio, but dlopens it in
run-time. It is tricky to make this work because of the nontrivial
sandbox configuration. Nix builds of Chromium already link against
Pulse directly, so it makes sense to copy this behavior in
QTWebEngine.
This commit is contained in:
László Vaskó
2023-08-14 19:33:19 +02:00
parent 0c79d4f147
commit e4dcdb133a
4 changed files with 20 additions and 0 deletions
@@ -170,6 +170,7 @@ let
extraPrefix = "src/3rdparty/";
hash = "sha256-s4GsGMJTBNWw2gTJuIEP3tqT82AmTsR2mbj59m2p6rM=";
})
./qtwebengine-link-pulseaudio.patch
] ++ lib.optionals stdenv.isDarwin [
./qtwebengine-darwin-no-platform-check.patch
./qtwebengine-mac-dont-set-dsymutil-path.patch
@@ -0,0 +1,8 @@
--- a/src/core/config/common.pri
+++ b/src/core/config/common.pri
@@ -47,3 +47,5 @@
!qtConfig(webengine-nodejs10): gn_args += use_rollup=false
gn_args += enable_ipc_logging=false
+
+gn_args += link_pulseaudio=true
@@ -135,6 +135,7 @@ qtModule {
# environment variable, since NixOS relies on it working.
# See https://github.com/NixOS/nixpkgs/issues/226484 for more context.
../patches/qtwebengine-xkb-includes.patch
../patches/qtwebengine-link-pulseaudio.patch
];
postPatch = ''
@@ -0,0 +1,10 @@
--- a/src/core/CMakeLists.txt
+++ b/src/core/CMakeLists.txt
@@ -341,6 +341,7 @@
devtools_fast_bundle=false
devtools_skip_typecheck=false
enable_jxl_decoder=false # temporarily because libjxl causes internal compiler error on armv7
+ link_pulseaudio=true
)
extend_gn_list(gnArgArg