From 4bbd14c7676eda6ef2c1ad94309508e3aeddf891 Mon Sep 17 00:00:00 2001 From: tigro Date: Mon, 20 Nov 2023 20:08:57 +0300 Subject: [PATCH] - update to 119.0.6045.159 - add Requires/Conflicts for ABI break in fmpeg-free 6.0.1 - drop first_dts patch, reintroduce first_dts patch in ffmpeg-free-6.0.1 - fixed python3 syntaxWarning: invalid escape sequenc - skip clang's patches for epel8 that now gets clang-16 update - fixed bz#2240127, Some h.264 mp4s do not play - fixed python3 syntaxWarning: invalid escape sequence - fix ffmpeg conflicts --- .chromium.metadata | 2 +- SOURCES/chromium-119-ffmpeg-first_dts.patch | 94 --------------------- SOURCES/chromium-latest.py | 5 +- SPECS/chromium.spec | 31 +++++-- 4 files changed, 29 insertions(+), 103 deletions(-) delete mode 100644 SOURCES/chromium-119-ffmpeg-first_dts.patch mode change 100755 => 100644 SOURCES/chromium-latest.py diff --git a/.chromium.metadata b/.chromium.metadata index c042f8b9..6b156475 100644 --- a/.chromium.metadata +++ b/.chromium.metadata @@ -1,4 +1,4 @@ -df45906bbf86530822cd761e67761b24aa12fb7c SOURCES/chromium-119.0.6045.123.tar.xz +80d6f9be1cc55655da56c20c67de2c83786f0280 SOURCES/chromium-119.0.6045.159.tar.xz dea187019741602d57aaf189a80abba261fbd2aa SOURCES/linux-x64-0.19.2.tgz 7e5d2c7864c5c83ec789b59c77cd9c20d2594916 SOURCES/linux-arm64-0.19.2.tgz 769196d081c6a0ad37f1c63dec56febfff3370de SOURCES/node-v20.6.1-linux-x64.tar.xz diff --git a/SOURCES/chromium-119-ffmpeg-first_dts.patch b/SOURCES/chromium-119-ffmpeg-first_dts.patch deleted file mode 100644 index 19cf84bc..00000000 --- a/SOURCES/chromium-119-ffmpeg-first_dts.patch +++ /dev/null @@ -1,94 +0,0 @@ -diff -up chromium-119.0.6045.105/media/filters/ffmpeg_demuxer.cc.first_dts chromium-119.0.6045.105/media/filters/ffmpeg_demuxer.cc ---- chromium-119.0.6045.105/media/filters/ffmpeg_demuxer.cc.first_dts 2023-11-01 19:10:31.000000000 +0100 -+++ chromium-119.0.6045.105/media/filters/ffmpeg_demuxer.cc 2023-11-06 13:05:09.819011697 +0100 -@@ -101,7 +101,7 @@ static base::TimeDelta FramesToTimeDelta - sample_rate); - } - --static base::TimeDelta ExtractStartTime(AVStream* stream) { -+static base::TimeDelta ExtractStartTime(AVStream* stream, int64_t first_dts) { - // The default start time is zero. - base::TimeDelta start_time; - -@@ -111,12 +111,12 @@ static base::TimeDelta ExtractStartTime( - - // Next try to use the first DTS value, for codecs where we know PTS == DTS - // (excludes all H26x codecs). The start time must be returned in PTS. -- if (av_stream_get_first_dts(stream) != kNoFFmpegTimestamp && -+ if (first_dts != AV_NOPTS_VALUE && - stream->codecpar->codec_id != AV_CODEC_ID_HEVC && - stream->codecpar->codec_id != AV_CODEC_ID_H264 && - stream->codecpar->codec_id != AV_CODEC_ID_MPEG4) { - const base::TimeDelta first_pts = -- ConvertFromTimeBase(stream->time_base, av_stream_get_first_dts(stream)); -+ ConvertFromTimeBase(stream->time_base, first_dts); - if (first_pts < start_time) - start_time = first_pts; - } -@@ -274,6 +274,7 @@ FFmpegDemuxerStream::FFmpegDemuxerStream - fixup_negative_timestamps_(false), - fixup_chained_ogg_(false), - num_discarded_packet_warnings_(0), -+ first_dts_(AV_NOPTS_VALUE), - last_packet_pos_(AV_NOPTS_VALUE), - last_packet_dts_(AV_NOPTS_VALUE) { - DCHECK(demuxer_); -@@ -336,6 +337,10 @@ void FFmpegDemuxerStream::EnqueuePacket( - int64_t packet_dts = - packet->dts == AV_NOPTS_VALUE ? packet->pts : packet->dts; - -+ if (first_dts_ == AV_NOPTS_VALUE) { -+ first_dts_ = packet_dts; -+ } -+ - // Chained ogg files have non-monotonically increasing position and time stamp - // values, which prevents us from using them to determine if a packet should - // be dropped. Since chained ogg is only allowed on single track audio only -@@ -1442,7 +1447,8 @@ void FFmpegDemuxer::OnFindStreamInfoDone - - max_duration = std::max(max_duration, streams_[i]->duration()); - -- base::TimeDelta start_time = ExtractStartTime(stream); -+ base::TimeDelta start_time = -+ ExtractStartTime(stream, streams_[i]->first_dts()); - - // Note: This value is used for seeking, so we must take the true value and - // not the one possibly clamped to zero below. -@@ -1604,7 +1610,7 @@ FFmpegDemuxerStream* FFmpegDemuxer::Find - for (const auto& stream : streams_) { - if (!stream || stream->IsEnabled() != enabled) - continue; -- if (av_stream_get_first_dts(stream->av_stream()) == kInvalidPTSMarker) -+ if (stream->first_dts() == AV_NOPTS_VALUE) - continue; - if (!lowest_start_time_stream || - stream->start_time() < lowest_start_time_stream->start_time()) { -@@ -1625,7 +1631,7 @@ FFmpegDemuxerStream* FFmpegDemuxer::Find - if (stream->type() != DemuxerStream::VIDEO) - continue; - -- if (av_stream_get_first_dts(stream->av_stream()) == kInvalidPTSMarker) -+ if (stream->first_dts() == AV_NOPTS_VALUE) - continue; - - if (!stream->IsEnabled()) -diff -up chromium-119.0.6045.105/media/filters/ffmpeg_demuxer.h.first_dts chromium-119.0.6045.105/media/filters/ffmpeg_demuxer.h ---- chromium-119.0.6045.105/media/filters/ffmpeg_demuxer.h.first_dts 2023-11-01 19:10:31.000000000 +0100 -+++ chromium-119.0.6045.105/media/filters/ffmpeg_demuxer.h 2023-11-06 13:08:43.425784988 +0100 -@@ -142,6 +142,8 @@ class MEDIA_EXPORT FFmpegDemuxerStream : - base::TimeDelta start_time() const { return start_time_; } - void set_start_time(base::TimeDelta time) { start_time_ = time; } - -+ int64_t first_dts() const { return first_dts_; } -+ - private: - friend class FFmpegDemuxerTest; - -@@ -198,6 +200,7 @@ class MEDIA_EXPORT FFmpegDemuxerStream : - bool fixup_chained_ogg_; - - int num_discarded_packet_warnings_; -+ int64_t first_dts_; - int64_t last_packet_pos_; - int64_t last_packet_dts_; - // Requested buffer count. The actual returned buffer count could be less diff --git a/SOURCES/chromium-latest.py b/SOURCES/chromium-latest.py old mode 100755 new mode 100644 index 5af86286..5864be9f --- a/SOURCES/chromium-latest.py +++ b/SOURCES/chromium-latest.py @@ -1,4 +1,5 @@ #!/usr/bin/python3 +# Copyright 2021-2023, Than Ngo # Copyright 2010,2015-2019 Tom Callaway # Copyright 2013-2016 Tomas Popela # Permission is hereby granted, free of charge, to any person obtaining @@ -324,7 +325,7 @@ if __name__ == '__main__': delete_chromium_dir(directory) # There has got to be a better, more portable way to do this. - os.system("find %s -depth -name reference_build -type d -exec rm -rf {} \;" % latest_dir) + os.system("find %s -depth -name reference_build -type d -exec rm -rf {} \\;" % latest_dir) # I could not find good bindings for xz/lzma support, so we system call here too. chromium_clean_xz_file = "chromium-" + chromium_version + "-clean.tar.xz" @@ -339,6 +340,6 @@ if __name__ == '__main__': if (not args.prep): print("Compressing cleaned tree, please wait...") os.chdir(chromium_root_dir) - os.system("tar --exclude=\.svn -cf - chromium-%s | xz -9 -T 0 -f > %s" % (chromium_version, chromium_clean_xz_file)) + os.system("tar --exclude=\\.svn -cf - chromium-%s | xz -9 -T 0 -f > %s" % (chromium_version, chromium_clean_xz_file)) print("Finished!") diff --git a/SPECS/chromium.spec b/SPECS/chromium.spec index b35f682b..2ab3188c 100644 --- a/SPECS/chromium.spec +++ b/SPECS/chromium.spec @@ -54,7 +54,10 @@ %global esbuild_version 0.19.2 # set version for devtoolset and gcc-toolset +%global dts_version 12 +%if 0%{?rhel} == 8 || 0%{?rhel} == 9 %global dts_version 13 +%endif # set version for llvm-toolset on el7 %global llvm_toolset_version 14.0 @@ -263,7 +266,7 @@ %endif Name: chromium%{chromium_channel} -Version: 119.0.6045.123 +Version: 119.0.6045.159 Release: 1%{?dist}.inferit Summary: A WebKit (Blink) powered web browser that Google doesn't want you to use Url: http://www.chromium.org/Home @@ -360,8 +363,6 @@ Patch110: chromium-115-buildflag-el7.patch Patch114: chromium-107-ffmpeg-5.x-duration.patch # disable the check Patch115: chromium-107-proprietary-codecs.patch -# drop av_stream_get_first_dts from internal ffmpeg -Patch116: chromium-119-ffmpeg-first_dts.patch # fix tab crash with SIGTRAP error when using system ffmpeg Patch117: chromium-118-sigtrap_system_ffmpeg.patch @@ -371,7 +372,7 @@ Patch130: chromium-119-revert-av1enc-el9.patch # file conflict with old kernel on el8/el9 Patch140: chromium-118-dma_buf_export_sync_file-conflict.patch -# fixes for old clang version in fedora < 38 end epel < 9 (old clang <= 15) +# fixes for old clang version in fedora < 38 end epel < 8 (old clang <= 15) # compiler build errors, no matching constructor for initialization Patch300: chromium-119-no_matching_constructor.patch Patch301: chromium-115-compiler-SkColor4f.patch @@ -497,6 +498,15 @@ BuildRequires: binutils #BuildRequires: pkgconfig(libavfilter) #BuildRequires: pkgconfig(libavformat) #BuildRequires: pkgconfig(libavutil) +# chromium fail to start for rpmfusion users due to ABI break in ffmpeg-free-6.0.1 +# bethween fedora and rpmfussion. +#%%if 0%{?rhel} == 9 || 0%%{?fedora} == 37 +#Conflicts: libavformat-free%{_isa} < 5.1.4 +#Conflicts: ffmpeg-libs%{_isa} < 5.1.4 +#%%else +#Conflicts: libavformat-free%{_isa} < 6.0.1 +#Conflicts: ffmpeg-libs%{_isa} < 6.0.1-2 +#%%endif #%%endif # build with system libaom @@ -970,7 +980,6 @@ udev. #%%patch -P114 -p1 -b .ffmpeg-5.x-duration #%%endif #%%patch -P115 -p1 -b .prop-codecs -#%%patch -P116 -p1 -b .first_dts #%%patch -P117 -p1 -b .sigtrap_system_ffmpeg #%%endif @@ -997,7 +1006,7 @@ udev. %endif %if %{clang} -%if 0%{?rhel} < 9 || 0%{?fedora} < 38 +%if 0%{?rhel} < 8 || 0%{?fedora} < 38 %patch -P300 -p1 -b .no_matching_constructor %patch -P301 -p1 -b .workaround_clang-SkColor4f %patch -P302 -p1 -b .workaround_clang_bug-structured_binding @@ -1724,6 +1733,16 @@ getent group chrome-remote-desktop >/dev/null || groupadd -r chrome-remote-deskt %{chromium_path}/chromedriver %changelog +* Mon Nov 20 2023 Arkady L. Shane - 119.0.6045.159-1.inferit +- update to 119.0.6045.159 +- add Requires/Conflicts for ABI break in fmpeg-free 6.0.1 +- drop first_dts patch, reintroduce first_dts patch in ffmpeg-free-6.0.1 +- fixed python3 syntaxWarning: invalid escape sequenc +- skip clang's patches for epel8 that now gets clang-16 update +- fixed bz#2240127, Some h.264 mp4s do not play +- fixed python3 syntaxWarning: invalid escape sequence +- fix ffmpeg conflicts + * Fri Nov 10 2023 Arkady L. Shane - 119.0.6045.123-1.inferit - update to 119.0.6045.123, include following security fixes: high CVE-2023-5996: Use after free in WebAudio