From a427b5add8a8abea05e055939efa952917790ee2 Mon Sep 17 00:00:00 2001 From: Duncaen Date: Wed, 25 May 2022 14:56:35 +0200 Subject: [PATCH] chromium: update to 102.0.5005.61. --- .../files/musl-patches/no-mallinfo.patch | 26 +- .../musl-patches/xxx-ppc64le-support.patch | 8 +- ...omium-102-fenced_frame_utils-include.patch | 25 ++ .../chromium-102-regex_pattern-array.patch | 14 + .../fix-missing-cstdint-include-musl.patch | 6 +- .../patches/reenable-linux-i686-builds.patch | 17 + .../remove-no-opaque-pointers-flag.patch | 18 + .../patches/roll-src-third_party-ffmpeg.patch | 333 ++++++++++++++++++ .../roll-src-third_party-ffmpeg.patch.args | 1 + .../patches/xxx-ppc64le-4k-pages.patch | 19 +- .../patches/xxx-ppc64le-support.patch | 30 +- srcpkgs/chromium/template | 9 +- 12 files changed, 452 insertions(+), 54 deletions(-) create mode 100644 srcpkgs/chromium/patches/chromium-102-fenced_frame_utils-include.patch create mode 100644 srcpkgs/chromium/patches/chromium-102-regex_pattern-array.patch create mode 100644 srcpkgs/chromium/patches/reenable-linux-i686-builds.patch create mode 100644 srcpkgs/chromium/patches/remove-no-opaque-pointers-flag.patch create mode 100644 srcpkgs/chromium/patches/roll-src-third_party-ffmpeg.patch create mode 100644 srcpkgs/chromium/patches/roll-src-third_party-ffmpeg.patch.args diff --git a/srcpkgs/chromium/files/musl-patches/no-mallinfo.patch b/srcpkgs/chromium/files/musl-patches/no-mallinfo.patch index 5b486ca62139..aaa4cebf84e9 100644 --- a/srcpkgs/chromium/files/musl-patches/no-mallinfo.patch +++ b/srcpkgs/chromium/files/musl-patches/no-mallinfo.patch @@ -1,14 +1,26 @@ ---- ./base/trace_event/malloc_dump_provider.cc.orig -+++ ./base/trace_event/malloc_dump_provider.cc -@@ -212,7 +212,7 @@ +--- base/trace_event/malloc_dump_provider.cc.orig ++++ base/trace_event/malloc_dump_provider.cc +@@ -174,7 +174,8 @@ + + #if (BUILDFLAG(USE_PARTITION_ALLOC_AS_MALLOC) && BUILDFLAG(IS_ANDROID)) || \ + (!BUILDFLAG(USE_PARTITION_ALLOC_AS_MALLOC) && !BUILDFLAG(IS_WIN) && \ +- !BUILDFLAG(IS_APPLE) && !BUILDFLAG(IS_WIN) && !BUILDFLAG(IS_FUCHSIA)) ++ !BUILDFLAG(IS_APPLE) && !BUILDFLAG(IS_WIN) && !BUILDFLAG(IS_FUCHSIA) && \ ++ !(BUILDFLAG(IS_LINUX) && !defined(__GLIBC__))) + void ReportMallinfoStats(ProcessMemoryDump* pmd, + size_t* total_virtual_size, + size_t* resident_size, +--- base/trace_event/malloc_dump_provider.cc ++++ base/trace_event/malloc_dump_provider.cc +@@ -339,7 +339,7 @@ &allocated_objects_count); - #elif defined(OS_FUCHSIA) + #elif BUILDFLAG(IS_FUCHSIA) // TODO(fuchsia): Port, see https://crbug.com/706592. -#else +#elif defined(__GLIBC__) - #if defined(__GLIBC__) && defined(__GLIBC_PREREQ) - #if __GLIBC_PREREQ(2, 33) - #define MALLINFO2_FOUND_IN_LIBC + ReportMallinfoStats(/*pmd=*/nullptr, &total_virtual_size, &resident_size, + &allocated_objects_size, &allocated_objects_count); + #endif --- base/process/process_metrics_posix.cc.orig +++ base/process/process_metrics_posix.cc @@ -105,7 +105,7 @@ diff --git a/srcpkgs/chromium/files/musl-patches/xxx-ppc64le-support.patch b/srcpkgs/chromium/files/musl-patches/xxx-ppc64le-support.patch index fd5ec6e48bbc..c893d9b078fb 100644 --- a/srcpkgs/chromium/files/musl-patches/xxx-ppc64le-support.patch +++ b/srcpkgs/chromium/files/musl-patches/xxx-ppc64le-support.patch @@ -41,17 +41,15 @@ index d53a7ff56..c290f0e92 100644 } #endif SECCOMP_RESULT(ctx) = static_cast(ret_val); -diff --git third_party/abseil-cpp/absl/base/internal/unscaledcycleclock.h third_party/abseil-cpp/absl/base/internal/unscaledcycleclock.h -index cdce9bf8..73d77dda 100644 ---- third_party/abseil-cpp/absl/base/internal/unscaledcycleclock.h +--- third_party/abseil-cpp/absl/base/internal/unscaledcycleclock.h.orig +++ third_party/abseil-cpp/absl/base/internal/unscaledcycleclock.h @@ -46,7 +46,7 @@ // The following platforms have an implementation of a hardware counter. #if defined(__i386__) || defined(__x86_64__) || defined(__aarch64__) || \ - defined(__powerpc__) || defined(__ppc__) || defined(__riscv) || \ -+ ((defined(__powerpc__) || defined(__ppc__)) && defined(__GLIBC__)) || defined(__riscv) || \ - defined(_M_IX86) || defined(_M_X64) ++ ((defined(__powerpc__) || defined(__ppc__)) && defined(__GLIBC__)) || defined(__riscv) || \ + defined(_M_IX86) || (defined(_M_X64) && !defined(_M_ARM64EC)) #define ABSL_HAVE_UNSCALED_CYCLECLOCK_IMPLEMENTATION 1 #else --- third_party/abseil-cpp/absl/debugging/internal/stacktrace_config.h diff --git a/srcpkgs/chromium/patches/chromium-102-fenced_frame_utils-include.patch b/srcpkgs/chromium/patches/chromium-102-fenced_frame_utils-include.patch new file mode 100644 index 000000000000..61f904bad6a4 --- /dev/null +++ b/srcpkgs/chromium/patches/chromium-102-fenced_frame_utils-include.patch @@ -0,0 +1,25 @@ +From 7c135a291184b59a59643ed6a8c40b4405ac0175 Mon Sep 17 00:00:00 2001 +From: Stephan Hartmann +Date: Wed, 27 Apr 2022 16:01:01 +0000 +Subject: [PATCH] IWYU: add cstring for std::strlen in fenced_frame_utils + +--- + third_party/blink/common/fenced_frame/fenced_frame_utils.cc | 2 ++ + 1 file changed, 2 insertions(+) + +diff --git a/third_party/blink/common/fenced_frame/fenced_frame_utils.cc b/third_party/blink/common/fenced_frame/fenced_frame_utils.cc +index 9e2d3ad..68f4823 100644 +--- a/third_party/blink/common/fenced_frame/fenced_frame_utils.cc ++++ b/third_party/blink/common/fenced_frame/fenced_frame_utils.cc +@@ -4,6 +4,8 @@ + + #include "third_party/blink/public/common/fenced_frame/fenced_frame_utils.h" + ++#include ++ + #include "base/guid.h" + #include "base/strings/string_util.h" + +-- +2.35.1 + diff --git a/srcpkgs/chromium/patches/chromium-102-regex_pattern-array.patch b/srcpkgs/chromium/patches/chromium-102-regex_pattern-array.patch new file mode 100644 index 000000000000..18058b1faa45 --- /dev/null +++ b/srcpkgs/chromium/patches/chromium-102-regex_pattern-array.patch @@ -0,0 +1,14 @@ +--- a/components/autofill/core/browser/BUILD.gn ++++ b/components/autofill/core/browser/BUILD.gn +@@ -54,6 +54,11 @@ action("regex_patterns_inl_h") { + } + + static_library("browser") { ++ if (is_clang) { ++ cflags = [ ++ "-fbracket-depth=1000", ++ ] ++ } + sources = [ + "address_normalization_manager.cc", + "address_normalization_manager.h", diff --git a/srcpkgs/chromium/patches/fix-missing-cstdint-include-musl.patch b/srcpkgs/chromium/patches/fix-missing-cstdint-include-musl.patch index baa48c8f2a78..6ca2897f3dd2 100644 --- a/srcpkgs/chromium/patches/fix-missing-cstdint-include-musl.patch +++ b/srcpkgs/chromium/patches/fix-missing-cstdint-include-musl.patch @@ -1,5 +1,5 @@ ---- a/net/third_party/quiche/src/http2/adapter/window_manager.h -+++ b/net/third_party/quiche/src/http2/adapter/window_manager.h +--- a/net/third_party/quiche/src/quiche/http2/adapter/window_manager.h ++++ b/net/third_party/quiche/src/quiche/http2/adapter/window_manager.h @@ -3,6 +3,7 @@ #include @@ -7,4 +7,4 @@ +#include #include - #include "common/platform/api/quiche_export.h" + #include "quiche/common/platform/api/quiche_export.h" diff --git a/srcpkgs/chromium/patches/reenable-linux-i686-builds.patch b/srcpkgs/chromium/patches/reenable-linux-i686-builds.patch new file mode 100644 index 000000000000..11c2298c4eb8 --- /dev/null +++ b/srcpkgs/chromium/patches/reenable-linux-i686-builds.patch @@ -0,0 +1,17 @@ +--- a/BUILD.gn ++++ b/BUILD.gn +@@ -1522,14 +1522,6 @@ + } + } + +-# TODO(cassew): Add more OS's that don't support x86. +-is_valid_x86_target = +- target_os != "ios" && target_os != "mac" && +- (target_os != "linux" || use_libfuzzer || !build_with_chromium) +-assert( +- is_valid_x86_target || target_cpu != "x86", +- "'target_cpu=x86' is not supported for 'target_os=$target_os'. Consider omitting 'target_cpu' (default) or using 'target_cpu=x64' instead.") +- + group("chromium_builder_perf") { + testonly = true + diff --git a/srcpkgs/chromium/patches/remove-no-opaque-pointers-flag.patch b/srcpkgs/chromium/patches/remove-no-opaque-pointers-flag.patch new file mode 100644 index 000000000000..a8eba730836e --- /dev/null +++ b/srcpkgs/chromium/patches/remove-no-opaque-pointers-flag.patch @@ -0,0 +1,18 @@ +--- chromium-102.0.5005.61/build/config/compiler/BUILD.gn.orig 2022-05-19 10:35:52.991415777 +0000 ++++ chromium-102.0.5005.61/build/config/compiler/BUILD.gn 2022-05-19 10:36:11.102017131 +0000 +@@ -1538,15 +1538,6 @@ config("default_warnings") { + cflags += [ "-Wno-deprecated-non-prototype" ] + } + +- if (!is_nacl && !(is_chromeos || +- default_toolchain == "//build/toolchain/cros:target")) { +- # TODO(https://crbug.com/1316298): Re-enable once test failure is figured out +- cflags += [ +- "-Xclang", +- "-no-opaque-pointers", +- ] +- } +- + if (is_fuchsia) { + # TODO(https://bugs.chromium.org/p/fuchsia/issues/detail?id=77383) + cflags += [ "-Wno-deprecated-copy" ] diff --git a/srcpkgs/chromium/patches/roll-src-third_party-ffmpeg.patch b/srcpkgs/chromium/patches/roll-src-third_party-ffmpeg.patch new file mode 100644 index 000000000000..e739b40a2733 --- /dev/null +++ b/srcpkgs/chromium/patches/roll-src-third_party-ffmpeg.patch @@ -0,0 +1,333 @@ +From 6e554a30893150793c2638e3689cf208ffc8e375 Mon Sep 17 00:00:00 2001 +From: Dale Curtis +Date: Sat, 2 Apr 2022 05:13:53 +0000 +Subject: [PATCH] Roll src/third_party/ffmpeg/ 574c39cce..32b2d1d526 (1125 + commits) + +https://chromium.googlesource.com/chromium/third_party/ffmpeg.git/+log/574c39cce323..32b2d1d526 + +Created with: + roll-dep src/third_party/ffmpeg + +Fixed: 1293918 +Cq-Include-Trybots: luci.chromium.try:mac_chromium_asan_rel_ng,linux_chromium_asan_rel_ng,linux_chromium_chromeos_asan_rel_ng +Change-Id: I41945d0f963e3d1f65940067bac22f63b68e37d2 +Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/3565647 +Auto-Submit: Dale Curtis +Reviewed-by: Dan Sanders +Commit-Queue: Dale Curtis +Cr-Commit-Position: refs/heads/main@{#988253} +--- + .../clear_key_cdm/ffmpeg_cdm_audio_decoder.cc | 29 ++++++++++--------- + media/ffmpeg/ffmpeg_common.cc | 11 +++---- + media/filters/audio_file_reader.cc | 9 +++--- + media/filters/audio_file_reader_unittest.cc | 6 ++-- + .../filters/audio_video_metadata_extractor.cc | 11 +++++-- + .../filters/ffmpeg_aac_bitstream_converter.cc | 7 +++-- + ...ffmpeg_aac_bitstream_converter_unittest.cc | 2 +- + media/filters/ffmpeg_audio_decoder.cc | 13 +++++---- + 8 files changed, 51 insertions(+), 37 deletions(-) + +diff --git a/media/cdm/library_cdm/clear_key_cdm/ffmpeg_cdm_audio_decoder.cc b/media/cdm/library_cdm/clear_key_cdm/ffmpeg_cdm_audio_decoder.cc +index e4fc3f460e2..9b1ad9f7675 100644 +--- a/media/cdm/library_cdm/clear_key_cdm/ffmpeg_cdm_audio_decoder.cc ++++ b/media/cdm/library_cdm/clear_key_cdm/ffmpeg_cdm_audio_decoder.cc +@@ -74,7 +74,7 @@ void CdmAudioDecoderConfigToAVCodecContext( + codec_context->sample_fmt = AV_SAMPLE_FMT_NONE; + } + +- codec_context->channels = config.channel_count; ++ codec_context->ch_layout.nb_channels = config.channel_count; + codec_context->sample_rate = config.samples_per_second; + + if (config.extra_data) { +@@ -124,8 +124,8 @@ void CopySamples(cdm::AudioFormat cdm_format, + case cdm::kAudioFormatPlanarS16: + case cdm::kAudioFormatPlanarF32: { + const int decoded_size_per_channel = +- decoded_audio_size / av_frame.channels; +- for (int i = 0; i < av_frame.channels; ++i) { ++ decoded_audio_size / av_frame.ch_layout.nb_channels; ++ for (int i = 0; i < av_frame.ch_layout.nb_channels; ++i) { + memcpy(output_buffer, av_frame.extended_data[i], + decoded_size_per_channel); + output_buffer += decoded_size_per_channel; +@@ -185,13 +185,14 @@ bool FFmpegCdmAudioDecoder::Initialize( + // Success! + decoding_loop_ = std::make_unique(codec_context_.get()); + samples_per_second_ = config.samples_per_second; +- bytes_per_frame_ = codec_context_->channels * config.bits_per_channel / 8; ++ bytes_per_frame_ = ++ codec_context_->ch_layout.nb_channels * config.bits_per_channel / 8; + output_timestamp_helper_ = + std::make_unique(config.samples_per_second); + is_initialized_ = true; + + // Store initial values to guard against midstream configuration changes. +- channels_ = codec_context_->channels; ++ channels_ = codec_context_->ch_layout.nb_channels; + av_sample_format_ = codec_context_->sample_fmt; + + return true; +@@ -291,17 +292,19 @@ cdm::Status FFmpegCdmAudioDecoder::DecodeBuffer( + for (auto& frame : audio_frames) { + int decoded_audio_size = 0; + if (frame->sample_rate != samples_per_second_ || +- frame->channels != channels_ || frame->format != av_sample_format_) { ++ frame->ch_layout.nb_channels != channels_ || ++ frame->format != av_sample_format_) { + DLOG(ERROR) << "Unsupported midstream configuration change!" + << " Sample Rate: " << frame->sample_rate << " vs " +- << samples_per_second_ << ", Channels: " << frame->channels +- << " vs " << channels_ << ", Sample Format: " << frame->format +- << " vs " << av_sample_format_; ++ << samples_per_second_ ++ << ", Channels: " << frame->ch_layout.nb_channels << " vs " ++ << channels_ << ", Sample Format: " << frame->format << " vs " ++ << av_sample_format_; + return cdm::kDecodeError; + } + + decoded_audio_size = av_samples_get_buffer_size( +- nullptr, codec_context_->channels, frame->nb_samples, ++ nullptr, codec_context_->ch_layout.nb_channels, frame->nb_samples, + codec_context_->sample_fmt, 1); + if (!decoded_audio_size) + continue; +@@ -320,9 +323,9 @@ bool FFmpegCdmAudioDecoder::OnNewFrame( + size_t* total_size, + std::vector>* audio_frames, + AVFrame* frame) { +- *total_size += av_samples_get_buffer_size(nullptr, codec_context_->channels, +- frame->nb_samples, +- codec_context_->sample_fmt, 1); ++ *total_size += av_samples_get_buffer_size( ++ nullptr, codec_context_->ch_layout.nb_channels, frame->nb_samples, ++ codec_context_->sample_fmt, 1); + audio_frames->emplace_back(av_frame_clone(frame)); + return true; + } +diff --git a/media/ffmpeg/ffmpeg_common.cc b/media/ffmpeg/ffmpeg_common.cc +index 87ca8969626..76f03d6608e 100644 +--- a/media/ffmpeg/ffmpeg_common.cc ++++ b/media/ffmpeg/ffmpeg_common.cc +@@ -345,10 +345,11 @@ bool AVCodecContextToAudioDecoderConfig(const AVCodecContext* codec_context, + codec_context->sample_fmt, codec_context->codec_id); + + ChannelLayout channel_layout = +- codec_context->channels > 8 ++ codec_context->ch_layout.nb_channels > 8 + ? CHANNEL_LAYOUT_DISCRETE +- : ChannelLayoutToChromeChannelLayout(codec_context->channel_layout, +- codec_context->channels); ++ : ChannelLayoutToChromeChannelLayout( ++ codec_context->ch_layout.u.mask, ++ codec_context->ch_layout.nb_channels); + + int sample_rate = codec_context->sample_rate; + switch (codec) { +@@ -401,7 +402,7 @@ bool AVCodecContextToAudioDecoderConfig(const AVCodecContext* codec_context, + extra_data, encryption_scheme, seek_preroll, + codec_context->delay); + if (channel_layout == CHANNEL_LAYOUT_DISCRETE) +- config->SetChannelsForDiscrete(codec_context->channels); ++ config->SetChannelsForDiscrete(codec_context->ch_layout.nb_channels); + + #if BUILDFLAG(ENABLE_PLATFORM_AC3_EAC3_AUDIO) + // These are bitstream formats unknown to ffmpeg, so they don't have +@@ -470,7 +471,7 @@ void AudioDecoderConfigToAVCodecContext(const AudioDecoderConfig& config, + + // TODO(scherkus): should we set |channel_layout|? I'm not sure if FFmpeg uses + // said information to decode. +- codec_context->channels = config.channels(); ++ codec_context->ch_layout.nb_channels = config.channels(); + codec_context->sample_rate = config.samples_per_second(); + + if (config.extra_data().empty()) { +diff --git a/media/filters/audio_file_reader.cc b/media/filters/audio_file_reader.cc +index 5f257bdfaa6..e1be5aa9a5b 100644 +--- a/media/filters/audio_file_reader.cc ++++ b/media/filters/audio_file_reader.cc +@@ -113,14 +113,15 @@ bool AudioFileReader::OpenDecoder() { + + // Verify the channel layout is supported by Chrome. Acts as a sanity check + // against invalid files. See http://crbug.com/171962 +- if (ChannelLayoutToChromeChannelLayout(codec_context_->channel_layout, +- codec_context_->channels) == ++ if (ChannelLayoutToChromeChannelLayout( ++ codec_context_->ch_layout.u.mask, ++ codec_context_->ch_layout.nb_channels) == + CHANNEL_LAYOUT_UNSUPPORTED) { + return false; + } + + // Store initial values to guard against midstream configuration changes. +- channels_ = codec_context_->channels; ++ channels_ = codec_context_->ch_layout.nb_channels; + audio_codec_ = CodecIDToAudioCodec(codec_context_->codec_id); + sample_rate_ = codec_context_->sample_rate; + av_sample_format_ = codec_context_->sample_fmt; +@@ -223,7 +224,7 @@ bool AudioFileReader::OnNewFrame( + if (frames_read < 0) + return false; + +- const int channels = frame->channels; ++ const int channels = frame->ch_layout.nb_channels; + if (frame->sample_rate != sample_rate_ || channels != channels_ || + frame->format != av_sample_format_) { + DLOG(ERROR) << "Unsupported midstream configuration change!" +diff --git a/media/filters/audio_file_reader_unittest.cc b/media/filters/audio_file_reader_unittest.cc +index 2aba7927a31..1f45a50cace 100644 +--- a/media/filters/audio_file_reader_unittest.cc ++++ b/media/filters/audio_file_reader_unittest.cc +@@ -121,11 +121,11 @@ class AudioFileReaderTest : public testing::Test { + EXPECT_FALSE(reader_->Open()); + } + +- void RunTestFailingDecode(const char* fn) { ++ void RunTestFailingDecode(const char* fn, int expect_read = 0) { + Initialize(fn); + EXPECT_TRUE(reader_->Open()); + std::vector> decoded_audio_packets; +- EXPECT_EQ(reader_->Read(&decoded_audio_packets), 0); ++ EXPECT_EQ(reader_->Read(&decoded_audio_packets), expect_read); + } + + void RunTestPartialDecode(const char* fn) { +@@ -219,7 +219,7 @@ TEST_F(AudioFileReaderTest, AAC_ADTS) { + } + + TEST_F(AudioFileReaderTest, MidStreamConfigChangesFail) { +- RunTestFailingDecode("midstream_config_change.mp3"); ++ RunTestFailingDecode("midstream_config_change.mp3", 42624); + } + #endif + +diff --git a/media/filters/audio_video_metadata_extractor.cc b/media/filters/audio_video_metadata_extractor.cc +index 185819eb936..69ff508c221 100644 +--- a/media/filters/audio_video_metadata_extractor.cc ++++ b/media/filters/audio_video_metadata_extractor.cc +@@ -113,6 +113,15 @@ bool AudioVideoMetadataExtractor::Extract(DataSource* source, + if (!stream) + continue; + ++ void* display_matrix = ++ av_stream_get_side_data(stream, AV_PKT_DATA_DISPLAYMATRIX, nullptr); ++ if (display_matrix) { ++ rotation_ = VideoTransformation::FromFFmpegDisplayMatrix( ++ static_cast(display_matrix)) ++ .rotation; ++ info.tags["rotate"] = base::NumberToString(rotation_); ++ } ++ + // Extract dictionary from streams also. Needed for containers that attach + // metadata to contained streams instead the container itself, like OGG. + ExtractDictionary(stream->metadata, &info.tags); +@@ -255,8 +264,6 @@ void AudioVideoMetadataExtractor::ExtractDictionary(AVDictionary* metadata, + if (raw_tags->find(tag->key) == raw_tags->end()) + (*raw_tags)[tag->key] = tag->value; + +- if (ExtractInt(tag, "rotate", &rotation_)) +- continue; + if (ExtractString(tag, "album", &album_)) + continue; + if (ExtractString(tag, "artist", &artist_)) +diff --git a/media/filters/ffmpeg_aac_bitstream_converter.cc b/media/filters/ffmpeg_aac_bitstream_converter.cc +index 6f231c85729..ca5e5fb927d 100644 +--- a/media/filters/ffmpeg_aac_bitstream_converter.cc ++++ b/media/filters/ffmpeg_aac_bitstream_converter.cc +@@ -195,14 +195,15 @@ bool FFmpegAACBitstreamConverter::ConvertPacket(AVPacket* packet) { + if (!header_generated_ || codec_ != stream_codec_parameters_->codec_id || + audio_profile_ != stream_codec_parameters_->profile || + sample_rate_index_ != sample_rate_index || +- channel_configuration_ != stream_codec_parameters_->channels || ++ channel_configuration_ != ++ stream_codec_parameters_->ch_layout.nb_channels || + frame_length_ != header_plus_packet_size) { + header_generated_ = + GenerateAdtsHeader(stream_codec_parameters_->codec_id, + 0, // layer + stream_codec_parameters_->profile, sample_rate_index, + 0, // private stream +- stream_codec_parameters_->channels, ++ stream_codec_parameters_->ch_layout.nb_channels, + 0, // originality + 0, // home + 0, // copyrighted_stream +@@ -214,7 +215,7 @@ bool FFmpegAACBitstreamConverter::ConvertPacket(AVPacket* packet) { + codec_ = stream_codec_parameters_->codec_id; + audio_profile_ = stream_codec_parameters_->profile; + sample_rate_index_ = sample_rate_index; +- channel_configuration_ = stream_codec_parameters_->channels; ++ channel_configuration_ = stream_codec_parameters_->ch_layout.nb_channels; + frame_length_ = header_plus_packet_size; + } + +diff --git a/media/filters/ffmpeg_aac_bitstream_converter_unittest.cc b/media/filters/ffmpeg_aac_bitstream_converter_unittest.cc +index 1fd4c5ccd7d..f59bcd8fdaf 100644 +--- a/media/filters/ffmpeg_aac_bitstream_converter_unittest.cc ++++ b/media/filters/ffmpeg_aac_bitstream_converter_unittest.cc +@@ -34,7 +34,7 @@ class FFmpegAACBitstreamConverterTest : public testing::Test { + memset(&test_parameters_, 0, sizeof(AVCodecParameters)); + test_parameters_.codec_id = AV_CODEC_ID_AAC; + test_parameters_.profile = FF_PROFILE_AAC_MAIN; +- test_parameters_.channels = 2; ++ test_parameters_.ch_layout.nb_channels = 2; + test_parameters_.extradata = extradata_header_; + test_parameters_.extradata_size = sizeof(extradata_header_); + } +diff --git a/media/filters/ffmpeg_audio_decoder.cc b/media/filters/ffmpeg_audio_decoder.cc +index 6a56c675f7d..4615fdeb3fb 100644 +--- a/media/filters/ffmpeg_audio_decoder.cc ++++ b/media/filters/ffmpeg_audio_decoder.cc +@@ -28,7 +28,7 @@ namespace media { + + // Return the number of channels from the data in |frame|. + static inline int DetermineChannels(AVFrame* frame) { +- return frame->channels; ++ return frame->ch_layout.nb_channels; + } + + // Called by FFmpeg's allocation routine to allocate a buffer. Uses +@@ -231,7 +231,7 @@ bool FFmpegAudioDecoder::OnNewFrame(const DecoderBuffer& buffer, + // Translate unsupported into discrete layouts for discrete configurations; + // ffmpeg does not have a labeled discrete configuration internally. + ChannelLayout channel_layout = ChannelLayoutToChromeChannelLayout( +- codec_context_->channel_layout, codec_context_->channels); ++ codec_context_->ch_layout.u.mask, codec_context_->ch_layout.nb_channels); + if (channel_layout == CHANNEL_LAYOUT_UNSUPPORTED && + config_.channel_layout() == CHANNEL_LAYOUT_DISCRETE) { + channel_layout = CHANNEL_LAYOUT_DISCRETE; +@@ -348,11 +348,11 @@ bool FFmpegAudioDecoder::ConfigureDecoder(const AudioDecoderConfig& config) { + // Success! + av_sample_format_ = codec_context_->sample_fmt; + +- if (codec_context_->channels != config.channels()) { ++ if (codec_context_->ch_layout.nb_channels != config.channels()) { + MEDIA_LOG(ERROR, media_log_) + << "Audio configuration specified " << config.channels() + << " channels, but FFmpeg thinks the file contains " +- << codec_context_->channels << " channels"; ++ << codec_context_->ch_layout.nb_channels << " channels"; + ReleaseFFmpegResources(); + state_ = DecoderState::kUninitialized; + return false; +@@ -403,7 +403,7 @@ int FFmpegAudioDecoder::GetAudioBuffer(struct AVCodecContext* s, + if (frame->nb_samples <= 0) + return AVERROR(EINVAL); + +- if (s->channels != channels) { ++ if (s->ch_layout.nb_channels != channels) { + DLOG(ERROR) << "AVCodecContext and AVFrame disagree on channel count."; + return AVERROR(EINVAL); + } +@@ -436,7 +436,8 @@ int FFmpegAudioDecoder::GetAudioBuffer(struct AVCodecContext* s, + ChannelLayout channel_layout = + config_.channel_layout() == CHANNEL_LAYOUT_DISCRETE + ? CHANNEL_LAYOUT_DISCRETE +- : ChannelLayoutToChromeChannelLayout(s->channel_layout, s->channels); ++ : ChannelLayoutToChromeChannelLayout(s->ch_layout.u.mask, ++ s->ch_layout.nb_channels); + + if (channel_layout == CHANNEL_LAYOUT_UNSUPPORTED) { + DLOG(ERROR) << "Unsupported channel layout."; diff --git a/srcpkgs/chromium/patches/roll-src-third_party-ffmpeg.patch.args b/srcpkgs/chromium/patches/roll-src-third_party-ffmpeg.patch.args new file mode 100644 index 000000000000..8bbbbe948363 --- /dev/null +++ b/srcpkgs/chromium/patches/roll-src-third_party-ffmpeg.patch.args @@ -0,0 +1 @@ +-RNp1 diff --git a/srcpkgs/chromium/patches/xxx-ppc64le-4k-pages.patch b/srcpkgs/chromium/patches/xxx-ppc64le-4k-pages.patch index ae5326ca653c..8b380650acd8 100644 --- a/srcpkgs/chromium/patches/xxx-ppc64le-4k-pages.patch +++ b/srcpkgs/chromium/patches/xxx-ppc64le-4k-pages.patch @@ -9,24 +9,11 @@ Date: Fri Jan 7 18:18:52 2022 +0100 to wade through this pile of curse and we use 4k kernels anyway, assume 4K pages for ppc64 -diff --git a/base/allocator/partition_allocator/page_allocator_constants.h b/base/allocator/partition_allocator/page_allocator_constants.h -index bfd5753..045082b 100644 ---- a/base/allocator/partition_allocator/page_allocator_constants.h -+++ b/base/allocator/partition_allocator/page_allocator_constants.h -@@ -40,7 +40,7 @@ namespace base { - - PAGE_ALLOCATOR_CONSTANTS_DECLARE_CONSTEXPR ALWAYS_INLINE size_t - PageAllocationGranularityShift() { --#if BUILDFLAG(IS_WIN) || defined(ARCH_CPU_PPC64) -+#if BUILDFLAG(IS_WIN) - // Modern ppc64 systems support 4kB (shift = 12) and 64kB (shift = 16) page - // sizes. Since 64kB is the de facto standard on the platform and binaries - // compiled for 64kB are likely to work on 4kB systems, 64kB is a good choice diff --git a/base/allocator/partition_allocator/partition_alloc_constants.h b/base/allocator/partition_allocator/partition_alloc_constants.h index 0b9260d..3e054ec 100644 --- a/base/allocator/partition_allocator/partition_alloc_constants.h +++ b/base/allocator/partition_allocator/partition_alloc_constants.h -@@ -54,11 +54,6 @@ PAGE_ALLOCATOR_CONSTANTS_DECLARE_CONSTEXPR ALWAYS_INLINE size_t +@@ -74,11 +74,6 @@ PartitionPageShift() { return 16; // 64 KiB } @@ -35,9 +22,9 @@ index 0b9260d..3e054ec 100644 -PartitionPageShift() { - return 18; // 256 KiB -} - #elif BUILDFLAG(IS_APPLE) && defined(ARCH_CPU_64_BITS) + #elif (BUILDFLAG(IS_APPLE) && defined(ARCH_CPU_64_BITS)) || \ + (BUILDFLAG(IS_LINUX) && defined(ARCH_CPU_ARM64)) PAGE_ALLOCATOR_CONSTANTS_DECLARE_CONSTEXPR ALWAYS_INLINE size_t - PartitionPageShift() { diff --git a/base/allocator/partition_allocator/partition_alloc_forward.h b/base/allocator/partition_allocator/partition_alloc_forward.h index 938ea38..9414b41 100644 --- a/base/allocator/partition_allocator/partition_alloc_forward.h diff --git a/srcpkgs/chromium/patches/xxx-ppc64le-support.patch b/srcpkgs/chromium/patches/xxx-ppc64le-support.patch index 79a1e2a17568..e626f8130d43 100644 --- a/srcpkgs/chromium/patches/xxx-ppc64le-support.patch +++ b/srcpkgs/chromium/patches/xxx-ppc64le-support.patch @@ -19,11 +19,9 @@ index 286a92a27..ec36a85d3 100755 script_dir = os.path.dirname(os.path.abspath(__file__)) src_dir = os.path.dirname(script_dir) nacl_dir = os.path.join(src_dir, 'native_client') -diff --git a/chrome/installer/linux/BUILD.gn b/chrome/installer/linux/BUILD.gn -index 35f01d0a4..28f2e7475 100644 --- a/chrome/installer/linux/BUILD.gn +++ b/chrome/installer/linux/BUILD.gn -@@ -94,8 +94,6 @@ packaging_files = packaging_files_binaries + [ +@@ -97,8 +97,6 @@ "$root_out_dir/xdg-mime", "$root_out_dir/xdg-settings", "$root_out_dir/locales/en-US.pak", @@ -32,10 +30,10 @@ index 35f01d0a4..28f2e7475 100644 ] action_foreach("calculate_deb_dependencies") { -@@ -321,7 +319,6 @@ group("installer_deps") { - ":theme_files", +@@ -377,7 +377,6 @@ "//chrome", "//chrome:packed_resources", + "//chrome/browser/enterprise/connectors/device_trust/key_management/installer/management_service:chrome_management_service", - "//chrome/browser/resources/media/mei_preload:component", "//components/crash/core/app:chrome_crashpad_handler", "//sandbox/linux:chrome_sandbox", @@ -3390,18 +3388,16 @@ index c59cb0821..3060284a8 100644 template_sources = [ "libdav1d/src/cdef_apply_tmpl.c", "libdav1d/src/cdef_tmpl.c", -diff --git a/third_party/dav1d/generate_source.py b/third_party/dav1d/generate_source.py -index 9ab5e00b8..ad3feffee 100755 ---- a/third_party/dav1d/generate_source.py 2021-04-15 13:11:10.489579490 -0400 -+++ b/third_party/dav1d/generate_source.py 2021-04-15 13:19:08.229913892 -0400 -@@ -57,6 +57,8 @@ - _WriteArray(fd, "arm64_asm_sources", _Glob("libdav1d/src/arm/64/*.S")) - _WriteArray(fd, "arm_template_sources", _Glob("libdav1d/src/arm/*_tmpl.c")) - -+ _WriteArray(fd, "ppc64_template_sources", _Glob("libdav1d/src/ppc/*_tmpl.c")) -+ - template_sources = _Glob("libdav1d/src/*_tmpl.c") - _WriteArray(fd, "template_sources", template_sources) +--- a/third_party/dav1d/generate_source.py ++++ b/third_party/dav1d/generate_source.py +@@ -61,6 +61,8 @@ + _Glob("libdav1d/src/arm/64/*_tmpl.S") + ["libdav1d/src/arm/64/util.S"]) + _WriteArray(fd, "arm_template_sources", _Glob("libdav1d/src/arm/*_tmpl.c")) + ++ _WriteArray(fd, "ppc64_template_sources", _Glob("libdav1d/src/ppc/*_tmpl.c")) ++ + template_sources = _Glob("libdav1d/src/*_tmpl.c") + _WriteArray(fd, "template_sources", template_sources) diff --git a/third_party/dav1d/libdav1d/src/ppc/dav1d_types.h b/third_party/dav1d/libdav1d/src/ppc/dav1d_types.h index 0b4bd72f0..a0caa5e71 100644 diff --git a/srcpkgs/chromium/template b/srcpkgs/chromium/template index 0dce8772fdb8..fe400b74c129 100644 --- a/srcpkgs/chromium/template +++ b/srcpkgs/chromium/template @@ -1,7 +1,7 @@ # Template file for 'chromium' pkgname=chromium # See https://chromiumdash.appspot.com/releases?platform=Linux for the latest version -version=101.0.4951.41 +version=102.0.5005.61 revision=1 archs="i686* x86_64* aarch64* armv7l* ppc64le*" short_desc="Google's attempt at creating a safer, faster, and more stable browser" @@ -9,7 +9,7 @@ maintainer="Duncaen " license="BSD-3-Clause" homepage="https://www.chromium.org/" distfiles="https://commondatastorage.googleapis.com/chromium-browser-official/${pkgname}-${version}.tar.xz" -checksum=099863882e88b9a035fcb6b63dd5288554f6b27558e0ebce93e0d804465efa37 +checksum=1a3797d36901fa3ba63744b9a870b65a8890c9a850442c160196bc64df886b1f lib32disabled=yes @@ -21,7 +21,7 @@ desc_option_js_optimize="Optimize the JS used for Chromium's UI" desc_option_pipewire="Enable support for screen sharing for WebRTC via PipeWire" hostmakedepends="$(vopt_if clang "clang lld llvm12") python python3 pkgconf perl gperf bison ninja nodejs hwids - libatomic-devel libevent-devel libglib-devel $(vopt_if js_optimize openjdk) wayland-devel libepoxy-devel" + libatomic-devel libevent-devel libglib-devel $(vopt_if js_optimize openjdk) wayland-devel libepoxy-devel git" makedepends="libpng-devel gtk+-devel gtk+3-devel nss-devel pciutils-devel libXi-devel libgcrypt-devel libgnome-keyring-devel cups-devel elfutils-devel libXcomposite-devel speech-dispatcher-devel libXrandr-devel mit-krb5-devel @@ -337,9 +337,6 @@ do_install() { vmkdir usr/lib/chromium/locales vcopy "out/Release/locales/*.pak" usr/lib/chromium/locales - vmkdir usr/lib/chromium/swiftshader - vcopy "out/Release/swiftshader/*.so" usr/lib/chromium/swiftshader - vinstall ${FILESDIR}/chromium.desktop 644 usr/share/applications vinstall out/Release/icudtl.dat 0644 usr/lib/chromium