Fedora 39 Unable to install multimedia plugins from RPM Fusion repos due to conflicts in

Problem

Can’t install plugins for movies and music from RPM Fusion free repository. Installed gstreamer and lame packages but after using ‘sudo dnf group upgrade --with-optional Multimedia’ to install codecs conflicts arise.

james@fedora:~$ sudo dnf group upgrade --with-optional Multimedia
[sudo] password for james:
Last metadata expiration check: 3:30:52 ago on Sat 30 Sep 2023 21:37:26 BST.
No match for group package “gimp-heif-plugin”
Error:
Problem 1: problem with installed package libswscale-free-6.0-11.fc39.x86_64

  • package ffmpeg-libs-6.0-16.fc39.x86_64 from rpmfusion-free conflicts with libswscale-free provided by libswscale-free-6.0-11.fc39.x86_64 from @System
  • package ffmpeg-libs-6.0-16.fc39.x86_64 from rpmfusion-free conflicts with libswscale-free provided by libswscale-free-6.0-11.fc39.x86_64 from fedora
  • package ffmpeg-6.0-16.fc39.x86_64 from rpmfusion-free requires ffmpeg-libs(x86-64) = 6.0-16.fc39, but none of the providers can be installed
  • conflicting requests
    Problem 2: ffmpeg-libs-6.0-16.fc39.i686 from rpmfusion-free does not belong to a distupgrade repository
  • conflicting requests
  • problem with installed package libswresample-free-6.0-11.fc39.x86_64
  • package ffmpeg-libs-6.0-16.fc39.x86_64 from rpmfusion-free conflicts with libswresample-free provided by libswresample-free-6.0-11.fc39.x86_64 from @System
  • package ffmpeg-libs-6.0-16.fc39.x86_64 from rpmfusion-free conflicts with libswresample-free provided by libswresample-free-6.0-11.fc39.x86_64 from fedora
  • problem with installed package firefox-118.0-1.fc39.x86_64
  • package ffmpeg-libs-6.0-16.fc39.i686 from rpmfusion-free conflicts with libavcodec-free provided by libavcodec-free-6.0-11.fc39.x86_64 from fedora
  • package ffmpeg-libs-6.0-16.fc39.x86_64 from rpmfusion-free conflicts with libavcodec-free provided by libavcodec-free-6.0-11.fc39.x86_64 from fedora
  • problem with installed package libavcodec-free-6.0-11.fc39.x86_64
  • package ffmpeg-libs-6.0-16.fc39.i686 from rpmfusion-free conflicts with libavcodec-free provided by libavcodec-free-6.0-11.fc39.x86_64 from @System
  • package ffmpeg-libs-6.0-16.fc39.x86_64 from rpmfusion-free conflicts with libavcodec-free provided by libavcodec-free-6.0-11.fc39.x86_64 from @System
    (try to add ‘–allowerasing’ to command line to replace conflicting packages or ‘–skip-broken’ to skip uninstallable packages)

Cause

Not yet known.

Related Issues

Bugzilla report: #NNNN

Workarounds

None yet.

Here is one link for doing just that.

In general, I use the rpmfusion repo and install everything available there, including lame, the gstreamer1 packages, vlc, mplayer, and more. Especially ffmpeg (the version from rpmfusion), and libavcodec-freeworld, You have to remove the libavcodec-free package from fedora and install the freeworld one from rpmfusion sudo dnf swap libavcodec-free libavcodec-freeworld

Fedora is required to limit the codecs they provide due to copyright, licensing, etc. The packages from rpmfusion fill that gap.

I do not use the group install for the exact reason you see. The group is dependent upon the fedora repo and some things from rpmfusion might conflict.

In fact I just installed most of the needed packages with sudo dnf install ffmpeg libavcodec-freeworld --best --allowerasing and it worked for me on F39. Dnf is smart enough to figure it out if allowed to do so with the proper options. This even took care of the swap that I described above.

1 Like

I’ve been running Fedora WS for 5 years now and never seen this conflict issue following the documentation to install codecs. I’ve done fresh installs of almost every new version too. I’ll wait until the stable release comes out and retry it I think but maybe the documentation should be updated if this is a common problem for others - searching doesn’t seem to suggest it’s a common problem though.

I agree with the fact this seems changed.

I think it has to do with the fact that fedora is trying to include everything they can, even to the point that they are stripping codecs out and providing packages without specific codecs but the main package is there.
An example is ffmpeg. Fedora now provides ffmpeg-free which seems most of the package, but without certain codecs. Rpmfusion used to be the best place to get ffmpeg and fedora had no part of it. Now a user can install ffmpeg from rpmfusion which also pulls in ffmpeg-libs to include the removed codecs from ffmpeg-free . Note from the below that installing ffmpeg from rpmfusion does not conflict with ffmpeg-free from fedora. One complements the other.

Libavcodec-freeworld from rpmfusion removes several libav… smaller packages from fedora that conflict.

On a newly installed F39 system I used
dnf install ffmpeg libavcodec-freeworld lame --allowerasing and the result was

Installed:
  ffmpeg-6.0-16.fc39.x86_64                             ffmpeg-libs-6.0-16.fc39.x86_64     lame-3.100-15.fc39.x86_64               
  libavcodec-freeworld-6.0-16.fc39.x86_64               libavdevice-6.0-16.fc39.x86_64     mozilla-openh264-2.3.1-2.fc39.x86_64    
  openal-soft-1.23.1-2.fc39.x86_64                      openh264-2.3.1-2.fc39.x86_64       vmaf-models-2.3.0-6.fc39.noarch         
  x264-libs-0.164-8.20220602gitbaee400f.fc39.x86_64     x265-libs-3.5-6.fc39.x86_64       
Removed:
  libavcodec-free-6.0-11.fc39.x86_64        libavfilter-free-6.0-11.fc39.x86_64        libavformat-free-6.0-11.fc39.x86_64         
  libavutil-free-6.0-11.fc39.x86_64         libpostproc-free-6.0-11.fc39.x86_64        libswresample-free-6.0-11.fc39.x86_64       
  libswscale-free-6.0-11.fc39.x86_64       

It is not, in my mind, enough to be documented as a common problem since resolving conflicts is something users must face as a standard practice when using dnf and installing software from a 3rd party repo such as rpmfusion. Packages change frequently and thus conflicts change as well.

The documentation is correct even though there are conflicts occurring that are caused by fedora splitting out various parts of the codec packages and tagging them with the -free part of the name to denote they do not contain copyright, license, or proprietary pieces and can be distributed by fedora.

I am currently rewriting/updating a postinstall script I made for an older version of Fedora.

Would there be any harm in including that command you wrote to run on every new Fedora install?

Yes, No, Maybe.
It totally depends upon conditions. Those packages come from the rpmfusion-free repo and that is not installed/enabled on a default fedora installation. You would need to do some tweaking to manage that.

I do not speak as any part of fedora management, (I am only a user), but as long as your package or script is not distributed by fedora themselves then it would seem that you may be able to do what is necessary to make it work, including pulling in the necessary dependencies. Users are allowed to make whatever changes they wish.

This is just a nitpick, but there’s no reason to install both ffmpeg-libs and libavcodec-freeworld. The latter is meant to be used alongside Fedora’s ffmpeg-free packages, whereas the former replaces them wholesale.

So…
After enabling rpm fusion
And then installing the multimedia group, gstreamer and lame

I could simply do sudo dnf install -y libavcodec-freeworld to finish the process?

That is a valid option in isolation, but probably not when combined with RPM Fusion’s other recommendations. RPM Fusion adds their ffmpeg to the multimedia group, so if you run their dnf groupupdate command (which is really dnf group install), it may fail unless you’ve switched to their ffmpeg (or you add --allowerasing so dnf can do that for you).

I found this message from GloriousEggroll’s Discord (he maintains a Fedora based distro)

typically keeping all ffmpeg-free packages and just installing libavcodec-freeworld alongside them is enough

no need for full ffmpeg swap

libavcodec is the audio/video codecs from ffmpeg full, custom-built to work alongside the free version from fedora, it’s meant to give the codec functionality without requiring a full swap

Unless there’s actually something incorrect here, I assume I can trust this statement.

Yes, libavcodec-freeworld should work and would probably be my preference if I weren’t on Silverblue and relying on flatpaks. I was just pointing out that installing the multimedia group will try to swap to ffmpeg from RPM Fusion.

If this old comment is still accurate, then it seems ffmpeg isn’t a mandatory package within the Multimedia group.

My bad, I think I completely misunderstood this. So because --with-optional is included in this command sudo dnf group upgrade -y --with-optional Multimedia it will install ffmpeg-libs anyway.

So that means if I used that command ffmpeg-libs would already be available, making libavcodec-freeworld unnecessary?

It does not swap anything directly.
ffmpeg from rpmfusion also pulls in ffmpeg-libs which replaces (removes) libswscale-free. Ffmpeg-free from fedora remains and they work together.

I don’t know how that works with Silverblue, but this is what happens for me with Workstation. (I just tested that)

Installing libavcodec-freeworld used to require removal of several different “*-free” packages (on F38) that conflicted and are part of the fedora attempt to better support multimedia. I just tested that on F39 and now note that it only pulls in 3 packages as dependencies (x264-libs, x265-libs, & openh264) but no longer removes the “*-free” packages.

This appears to mean libavcodec-freeworld may be required to use any multimedia that are encoded with the h264 or h265 codecs.

In a F38 VM with RPM Fusion installed, dnf groupinfo multimedia shows ffmpeg as mandatory. F39 appears to be the same.

Note that there’s a difference between upgrading and installing a group. RPM Fusion suggests running dnf groupupdate (a deprecated alias for dnf group install) which installs all (mandatory) packages in the group. dnf group upgrade will only install packages new to a group, and in my testing, the ones RPM Fusion adds don’t seem to qualify.

I feel like that page should probably be updated with a bunch of notes and clarifications.

Is pagure the place where feedback about the docs should be sent? Does it share the same account database as this forum or do I need to make a new account again?

I just tested on a vanilla, new F39 VM as shown below. The only change I did was to enable the rpmfusion-free and nonfree repos before running this command.

$ sudo dnf group install multimedia --allowerasing
Last metadata expiration check: 0:00:17 ago on Thu 14 Dec 2023 03:33:00 PM CST.
No match for group package "gimp-heif-plugin"
Dependencies resolved.
=====================================================================================================================
 Package                             Arch      Version                               Repository                 Size
=====================================================================================================================
Installing group/module packages:
 ffmpeg                              x86_64    6.0.1-3.fc39                          rpmfusion-free-updates    1.7 M
 gstreamer1-plugin-openh264          x86_64    1.22.1-1.fc39                         fedora-cisco-openh264      24 k
 gstreamer1-plugins-bad-freeworld    x86_64    1:1.22.7-1.fc39                       rpmfusion-free-updates    229 k
 gstreamer1-plugins-ugly             x86_64    1:1.22.7-1.fc39                       rpmfusion-free-updates    213 k
 libheif-freeworld                   x86_64    1.16.2-2.fc39                         rpmfusion-free             51 k
Installing dependencies:
 faad2-libs                          x86_64    1:2.11.1-1.fc39                       rpmfusion-free-updates    217 k
 ffmpeg-libs                         x86_64    6.0.1-3.fc39                          rpmfusion-free-updates    8.0 M
 libavdevice                         x86_64    6.0.1-3.fc39                          rpmfusion-free-updates     72 k
 libdca                              x86_64    0.0.7-9.fc39                          fedora                    114 k
 libde265                            x86_64    1.0.13-1.fc39                         rpmfusion-free-updates    235 k
 libfreeaptx                         x86_64    0.1.1-5.fc39                          rpmfusion-free             30 k
 librtmp                             x86_64    2.4-23.20210219.gitf1b83c1.fc39       rpmfusion-free             77 k
 mjpegtools-libs                     x86_64    2.2.1-4.fc39                          rpmfusion-free            169 k
 mozilla-openh264                    x86_64    2.3.1-2.fc39                          fedora-cisco-openh264     427 k
 openal-soft                         x86_64    1.23.1-2.fc39                         fedora                    586 k
 openh264                            x86_64    2.3.1-2.fc39                          fedora-cisco-openh264     420 k
 pipewire-codec-aptx                 x86_64    1.0.0-1.fc39                          rpmfusion-free-updates     26 k
 svt-hevc-libs                       x86_64    1.5.1-5.fc39                          rpmfusion-free            528 k
 x264-libs                           x86_64    0.164-10.20231001git31e19f92.fc39     rpmfusion-free            701 k
 x265-libs                           x86_64    3.5-6.fc39                            rpmfusion-free            1.3 M
Installing weak dependencies:
 vmaf-models                         noarch    2.3.0-6.fc39                          fedora                    259 k
Removing dependent packages:
 libavcodec-free                     x86_64    6.0.1-2.fc39                          @updates                  9.5 M
 libavfilter-free                    x86_64    6.0.1-2.fc39                          @updates                  4.4 M
 libavformat-free                    x86_64    6.0.1-2.fc39                          @updates                  2.6 M
 libavutil-free                      x86_64    6.0.1-2.fc39                          @updates                  926 k
 libpostproc-free                    x86_64    6.0.1-2.fc39                          @updates                   90 k
 libswresample-free                  x86_64    6.0.1-2.fc39                          @updates                  151 k
 libswscale-free                     x86_64    6.0.1-2.fc39                          @updates                  571 k
Installing Groups:
 Multimedia                                                                                                         

Note that a great majority of the packages installed come from rpmfusion-free.

Do you mean the Quick Docs page linked in the second post? It uses the same account (FAS). There are buttons in the top right corner for history/edit/bug report, and contribution instructions at the bottom of the page.

That page could use some cleanup. If Fedora Docs is going to recommend installing codecs from RPM Fusion, it probably should be something like:

sudo dnf install libavcodec-freeworld

# Hardware accel for Intel
sudo dnf install intel-media-driver

# Hardware accel for AMD
sudo dnf swap mesa-va-drivers mesa-va-drivers-freeworld

Anything more than that should be left to RPM Fusion’s Multimedia page, even if that has gotten too complicated (IMHO).

P.S. It appears that RPM Fusion’s comps is being adjusted to not pull in ffmpeg, at least for F40+: Commits · rpmfusion-infra/rpmfusion-free-comps · GitHub

I mean the domain below. I also found an older post questioning the clarity of the multimedia section of the official docs.

https://pagure.io/fedora-docs/quick-docs/issue/555

I’ve opened this now, does that help improve the steps?

https://pagure.io/fedora-docs/quick-docs/pull-request/671

(The primary issue is that as packages are moved to Fedora, they may conflict with bits from RPM Fusion. So the docs need to be updated when this does happen.)

Do you also link to https://rpmfusion.org/Howto/Multimedia?

2 Likes