public inbox for git-commits@fedoraproject.org
help / color / mirror / Atom feed
From: Than Ngo <than@redhat.com>
To: git-commits@fedoraproject.org
Subject: [rpms/chromium] epel9-next: Fix FTBFS with ffmpeg 7 in epel9-next
Date: Fri, 07 Aug 2026 16:59:11 GMT [thread overview]
Message-ID: <178612195181.1.1350280477878271016.rpms-chromium-416bc13dfa1f@fedoraproject.org> (raw)
A new commit has been pushed.
Repo : rpms/chromium
Branch : epel9-next
Commit : 416bc13dfa1f37e7c6dbfa05195ec1db2ca507af
Author : Than Ngo <than@redhat.com>
Date : 2026-08-07T18:57:38+02:00
Stats : +77/-174 in 5 file(s)
URL : https://src.fedoraproject.org/rpms/chromium/c/416bc13dfa1f37e7c6dbfa05195ec1db2ca507af?branch=epel9-next
Log:
Fix FTBFS with ffmpeg 7 in epel9-next
---
diff --git a/chromium-138-el9-ffmpeg-deprecated-apis.patch b/chromium-138-el9-ffmpeg-deprecated-apis.patch
deleted file mode 100644
index dc230c0..0000000
--- a/chromium-138-el9-ffmpeg-deprecated-apis.patch
+++ /dev/null
@@ -1,158 +0,0 @@
-https://chromium-review.googlesource.com/c/chromium/src/+/6506529
-
-Revert CL rolls ffmpeg as it breaks the build due to old ffmpeg version on EL9
-
-diff -up chromium-138.0.7204.49/media/ffmpeg/ffmpeg_common.cc.me chromium-138.0.7204.49/media/ffmpeg/ffmpeg_common.cc
---- chromium-138.0.7204.49/media/ffmpeg/ffmpeg_common.cc.me 2025-06-23 23:34:26.000000000 +0200
-+++ chromium-138.0.7204.49/media/ffmpeg/ffmpeg_common.cc 2025-06-25 15:13:17.958054182 +0200
-@@ -263,22 +263,22 @@ AVCodecID VideoCodecToCodecID(VideoCodec
- static VideoCodecProfile ProfileIDToVideoCodecProfile(int profile) {
- // Clear out the CONSTRAINED & INTRA flags which are strict subsets of the
- // corresponding profiles with which they're used.
-- profile &= ~AV_PROFILE_H264_CONSTRAINED;
-- profile &= ~AV_PROFILE_H264_INTRA;
-+ profile &= ~FF_PROFILE_H264_CONSTRAINED;
-+ profile &= ~FF_PROFILE_H264_INTRA;
- switch (profile) {
-- case AV_PROFILE_H264_BASELINE:
-+ case FF_PROFILE_H264_BASELINE:
- return H264PROFILE_BASELINE;
-- case AV_PROFILE_H264_MAIN:
-+ case FF_PROFILE_H264_MAIN:
- return H264PROFILE_MAIN;
-- case AV_PROFILE_H264_EXTENDED:
-+ case FF_PROFILE_H264_EXTENDED:
- return H264PROFILE_EXTENDED;
-- case AV_PROFILE_H264_HIGH:
-+ case FF_PROFILE_H264_HIGH:
- return H264PROFILE_HIGH;
-- case AV_PROFILE_H264_HIGH_10:
-+ case FF_PROFILE_H264_HIGH_10:
- return H264PROFILE_HIGH10PROFILE;
-- case AV_PROFILE_H264_HIGH_422:
-+ case FF_PROFILE_H264_HIGH_422:
- return H264PROFILE_HIGH422PROFILE;
-- case AV_PROFILE_H264_HIGH_444_PREDICTIVE:
-+ case FF_PROFILE_H264_HIGH_444_PREDICTIVE:
- return H264PROFILE_HIGH444PREDICTIVEPROFILE;
- default:
- DVLOG(1) << "Unknown profile id: " << profile;
-@@ -289,23 +289,23 @@ static VideoCodecProfile ProfileIDToVide
- static int VideoCodecProfileToProfileID(VideoCodecProfile profile) {
- switch (profile) {
- case H264PROFILE_BASELINE:
-- return AV_PROFILE_H264_BASELINE;
-+ return FF_PROFILE_H264_BASELINE;
- case H264PROFILE_MAIN:
-- return AV_PROFILE_H264_MAIN;
-+ return FF_PROFILE_H264_MAIN;
- case H264PROFILE_EXTENDED:
-- return AV_PROFILE_H264_EXTENDED;
-+ return FF_PROFILE_H264_EXTENDED;
- case H264PROFILE_HIGH:
-- return AV_PROFILE_H264_HIGH;
-+ return FF_PROFILE_H264_HIGH;
- case H264PROFILE_HIGH10PROFILE:
-- return AV_PROFILE_H264_HIGH_10;
-+ return FF_PROFILE_H264_HIGH_10;
- case H264PROFILE_HIGH422PROFILE:
-- return AV_PROFILE_H264_HIGH_422;
-+ return FF_PROFILE_H264_HIGH_422;
- case H264PROFILE_HIGH444PREDICTIVEPROFILE:
-- return AV_PROFILE_H264_HIGH_444_PREDICTIVE;
-+ return FF_PROFILE_H264_HIGH_444_PREDICTIVE;
- default:
- DVLOG(1) << "Unknown VideoCodecProfile: " << profile;
- }
-- return AV_PROFILE_UNKNOWN;
-+ return FF_PROFILE_UNKNOWN;
- }
-
- SampleFormat AVSampleFormatToSampleFormat(AVSampleFormat sample_format,
-@@ -441,7 +441,7 @@ bool AVCodecContextToAudioDecoderConfig(
- // TODO(dalecurtis): Just use the profile from the codec context if ffmpeg
- // ever starts supporting xHE-AAC.
- // FFmpeg provides the (defined_profile - 1) for AVCodecContext::profile
-- if (codec_context->profile == AV_PROFILE_UNKNOWN ||
-+ if (codec_context->profile == FF_PROFILE_UNKNOWN ||
- codec_context->profile == mp4::AAC::kXHeAAcType - 1) {
- // Errors aren't fatal here, so just drop any MediaLog messages.
- NullMediaLog media_log;
-@@ -659,16 +659,16 @@ bool AVStreamToVideoDecoderConfig(const
- break;
- case VideoCodec::kVP9:
- switch (codec_context->profile) {
-- case AV_PROFILE_VP9_0:
-+ case FF_PROFILE_VP9_0:
- profile = VP9PROFILE_PROFILE0;
- break;
-- case AV_PROFILE_VP9_1:
-+ case FF_PROFILE_VP9_1:
- profile = VP9PROFILE_PROFILE1;
- break;
-- case AV_PROFILE_VP9_2:
-+ case FF_PROFILE_VP9_2:
- profile = VP9PROFILE_PROFILE2;
- break;
-- case AV_PROFILE_VP9_3:
-+ case FF_PROFILE_VP9_3:
- profile = VP9PROFILE_PROFILE3;
- break;
- default:
-diff -up chromium-148.0.7778.96/media/filters/ffmpeg_aac_bitstream_converter.cc.me chromium-148.0.7778.96/media/filters/ffmpeg_aac_bitstream_converter.cc
---- chromium-148.0.7778.96/media/filters/ffmpeg_aac_bitstream_converter.cc.me 2026-05-05 15:25:38.693195463 +0200
-+++ chromium-148.0.7778.96/media/filters/ffmpeg_aac_bitstream_converter.cc 2026-05-05 15:26:52.282371003 +0200
-@@ -64,17 +64,17 @@ bool GenerateAdtsHeader(int codec,
- UNSAFE_TODO(hdr[1]) |= 1;
-
- switch (audio_profile) {
-- case AV_PROFILE_AAC_MAIN:
-+ case FF_PROFILE_AAC_MAIN:
- break;
-- case AV_PROFILE_AAC_HE:
-- case AV_PROFILE_AAC_HE_V2:
-- case AV_PROFILE_AAC_LOW:
-+ case FF_PROFILE_AAC_HE:
-+ case FF_PROFILE_AAC_HE_V2:
-+ case FF_PROFILE_AAC_LOW:
- UNSAFE_TODO(hdr[2]) |= (1 << 6);
- break;
-- case AV_PROFILE_AAC_SSR:
-+ case FF_PROFILE_AAC_SSR:
- UNSAFE_TODO(hdr[2]) |= (2 << 6);
- break;
-- case AV_PROFILE_AAC_LTP:
-+ case FF_PROFILE_AAC_LTP:
- UNSAFE_TODO(hdr[2]) |= (3 << 6);
- break;
- default:
-diff -up chromium-148.0.7778.96/media/filters/ffmpeg_aac_bitstream_converter_unittest.cc.me chromium-148.0.7778.96/media/filters/ffmpeg_aac_bitstream_converter_unittest.cc
---- chromium-148.0.7778.96/media/filters/ffmpeg_aac_bitstream_converter_unittest.cc.me 2026-05-05 15:27:26.490652155 +0200
-+++ chromium-148.0.7778.96/media/filters/ffmpeg_aac_bitstream_converter_unittest.cc 2026-05-05 15:27:34.149195358 +0200
-@@ -40,7 +40,7 @@ class FFmpegAACBitstreamConverterTest :
- base::byte_span_from_ref(base::allow_nonunique_obj, test_parameters_),
- 0);
- test_parameters_.codec_id = AV_CODEC_ID_AAC;
-- test_parameters_.profile = AV_PROFILE_AAC_MAIN;
-+ test_parameters_.profile = FF_PROFILE_AAC_MAIN;
- test_parameters_.ch_layout.nb_channels = 2;
- test_parameters_.extradata = extradata_header_;
- test_parameters_.extradata_size = sizeof(extradata_header_);
-@@ -126,7 +126,7 @@ TEST_F(FFmpegAACBitstreamConverterTest,
-
- EXPECT_EQ(profile, kAacMainProfile);
-
-- test_parameters_.profile = AV_PROFILE_AAC_HE;
-+ test_parameters_.profile = FF_PROFILE_AAC_HE;
- FFmpegAACBitstreamConverter converter_he(&test_parameters_);
-
- test_packet = ScopedAVPacket::Allocate();
-@@ -139,7 +139,7 @@ TEST_F(FFmpegAACBitstreamConverterTest,
-
- EXPECT_EQ(profile, kAacLowComplexityProfile);
-
-- test_parameters_.profile = AV_PROFILE_AAC_ELD;
-+ test_parameters_.profile = FF_PROFILE_AAC_ELD;
- FFmpegAACBitstreamConverter converter_eld(&test_parameters_);
-
- test_packet = ScopedAVPacket::Allocate();
diff --git a/chromium-151-el9-ffmpeg-AV_CODEC_FLAG_COPY_OPAQUE.patch b/chromium-151-el9-ffmpeg-AV_CODEC_FLAG_COPY_OPAQUE.patch
new file mode 100644
index 0000000..c974e1c
--- /dev/null
+++ b/chromium-151-el9-ffmpeg-AV_CODEC_FLAG_COPY_OPAQUE.patch
@@ -0,0 +1,13 @@
+diff -up chromium-151.0.7922.108/media/filters/ffmpeg_video_decoder.cc.me chromium-151.0.7922.108/media/filters/ffmpeg_video_decoder.cc
+--- chromium-151.0.7922.108/media/filters/ffmpeg_video_decoder.cc.me 2026-08-07 18:14:26.384429803 +0200
++++ chromium-151.0.7922.108/media/filters/ffmpeg_video_decoder.cc 2026-08-07 18:16:38.952427731 +0200
+@@ -507,7 +507,9 @@ bool FFmpegVideoDecoder::ConfigureDecode
+
+ codec_context_->opaque = this;
+ codec_context_->get_buffer2 = GetVideoBufferImpl;
++#ifdef AV_CODEC_FLAG_COPY_OPAQUE
+ codec_context_->flags |= AV_CODEC_FLAG_COPY_OPAQUE;
++#endif
+
+ // Timebase must be at most 1us because of web-facing APIs with
+ // microsecond-level precision such as VideoFrame.timestamp.
diff --git a/chromium-151-el9-ffmpeg-deprecated-apis.patch b/chromium-151-el9-ffmpeg-deprecated-apis.patch
new file mode 100644
index 0000000..01fdd28
--- /dev/null
+++ b/chromium-151-el9-ffmpeg-deprecated-apis.patch
@@ -0,0 +1,62 @@
+diff -up chromium-151.0.7922.108/media/ffmpeg/ffmpeg_common.cc.me chromium-151.0.7922.108/media/ffmpeg/ffmpeg_common.cc
+--- chromium-151.0.7922.108/media/ffmpeg/ffmpeg_common.cc.me 2026-08-07 18:23:24.072630765 +0200
++++ chromium-151.0.7922.108/media/ffmpeg/ffmpeg_common.cc 2026-08-07 18:36:06.609584648 +0200
+@@ -40,6 +40,23 @@
+ #endif // BUILDFLAG(ENABLE_PLATFORM_DOLBY_VISION)
+ #endif
+
++#if LIBAVCODEC_VERSION_MAJOR < 59
++#define AV_PROFILE_H264_CONSTRAINED FF_PROFILE_H264_CONSTRAINED
++#define AV_PROFILE_H264_INTRA FF_PROFILE_H264_INTRA
++#define AV_PROFILE_H264_BASELINE FF_PROFILE_H264_BASELINE
++#define AV_PROFILE_H264_MAIN FF_PROFILE_H264_MAIN
++#define AV_PROFILE_H264_EXTENDED FF_PROFILE_H264_EXTENDED
++#define AV_PROFILE_H264_HIGH FF_PROFILE_H264_HIGH
++#define AV_PROFILE_H264_HIGH_10 FF_PROFILE_H264_HIGH_10
++#define AV_PROFILE_H264_HIGH_422 FF_PROFILE_H264_HIGH_422
++#define AV_PROFILE_H264_HIGH_444_PREDICTIVE FF_PROFILE_H264_HIGH_444_PREDICTIVE
++#define AV_PROFILE_UNKNOWN FF_PROFILE_UNKNOWN
++#define AV_PROFILE_VP9_0 FF_PROFILE_VP9_0
++#define AV_PROFILE_VP9_1 FF_PROFILE_VP9_1
++#define AV_PROFILE_VP9_2 FF_PROFILE_VP9_2
++#define AV_PROFILE_VP9_3 FF_PROFILE_VP9_3
++#endif
++
+ namespace media {
+
+ namespace {
+diff -up chromium-151.0.7922.108/media/filters/ffmpeg_aac_bitstream_converter.cc.me chromium-151.0.7922.108/media/filters/ffmpeg_aac_bitstream_converter.cc
+--- chromium-151.0.7922.108/media/filters/ffmpeg_aac_bitstream_converter.cc.me 2026-08-07 18:30:06.414701017 +0200
++++ chromium-151.0.7922.108/media/filters/ffmpeg_aac_bitstream_converter.cc 2026-08-07 18:35:46.601409478 +0200
+@@ -8,6 +8,15 @@
+ #include "base/logging.h"
+ #include "media/ffmpeg/ffmpeg_common.h"
+
++#if LIBAVCODEC_VERSION_MAJOR < 59
++#define AV_PROFILE_AAC_MAIN FF_PROFILE_AAC_MAIN
++#define AV_PROFILE_AAC_HE FF_PROFILE_AAC_HE
++#define AV_PROFILE_AAC_HE_V2 FF_PROFILE_AAC_HE_V2
++#define AV_PROFILE_AAC_LOW FF_PROFILE_AAC_LOW
++#define AV_PROFILE_AAC_SSR FF_PROFILE_AAC_SSR
++#define AV_PROFILE_AAC_LTP FF_PROFILE_AAC_LTP
++#endif
++
+ namespace media {
+
+ namespace {
+diff -up chromium-151.0.7922.108/media/filters/ffmpeg_aac_bitstream_converter_unittest.cc.me chromium-151.0.7922.108/media/filters/ffmpeg_aac_bitstream_converter_unittest.cc
+--- chromium-151.0.7922.108/media/filters/ffmpeg_aac_bitstream_converter_unittest.cc.me 2026-08-07 18:33:07.673416313 +0200
++++ chromium-151.0.7922.108/media/filters/ffmpeg_aac_bitstream_converter_unittest.cc 2026-08-07 18:35:29.985376498 +0200
+@@ -15,6 +15,12 @@
+ #include "media/ffmpeg/scoped_av_packet.h"
+ #include "testing/gtest/include/gtest/gtest.h"
+
++#if LIBAVCODEC_VERSION_MAJOR < 59
++#define AV_PROFILE_AAC_MAIN FF_PROFILE_AAC_MAIN
++#define AV_PROFILE_AAC_HE FF_PROFILE_AAC_HE
++#define AV_PROFILE_AAC_ELD FF_PROFILE_AAC_ELD
++#endif
++
+ namespace media {
+
+ namespace {
diff --git a/chromium-el9-ffmpeg-AV_CODEC_FLAG_COPY_OPAQUE.patch b/chromium-el9-ffmpeg-AV_CODEC_FLAG_COPY_OPAQUE.patch
deleted file mode 100644
index 95b51c3..0000000
--- a/chromium-el9-ffmpeg-AV_CODEC_FLAG_COPY_OPAQUE.patch
+++ /dev/null
@@ -1,12 +0,0 @@
-diff -up chromium-140.0.7339.80/media/filters/ffmpeg_video_decoder.cc.me chromium-140.0.7339.80/media/filters/ffmpeg_video_decoder.cc
---- chromium-140.0.7339.80/media/filters/ffmpeg_video_decoder.cc.me 2025-09-05 02:43:56.666833745 +0200
-+++ chromium-140.0.7339.80/media/filters/ffmpeg_video_decoder.cc 2025-09-05 03:09:01.121397898 +0200
-@@ -486,7 +486,7 @@ bool FFmpegVideoDecoder::ConfigureDecode
-
- codec_context_->opaque = this;
- codec_context_->get_buffer2 = GetVideoBufferImpl;
-- codec_context_->flags |= AV_CODEC_FLAG_COPY_OPAQUE;
-+ //codec_context_->flags |= AV_CODEC_FLAG_COPY_OPAQUE;
-
- if (decode_nalus_) {
- codec_context_->flags2 |= AV_CODEC_FLAG2_CHUNKS;
diff --git a/chromium.spec b/chromium.spec
index 8074cc3..e7056e9 100644
--- a/chromium.spec
+++ b/chromium.spec
@@ -329,8 +329,8 @@ Patch96: chromium-142-crabbyavif-ftbfs-old-rust.patch
# system ffmpeg
# need for old ffmpeg 5.x on epel9
-Patch128: chromium-138-el9-ffmpeg-deprecated-apis.patch
-Patch129: chromium-el9-ffmpeg-AV_CODEC_FLAG_COPY_OPAQUE.patch
+Patch128: chromium-151-el9-ffmpeg-deprecated-apis.patch
+Patch129: chromium-151-el9-ffmpeg-AV_CODEC_FLAG_COPY_OPAQUE.patch
Patch130: chromium-148-el9-ffmpeg-build-error.patch
# disable the check
Patch131: chromium-107-proprietary-codecs.patch
@@ -1103,12 +1103,10 @@ Qt6 UI for chromium.
%patch -P96 -p1 -b .crabbyavif-ftbfs-old-rust
%if ! %{bundleffmpegfree}
-%if 0%{?rhel} == 9
%patch -P128 -p1 -b .el9-ffmpeg-deprecated-apis
%patch -P129 -p1 -b .el9-ffmpeg-AV_CODEC_FLAG_COPY_OPAQUE
%patch -P130 -p1 -b .el9-ffmpeg-build-error
%patch -P133 -p1 -b .el9-ffmpeg-5.1.x
-%endif
%patch -P134 -p1 -b .el9-ffmpeg-5.1.x
%patch -P131 -p1 -b .prop-codecs
%patch -P132 -p1 -b .sigtrap_system_ffmpeg
reply other threads:[~2026-08-07 16:59 UTC|newest]
Thread overview: [no followups] expand[flat|nested] mbox.gz Atom feed
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=178612195181.1.1350280477878271016.rpms-chromium-416bc13dfa1f@fedoraproject.org \
--to=than@redhat.com \
--cc=git-commits@fedoraproject.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox