Bug 2124073 - Rebuild ffmpeg to correctly dlopen OpenH264 2.3.0
Summary: Rebuild ffmpeg to correctly dlopen OpenH264 2.3.0
Keywords:
Status: CLOSED ERRATA
Alias: None
Product: Fedora
Classification: Fedora
Component: ffmpeg
Version: 37
Hardware: Unspecified
OS: Unspecified
unspecified
unspecified
Target Milestone: ---
Assignee: Neal Gompa
QA Contact:
URL:
Whiteboard: AcceptedFreezeException
Depends On:
Blocks: F37BetaFreezeException
TreeView+ depends on / blocked
 
Reported: 2022-09-04 13:37 UTC by Neal Gompa
Modified: 2022-09-06 20:44 UTC (History)
7 users (show)

Fixed In Version: ffmpeg-5.1.1-1.fc37
Doc Type: If docs needed, set a value
Doc Text:
Clone Of:
Environment:
Last Closed: 2022-09-06 20:44:28 UTC
Type: Task
Embargoed:


Attachments (Terms of Use)

Description Neal Gompa 2022-09-04 13:37:48 UTC
Description of problem:
Now that OpenH264 2.3.0 is out, ffmpeg needs to be rebuilt using its dlopen headers, since it uses a function that extracts the version string.

Failing to do so will cause ffmpeg to crash when it tries to load the OpenH264 library.

Version-Release number of selected component (if applicable):
5.1-1.fc37

Comment 1 Fedora Blocker Bugs Application 2022-09-04 13:38:52 UTC
Proposed as a Freeze Exception for 37-beta by Fedora user ngompa using the blocker tracking app because:

 This prevents programs using OpenH264 through ffmpeg from failing because of version mismatches.

Comment 2 Fedora Update System 2022-09-04 14:25:55 UTC
FEDORA-2022-c6d88f0fa2 has been submitted as an update to Fedora 37. https://bodhi.fedoraproject.org/updates/FEDORA-2022-c6d88f0fa2

Comment 3 Edgar Hoch 2022-09-04 18:49:59 UTC
Isn't this update of ffmpeg also neccessary for Fedora 36 because it also has OpenH264 2.3.0 ?!

I get errors playing some videos, for example from youtube or wetter.com.

Comment 4 Edgar Hoch 2022-09-04 19:57:33 UTC
(In reply to Edgar Hoch from comment #3)
> Isn't this update of ffmpeg also neccessary for Fedora 36 because it also
> has OpenH264 2.3.0 ?!

Just a note:
I tried to build ffmpeg-5.1.1 for Fedora 36 with mock with ffmpeg-5.1.1-1.fc37.src.rpm . It fails because configure requires libjxl >= 0.7.0.

But libjxl version 0.7.0 exists currently only as release candidate. https://github.com/libjxl/libjxl/releases
koji contains some builds of release candidates for Fedora 37. https://koji.fedoraproject.org/koji/packageinfo?packageID=33812
Hopefully there will be a release of libjxl before freeze of Fedora 37?

Would it be possible that OpenH264 2.3.0 should not have been released for Fedora 36 because of these problems?

Comment 5 Fedora Update System 2022-09-04 21:19:01 UTC
FEDORA-2022-c6d88f0fa2 has been pushed to the Fedora 37 testing repository.
Soon you'll be able to install the update with the following command:
`sudo dnf upgrade --enablerepo=updates-testing --refresh --advisory=FEDORA-2022-c6d88f0fa2`
You can provide feedback for this update here: https://bodhi.fedoraproject.org/updates/FEDORA-2022-c6d88f0fa2

See also https://fedoraproject.org/wiki/QA:Updates_Testing for more information on how to test updates.

Comment 6 Neal Gompa 2022-09-05 07:58:58 UTC
(In reply to Edgar Hoch from comment #3)
> Isn't this update of ffmpeg also neccessary for Fedora 36 because it also
> has OpenH264 2.3.0 ?!
> 
> I get errors playing some videos, for example from youtube or wetter.com.

I didn't know OpenH264 2.3.0 was released to F36. It was only built for F37+ when I last looked.

I'll have to prepare a separate update for ffmpeg 5.0 in F36, but yes, an update will be necessary.

Comment 7 Michael Catanzaro 2022-09-06 13:36:48 UTC
OpenH264 contains an ABI break even though it did not bump soname. The only correct thing to do here is pull the update . Please don't rebuild ffmpeg against the new OpenH264: it's just going to create a bigger mess. There will be a corrected 2.3.1 release soon.

References:

https://pagure.io/releng/issue/10938#comment-815100

https://github.com/cisco/openh264/issues/3564

Comment 8 Michael Catanzaro 2022-09-06 13:39:09 UTC
(In reply to Neal Gompa from comment #6)
> I didn't know OpenH264 2.3.0 was released to F36. It was only built for F37+
> when I last looked.

F36 needs to stay on 2.2.0 forever due to the ABI break, unless you're prepared to rebuild *everything* that depends on it.

Then again, that's what we'll need to do with F37 anyway....

Comment 9 Kalev Lember 2022-09-06 14:03:25 UTC
Michael, this isn't helping at all... Could you talk to me please next time instead of going and asking people to pull updates and telling people to not bother fixing things?

Neal: Yes, would be good if you could update ffmpeg on F36 as well for the new openh264 release. Sorry, I didn't realize that ffmpeg is dlopening openh264 and thought that all of the openh264 ABI consumers that we have (gstreamer1-plugin-openh264 and mozilla-openh264) came from the same SRPM as openh264 and get automatically rebuilt whenever openh264 gets updated because of that. Mea culpa! I'll look out to make sure we get ffmpeg updated together with openh264 next time.

Comment 10 Michael Catanzaro 2022-09-06 14:14:12 UTC
(In reply to Kalev Lember from comment #9)
> Michael, this isn't helping at all... Could you talk to me please next time
> instead of going and asking people to pull updates and telling people to not
> bother fixing things?

We don't have much choice here. An ABI break without a soname bump is never acceptable: it's going to cause apps to start crashing or misbehaving. This goes beyond our Firefox/GStreamer/ffmpeg plugins. In the upstream bug I posted a Debian codesearch result showing all the various places where the affected struct is allocated on the stack in a bunch of different applications.

Comment 11 Michael Catanzaro 2022-09-06 14:17:27 UTC
And unfortunately this did hit F36, so now we have a big mess. :(

Comment 12 Adam Williamson 2022-09-06 15:30:06 UTC
+4 in https://pagure.io/fedora-qa/blocker-review/issue/891 , marking accepted.

Comment 13 Fedora Update System 2022-09-06 20:44:28 UTC
FEDORA-2022-c6d88f0fa2 has been pushed to the Fedora 37 stable repository.
If problem still persists, please make note of it in this bug report.


Note You need to log in before you can comment on or make changes to this bug.