Can't update to Silverblue 38 — libavcodec-free conflicts with ffmpeg-libs


I’m trying to rebase to Fedora Silverblue 38:

rpm-ostree rebase fedora:fedora/38/x86_64/silverblue --uninstall rpmfusion-free-release-36-1.noarch --install --install

This results in the error:

error: Could not depsolve transaction; 1 problem detected:
Problem: conflicting requests

  • package ffmpeg-libs-6.0-6.fc38.i686 conflicts with libavcodec-free provided by libavcodec-free-6.0-4.fc38.x86_64
  • package ffmpeg-libs-6.0-6.fc38.x86_64 conflicts with libavcodec-free provided by libavcodec-free-6.0-4.fc38.x86_64

I tried adding --uninstall libavcodec-free to the command, but that didn’t help, and instead gave this error:

error: Package/capability ‘libavcodec-free’ is not currently requested

What do I do? Is it possible to update in a single step, or am I going to have to jump through hoops removing ffmpeg-libs first, then rebasing, then overriding libavcodec-free?

I’d appreciate any help. Thanks.

what’s your rpm-ostree status?
You have to remove versioning from rpmfusion. And use the one with non version.

rpm-ostree update --uninstall rpmfusion-free-release --uninstall rpmfusion-nonfree-release --install rpmfusion-free-release --install rpmfusion-nonfree-release

I believe that you would need to use the libavcodec-freeworld package to eliminate that error. It is an rpm provided from rpmfusion (as is ffmpeg) and on a workstation I use dnf swap libavcodec-free libavcodec-freeworld. I am not sure of the command to swap files like that with rpm-ostree, but it may be rpm-ostree --uninstall libavcodec-free --install libavcodec-freeworld or similar.

I had the same problems, and ended up uninstalling a lot of libcodec-free packages. Current status:

stijn@tangaloor: ~
$ rpm-ostree status 
State: idle
● fedora:fedora/38/x86_64/silverblue
                  Version: 38.20230424.0 (2023-04-24T01:59:45Z)
               BaseCommit: 6a288fa88c672a87dca40c44a9b4449e22e1c87c1acb4002f98d0c8b44e40885
             GPGSignature: Valid signature by 6A51BBABBA3D5467B6171221809A8D7CEB10B464
      RemovedBasePackages: libavfilter-free libavformat-free libpostproc-free libswresample-free libavutil-free libswscale-free libavcodec-free 6.0-4.fc38 mesa-va-drivers 23.0.2-2.fc38
          LayeredPackages: ffmpeg gstreamer1-plugins-bad-free-extras gstreamer1-plugins-bad-freeworld gstreamer1-plugins-ugly gstreamer1-vaapi libheif-hevc libvirt mesa-va-drivers-freeworld mesa-vdpau-drivers-freeworld neovim python3-lxml
                           rpmfusion-free-release rpmfusion-nonfree-release tmux virt-manager
            LocalPackages: brother-hl-l8250cdn-1.0-2.fc35.i686

Not sure whether I managed to do this in one command, it took quite a lot of reboots to get to this point… Hope this helps!