Firefox, Codecs and 9.5

If anyone has upgraded/installed 9.5 and wants to use the extra codecs with Firefox as described in Codecs / Video Playback in Firefox - then you probably got an error about requiring libdav1d.so.6 and no suitable package being able to provide that

This is because the upgraded (EPEL) libdav1d package now provides libdav1d.so.7 - which means waiting until rpmfusion update their packages to work with 9.5

I have worked/hacked around this (for now) by creating a new RPM that provides libdav1d.so.6 by simply extracting the files from the 9.4 binary RPM and re-packaging them - if anyone is interested, this is the RPM spec file I used:

Name:           libdav1d690
Version:        1.2.1
Release:        1.compat
Summary:        AV1 cross-platform Decoder
License:        BSD
URL:            https://code.videolan.org/videolan/dav1d
Source0:        https://dl.fedoraproject.org/pub/archive/epel/9.4/Everything/%{_arch}/Packages/l/libdav1d-1.2.1-1.el9.%{_arch}.rpm
BuildRequires:  rpm, cpio

%description
Library files for %{name}, the AV1 cross-platform Decoder.

%prep
# nothing to prep

%build
# nothing to build - our 'source' is pre-built

%install
rpm2cpio %{SOURCE0} | cpio -idm -D %{buildroot} .%{_libdir}\*

%files
%{_libdir}/libdav1d.so.6*

%changelog
* Fri Nov 22 2024 James Pearson <> - 1.2.1-1
- Compatibility package of libdav1d from el9.4 for el9.5+

Once the RPM has been built with rpmbuild and installed, the various codec RPMS from the rpmfusion repo can be installed

Couldn’t you just make a link to that file called libdav1d.so.6 ? I’ve done this for other similar situations. Since I’ve upgraded I can test this out later.

Actually I can’t test because I don’t want to install all the repo’s and required rpm’s on my server. So some other curious soul will have to test this.

Creating a symlink to the newer shared library may allow an application that uses the older shared library to work, but it won’t help rpm/dnf with what it requires i.e. any install of the rpmfusion packages/codecs RPMS will fail as rpm knows of nothing that provides the older shared library

OK, I see where my work around wouldn’t help with other rpm’s dependency issue. So it would help to note in your revised spec file what you actually changed. I know it may be apparent once you download and extract the spec file.

Thank you!
I build this with

rpmdev-setuptree
rpmbuild --undefine=_disable_source_fetch -ba libdav1d690.spec 

I just do not quite understand the difference between installing this repacked rpm and simply installing untouched 9.4 EPEL rpm libdav1d-1.2.1-1.el9 on 9.5

If you have EPEL as an enabled repo, then libdav1d will get updated to libdav1d-1.5.0-2.el9

You can use libdav1d-1.2.1-1.el9 on 9.5 - as long as you don’t update libdav1d

It’s in rpmfusion-free-updates-testing.

Will be pushed in a day or two at max.

Get it with:
dnf update --enablerepo=rpmfusion-free-updates-testing ffmpeg*

This is confusing:

ffmpeg is now in both “epel” and “rpmfusion”?

Epel could have an older version, rpmfusion a newer one. No different or more confusing than eg finding an older version of Gnome in RHEL/Rocky repos, and someone making a newer one in copr or some other repos - like EPEL do KDE for example.

This is a lovely analog.

Rocky has Qt. EPEL has KDE. KDE depends on Qt. When Qt libs did update, EPEL had to rebuild KDE. The period between Qt update and KDE update was perilous to the casual users of KDE.

EPEL has libdav1d. RPM Fusion has ffmpeg. The ffmpeg depends on libdav1d. The libdav1d did update and therefore RPM Fusion has to rebuild ffmpeg.

RPM Fusion has ffmpeg. EPEL has ffmpeg-free. The ffmpeg-free has most likely only a subset of ffmpeg – codecs and licenses and policies …

1 Like

It looks like rpmfusion now have an updated ffmpeg package that installs OK on el9.5 with the libdav1d package provided by EPEL