diff options
Diffstat (limited to 'nixpkgs/pkgs/applications/networking/browsers/chromium')
4 files changed, 83 insertions, 15 deletions
diff --git a/nixpkgs/pkgs/applications/networking/browsers/chromium/browser.nix b/nixpkgs/pkgs/applications/networking/browsers/chromium/browser.nix index ec69f3d233f4..edbf97e89633 100644 --- a/nixpkgs/pkgs/applications/networking/browsers/chromium/browser.nix +++ b/nixpkgs/pkgs/applications/networking/browsers/chromium/browser.nix @@ -18,6 +18,16 @@ mkChromiumDerivation (base: rec { cp -vLR "$buildPath/locales" "$buildPath/resources" "$libExecPath/" cp -v "$buildPath/chrome" "$libExecPath/$packageName" + # Swiftshader + # See https://stackoverflow.com/a/4264351/263061 for the find invocation. + if [ -n "$(find "$buildPath/swiftshader/" -maxdepth 1 -name '*.so' -print -quit)" ]; then + echo "Swiftshader files found; installing" + mkdir -p "$libExecPath/swiftshader" + cp -v "$buildPath/swiftshader/"*.so "$libExecPath/swiftshader/" + else + echo "Swiftshader files not found" + fi + mkdir -p "$sandbox/bin" cp -v "$buildPath/chrome_sandbox" "$sandbox/bin/${sandboxExecutableName}" diff --git a/nixpkgs/pkgs/applications/networking/browsers/chromium/common.nix b/nixpkgs/pkgs/applications/networking/browsers/chromium/common.nix index 255b399ef3da..83c492e1e651 100644 --- a/nixpkgs/pkgs/applications/networking/browsers/chromium/common.nix +++ b/nixpkgs/pkgs/applications/networking/browsers/chromium/common.nix @@ -7,7 +7,7 @@ , xdg_utils, yasm, minizip, libwebp , libusb1, pciutils, nss, re2, zlib -, python2Packages, perl, pkgconfig, clang-tools +, python2Packages, perl, pkgconfig , nspr, systemd, kerberos , utillinux, alsaLib , bison, gperf @@ -104,8 +104,6 @@ let result else result; - llvm-clang-tools = clang-tools.override { inherit llvmPackages; }; - base = rec { name = "${packageName}-unwrapped-${version}"; inherit (upstream-info) channel version; @@ -139,6 +137,8 @@ let ./patches/no-build-timestamps.patch ./patches/widevine-79.patch ./patches/dont-use-ANGLE-by-default.patch + # fix race condition in the interaction with pulseaudio + ./patches/webrtc-pulse.patch # Unfortunately, chromium regularly breaks on major updates and # then needs various patches backported in order to be compiled with GCC. # Good sources for such patches and other hints: @@ -216,8 +216,6 @@ let ln -s ${stdenv.cc}/bin/clang third_party/llvm-build/Release+Asserts/bin/clang ln -s ${stdenv.cc}/bin/clang++ third_party/llvm-build/Release+Asserts/bin/clang++ ln -s ${llvmPackages.llvm}/bin/llvm-ar third_party/llvm-build/Release+Asserts/bin/llvm-ar - '' + optionalString (stdenv.lib.versionAtLeast version "82") '' - ln -s ${llvm-clang-tools}/bin/clang-format buildtools/linux64/clang-format ''; gnFlags = mkGnFlags ({ @@ -244,7 +242,6 @@ let is_clang = stdenv.cc.isClang; clang_use_chrome_plugins = false; blink_symbol_level = 0; - enable_swiftshader = false; fieldtrial_testing_like_official_build = true; # Google API keys, see: diff --git a/nixpkgs/pkgs/applications/networking/browsers/chromium/patches/webrtc-pulse.patch b/nixpkgs/pkgs/applications/networking/browsers/chromium/patches/webrtc-pulse.patch new file mode 100644 index 000000000000..cf24e2704191 --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/browsers/chromium/patches/webrtc-pulse.patch @@ -0,0 +1,61 @@ +From 704dc99bd05a94eb61202e6127df94ddfd571e85 Mon Sep 17 00:00:00 2001 +From: Dale Curtis <dalecurtis@chromium.org> +Date: Mon, 02 Mar 2020 22:12:22 +0000 +Subject: [PATCH] Hold PulseAudio mainloop lock while querying input device info. + +a22cc23955cb3d58b7525c5103314226b3ce0137 moved this section out of +UpdateNativeAudioHardwareInfo(), but forgot to bring the lock along. + +R=guidou + +Bug: 1043040 +Change-Id: I5b17a2cf0ad55d61c0811db1dae7045af4a91370 +Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/2083814 +Commit-Queue: Dale Curtis <dalecurtis@chromium.org> +Commit-Queue: Guido Urdaneta <guidou@chromium.org> +Reviewed-by: Guido Urdaneta <guidou@chromium.org> +Auto-Submit: Dale Curtis <dalecurtis@chromium.org> +Cr-Commit-Position: refs/heads/master@{#746115} +--- + +diff --git a/media/audio/pulse/audio_manager_pulse.cc b/media/audio/pulse/audio_manager_pulse.cc +index 90e9317..829846f 100644 +--- a/media/audio/pulse/audio_manager_pulse.cc ++++ b/media/audio/pulse/audio_manager_pulse.cc +@@ -104,22 +104,27 @@ + + AudioParameters AudioManagerPulse::GetInputStreamParameters( + const std::string& device_id) { +- int user_buffer_size = GetUserBufferSize(); +- int buffer_size = +- user_buffer_size ? user_buffer_size : kDefaultInputBufferSize; +- + UpdateNativeAudioHardwareInfo(); +- auto* operation = pa_context_get_source_info_by_name( +- input_context_, default_source_name_.c_str(), DefaultSourceInfoCallback, +- this); +- WaitForOperationCompletion(input_mainloop_, operation, input_context_); ++ ++ { ++ AutoPulseLock auto_lock(input_mainloop_); ++ auto* operation = pa_context_get_source_info_by_name( ++ input_context_, default_source_name_.c_str(), DefaultSourceInfoCallback, ++ this); ++ WaitForOperationCompletion(input_mainloop_, operation, input_context_); ++ } + + // We don't want to accidentally open a monitor device, so return invalid +- // parameters for those. ++ // parameters for those. Note: The value of |default_source_is_monitor_| ++ // depends on the the call to pa_context_get_source_info_by_name() above. + if (device_id == AudioDeviceDescription::kDefaultDeviceId && + default_source_is_monitor_) { + return AudioParameters(); + } ++ ++ const int user_buffer_size = GetUserBufferSize(); ++ const int buffer_size = ++ user_buffer_size ? user_buffer_size : kDefaultInputBufferSize; + return AudioParameters(AudioParameters::AUDIO_PCM_LOW_LATENCY, + CHANNEL_LAYOUT_STEREO, + native_input_sample_rate_ ? native_input_sample_rate_ diff --git a/nixpkgs/pkgs/applications/networking/browsers/chromium/upstream-info.nix b/nixpkgs/pkgs/applications/networking/browsers/chromium/upstream-info.nix index a58131ce0e0d..0e939f2fd219 100644 --- a/nixpkgs/pkgs/applications/networking/browsers/chromium/upstream-info.nix +++ b/nixpkgs/pkgs/applications/networking/browsers/chromium/upstream-info.nix @@ -1,18 +1,18 @@ # This file is autogenerated from update.sh in the same directory. { beta = { - sha256 = "1yam7lg38dbpvmva7pc3bw3npvgi3d1v6im8ld4z92gjgniwsjh2"; - sha256bin64 = "0vsly218wv9x2nv5i82slz8pmb0hmdcl1z2mlhf2j5adnsxn9c5z"; - version = "81.0.4044.34"; + sha256 = "177hv5jkgpcbi6khk7j883rf3rzzkjmi8cqqpzckaiw7pcwsvyvd"; + sha256bin64 = "0sicz51d2l3gj70mfpyh5idwarjl19pba5lc6ahznxxqsrjfp80r"; + version = "81.0.4044.69"; }; dev = { - sha256 = "0pxvwjvkajlidk5m7jiqk69mxnxg3h56dr7vpi916r51w17pds0l"; - sha256bin64 = "1jdyp0f2ig4251155db3m7lzd4jlmczcjqqnvdj5nwl2bn3ykc3s"; - version = "82.0.4068.4"; + sha256 = "0s0072rmg287iijh6wwm9i5a5fsh96qm6nhd13xwbxrvj6pldb7n"; + sha256bin64 = "0l5ljjz0s5x9727syq4gs5xshl9vs8apvw6xw8il0xy5qax32g85"; + version = "82.0.4083.0"; }; stable = { - sha256 = "00f2hpi2d0n15yw29dv3dli566cgi7qh55bfpziag9a6j02i401c"; - sha256bin64 = "00xhacrs74ks3nrpsnnbqm5vk0r9ydyxrq5ifajzviqqyk2n24b8"; - version = "80.0.3987.132"; + sha256 = "07icl3hgg1wjkmz88lbpjf6ll4xyi64spki1nmsy6899jgkxvgjh"; + sha256bin64 = "0qgp6hv4qj04v6pzfx9ggjvcl1vi6ljjc3cpi4hfr67p4jab40ji"; + version = "80.0.3987.149"; }; } |