public inbox for git-commits@fedoraproject.org
help / color / mirror / Atom feed
* [rpms/chromium] epel9-next: Fix FTBFS due to old ffmpeg version on EL9
@ 2026-08-07 16:07 Than Ngo
0 siblings, 0 replies; only message in thread
From: Than Ngo @ 2026-08-07 16:07 UTC (permalink / raw)
To: git-commits
A new commit has been pushed.
Repo : rpms/chromium
Branch : epel9-next
Commit : 4174ac0359b0915e26630ba14ec2a90199a171da
Author : Than Ngo <than@redhat.com>
Date : 2025-06-25T18:27:36+02:00
Stats : +160/-0 in 2 file(s)
URL : https://src.fedoraproject.org/rpms/chromium/c/4174ac0359b0915e26630ba14ec2a90199a171da?branch=epel9-next
Log:
Fix FTBFS due to old ffmpeg version on EL9
---
diff --git a/chromium-138-el9-ffmpeg-deprecated-apis.patch b/chromium-138-el9-ffmpeg-deprecated-apis.patch
new file mode 100644
index 0000000..b8d0a85
--- /dev/null
+++ b/chromium-138-el9-ffmpeg-deprecated-apis.patch
@@ -0,0 +1,158 @@
+https://chromium-review.googlesource.com/c/chromium/src/+/6506529
+
+Revert CL rolls ffmpeg for M138 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-138.0.7204.49/media/filters/ffmpeg_aac_bitstream_converter.cc.me chromium-138.0.7204.49/media/filters/ffmpeg_aac_bitstream_converter.cc
+--- chromium-138.0.7204.49/media/filters/ffmpeg_aac_bitstream_converter.cc.me 2025-06-23 23:34:26.000000000 +0200
++++ chromium-138.0.7204.49/media/filters/ffmpeg_aac_bitstream_converter.cc 2025-06-25 15:13:17.958541707 +0200
+@@ -68,17 +68,17 @@ bool GenerateAdtsHeader(int codec,
+ 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:
+ hdr[2] |= (1 << 6);
+ break;
+- case AV_PROFILE_AAC_SSR:
++ case FF_PROFILE_AAC_SSR:
+ hdr[2] |= (2 << 6);
+ break;
+- case AV_PROFILE_AAC_LTP:
++ case FF_PROFILE_AAC_LTP:
+ hdr[2] |= (3 << 6);
+ break;
+ default:
+diff -up chromium-138.0.7204.49/media/filters/ffmpeg_aac_bitstream_converter_unittest.cc.me chromium-138.0.7204.49/media/filters/ffmpeg_aac_bitstream_converter_unittest.cc
+--- chromium-138.0.7204.49/media/filters/ffmpeg_aac_bitstream_converter_unittest.cc.me 2025-06-23 23:34:26.000000000 +0200
++++ chromium-138.0.7204.49/media/filters/ffmpeg_aac_bitstream_converter_unittest.cc 2025-06-25 15:13:17.958839001 +0200
+@@ -41,7 +41,7 @@ class FFmpegAACBitstreamConverterTest :
+ // Set up reasonable aac parameters
+ memset(&test_parameters_, 0, sizeof(AVCodecParameters));
+ 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_);
+@@ -131,7 +131,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();
+@@ -143,7 +143,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.spec b/chromium.spec
index 88e310c..e39b364 100644
--- a/chromium.spec
+++ b/chromium.spec
@@ -279,6 +279,7 @@ Patch92: chromium-138-checkversion-nodejs.patch
# system ffmpeg
# need for old ffmpeg 5.x on epel9
+Patch128: chromium-138-el9-ffmpeg-deprecated-apis.patch
Patch129: chromium-125-ffmpeg-5.x-reordered_opaque.patch
Patch130: chromium-107-ffmpeg-5.x-duration.patch
# disable the check
@@ -978,6 +979,7 @@ Qt6 UI for chromium.
%if ! %{bundleffmpegfree}
%if 0%{?rhel} == 9
+%patch -P128 -p1 -b .el9-ffmpeg-deprecated-apis
%patch -P129 -p1 -R -b .ffmpeg-5.x-reordered_opaque
%patch -P130 -p1 -b .ffmpeg-5.x-duration
%endif
^ permalink raw reply related [flat|nested] only message in thread
only message in thread, other threads:[~2026-08-07 16:07 UTC | newest]
Thread overview: (only message) (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2026-08-07 16:07 [rpms/chromium] epel9-next: Fix FTBFS due to old ffmpeg version on EL9 Than Ngo
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox