Fedora 39 dnf upgrade problem with mesa-freeworld installed

Sorry for stupid question. The situation is that I installed clear Fedora 39 and then I swapped to mesa-freeworld by executing following commands:

sudo dnf swap ffmpeg-free ffmpeg --allowerasing
sudo dnf groupupdate multimedia --setop="install_weak_deps=False" --exclude=PackageKit-gstreamer-plugin
sudo dnf groupupdate sound-and-video
sudo dnf swap mesa-va-drivers mesa-va-drivers-freeworld
sudo dnf swap mesa-vdpau-drivers mesa-vdpau-drivers-freeworld

And yesterday I’ve got a problem during updating system via dnf upgrade:

 Problem 1: package mesa-va-drivers-freeworld-23.2.1-2.fc39.x86_64 from @System requires mesa-filesystem(x86-64) = 23.2.1, but none of the providers can be installed
  - cannot install both mesa-filesystem-23.3.0-1.fc39.x86_64 from updates and mesa-filesystem-23.2.1-2.fc39.x86_64 from @System
  - cannot install both mesa-filesystem-23.3.0-1.fc39.x86_64 from updates and mesa-filesystem-23.2.1-2.fc39.x86_64 from fedora
  - cannot install the best update candidate for package mesa-va-drivers-freeworld-23.2.1-2.fc39.x86_64
  - cannot install the best update candidate for package mesa-filesystem-23.2.1-2.fc39.x86_64
 Problem 2: package mesa-vdpau-drivers-freeworld-23.2.1-2.fc39.x86_64 from @System requires mesa-filesystem(x86-64) = 23.2.1, but none of the providers can be installed
  - cannot install both mesa-filesystem-23.3.0-1.fc39.x86_64 from updates and mesa-filesystem-23.2.1-2.fc39.x86_64 from @System
  - cannot install both mesa-filesystem-23.3.0-1.fc39.x86_64 from updates and mesa-filesystem-23.2.1-2.fc39.x86_64 from fedora
  - package mesa-dri-drivers-23.3.0-1.fc39.x86_64 from updates requires mesa-filesystem(x86-64) = 23.3.0-1.fc39, but none of the providers can be installed
  - cannot install the best update candidate for package mesa-vdpau-drivers-freeworld-23.2.1-2.fc39.x86_64
  - cannot install the best update candidate for package mesa-dri-drivers-23.2.1-2.fc39.x86_64
 Problem 3: problem with installed package mesa-vdpau-drivers-freeworld-23.2.1-2.fc39.x86_64
  - package mesa-vdpau-drivers-freeworld-23.2.1-2.fc39.x86_64 from @System requires mesa-filesystem(x86-64) = 23.2.1, but none of the providers can be installed
  - package mesa-vdpau-drivers-freeworld-23.2.1-2.fc39.x86_64 from rpmfusion-free requires mesa-filesystem(x86-64) = 23.2.1, but none of the providers can be installed
  - cannot install both mesa-filesystem-23.3.0-1.fc39.x86_64 from updates and mesa-filesystem-23.2.1-2.fc39.x86_64 from @System
  - cannot install both mesa-filesystem-23.3.0-1.fc39.x86_64 from updates and mesa-filesystem-23.2.1-2.fc39.x86_64 from fedora
  - package mesa-dri-drivers-23.3.0-1.fc39.x86_64 from updates requires mesa-filesystem(x86-64) = 23.3.0-1.fc39, but none of the providers can be installed
  - problem with installed package mesa-dri-drivers-23.2.1-2.fc39.x86_64
  - package mesa-dri-drivers-23.2.1-2.fc39.x86_64 from @System requires mesa-libglapi(x86-64) = 23.2.1-2.fc39, but none of the providers can be installed
  - package mesa-dri-drivers-23.2.1-2.fc39.x86_64 from fedora requires mesa-libglapi(x86-64) = 23.2.1-2.fc39, but none of the providers can be installed
  - cannot install both mesa-libglapi-23.3.0-1.fc39.x86_64 from updates and mesa-libglapi-23.2.1-2.fc39.x86_64 from @System
  - cannot install both mesa-libglapi-23.3.0-1.fc39.x86_64 from updates and mesa-libglapi-23.2.1-2.fc39.x86_64 from fedora
  - cannot install the best update candidate for package mesa-libglapi-23.2.1-2.fc39.x86_64
 Problem 4: mesa-dri-drivers-23.3.0-1.fc39.i686 from updates  does not belong to a distupgrade repository
  - package qemu-ui-opengl-2:8.1.1-1.fc39.x86_64 from @System requires mesa-dri-drivers, but none of the providers can be installed
  - package mesa-dri-drivers-23.3.0-1.fc39.x86_64 from updates requires mesa-filesystem(x86-64) = 23.3.0-1.fc39, but none of the providers can be installed
  - problem with installed package mesa-va-drivers-freeworld-23.2.1-2.fc39.x86_64
  - package mesa-va-drivers-freeworld-23.2.1-2.fc39.x86_64 from @System requires mesa-filesystem(x86-64) = 23.2.1, but none of the providers can be installed
  - package mesa-va-drivers-freeworld-23.2.1-2.fc39.x86_64 from rpmfusion-free requires mesa-filesystem(x86-64) = 23.2.1, but none of the providers can be installed
  - cannot install both mesa-filesystem-23.3.0-1.fc39.x86_64 from updates and mesa-filesystem-23.2.1-2.fc39.x86_64 from @System
  - cannot install both mesa-filesystem-23.3.0-1.fc39.x86_64 from updates and mesa-filesystem-23.2.1-2.fc39.x86_64 from fedora
  - mesa-dri-drivers-23.2.1-2.fc39.i686 from fedora  does not belong to a distupgrade repository
  - package mesa-dri-drivers-23.2.1-2.fc39.x86_64 from @System requires mesa-libglapi(x86-64) = 23.2.1-2.fc39, but none of the providers can be installed
  - package mesa-dri-drivers-23.2.1-2.fc39.x86_64 from fedora requires mesa-libglapi(x86-64) = 23.2.1-2.fc39, but none of the providers can be installed
  - cannot install both mesa-libglapi-23.3.0-1.fc39.x86_64 from updates and mesa-libglapi-23.2.1-2.fc39.x86_64 from @System
  - cannot install both mesa-libglapi-23.3.0-1.fc39.x86_64 from updates and mesa-libglapi-23.2.1-2.fc39.x86_64 from fedora
  - package mesa-libEGL-23.3.0-1.fc39.x86_64 from updates requires mesa-libglapi(x86-64) = 23.3.0-1.fc39, but none of the providers can be installed
  - cannot install the best update candidate for package qemu-ui-opengl-2:8.1.1-1.fc39.x86_64
  - cannot install the best update candidate for package mesa-libEGL-23.2.1-2.fc39.x86_64
============================================================================================================================================================================================
 Package                                             Architecture                           Version                                           Repository                               Size
============================================================================================================================================================================================
Upgrading:
 gjs                                                 x86_64                                 1.78.1-1.fc39                                     updates                                 517 k
 mesa-libxatracker                                   x86_64                                 23.3.0-1.fc39                                     updates                                 2.7 M
 mesa-vulkan-drivers                                 x86_64                                 23.3.0-1.fc39                                     updates                                  13 M
 vim-data                                            noarch                                 2:9.0.2167-1.fc39                                 updates                                  23 k
 vim-minimal                                         x86_64                                 2:9.0.2167-1.fc39                                 updates                                 805 k
Installing dependencies:
 llvm-libs                                           x86_64                                 17.0.6-1.fc39                                     updates                                  27 M
Skipping packages with conflicts:
(add '--best --allowerasing' to command line to force their upgrade):
 mesa-filesystem                                     x86_64                                 23.3.0-1.fc39                                     updates                                  18 k
 mesa-libglapi                                       x86_64                                 23.3.0-1.fc39                                     updates                                  52 k
Skipping packages with broken dependencies:
 mesa-dri-drivers                                    x86_64                                 23.3.0-1.fc39                                     updates                                  25 M
 mesa-libEGL                                         x86_64                                 23.3.0-1.fc39                                     updates                                 133 k

Transaction Summary
============================================================================================================================================================================================
Install  1 Package
Upgrade  5 Packages
Skip     4 Packages

Total download size: 44 M
Is this ok [y/N]:

I don’t actually understand what should I do. Should I use ‘–best --allowerasing’ , or should I just wait a couple of days (maybe this problem will be fixed by maintainers of the mesa-freeworld drivers?

I’d certainly try --best --allowerasing (WITHOUT -y) and see what it would want to do. It might, for example, want to remove the mesa-dri-drivers.i686 package. Whether that is acceptable to you just depends on how you use the system (e.g. if you use wine to run games, then you might not want to do that because your older 32-bit games might no longer work.) (Scratch that. In this case, waiting for the third-party repo to catch up is the best option.)

In any case, if you are using Btrfs, I’d recommend creating a snapshot of your root filesystem before you force the update: Make use of Btrfs snapshots to upgrade Fedora Linux with easy fallback - Fedora Magazine

Edit: Waiting a week or so in hope that the missing dependencies become available is also an entirely reasonable workaround. I’m not currently using the third-party mesa drivers, so I don’t know how common it is for them to fall behind the dependencies in Fedora’s main repos or how long it typically takes them to catch up. It does happen that package dependencies will become out-of-sync from time to time when using thrid-party repos though.

Edit: It looks like it is saying that the Fedora updates repo currently has mesa-filesystem-23.3 and it is trying to upgrade to that. But the third-party repo (whose package is currently installed on the @System) still has mesa-filesystem-23.2.

cannot install both mesa-filesystem-23.3.0-1.fc39.x86_64 from updates and mesa-filesystem-23.2.1-2.fc39.x86_64 from @System

So the update command is asking if you want to update mesa-filesystem to version 23.3 by replacing the currently-installed version 23.2 that came from rpmfusion-free with the newer version that is in the Fedora “updates” repo. (My guess is that you don’t want to do that.)

1 Like

Yes, just wait until rpmfusion has synchronized its repositories with the fedora repositories.

3 Likes

The Mesa 23.3 update was just pushed to stable, and RPM Fusion needs to update mesa-freeworld accordingly. According to #21 Ensure that most subpackages have the same version as mesa-filesystem, this issue is a package management concern. It’s advised not to do partial upgrades and ensure Mesa subpackages align with the mesa-filesystem version.

1 Like

From that PR:

According to Michel Dänzer, mesa-vulkan-drivers and mesa-libxatracker should be independent from any other Mesa packages.

Surprisingly, it sounds like it’s OK to let those two packages update separately. I’m a bit uncomfortable with that on principle though.

1 Like

That’s the problem with third-party repositories. The packages mesa-va-drivers-freeworld and mesa-vdpau-drivers-freeworld are already built in rawhide, but when they will be available at least in testing for F39\38 is not known.

It’s not a fatal error, just a warning. Don’t do anything special, update your system as usual, ignore the warning. It will resolve itself once rpmfusion catches up.

3 Likes

if you don’t want to wait, you can try testing Repository

rpm-ostree install https://download1.rpmfusion.org/free/fedora/updates/testing/39/x86_64/m/mesa-va-drivers-freeworld-23.3.1-1.fc39.x86_64.rpm

or

dnf install https://download1.rpmfusion.org/free/fedora/updates/testing/39/x86_64/m/mesa-va-drivers-freeworld-23.3.1-1.fc39.x86_64.rpm

should there be any problems it will work

just try again

Still waiting on them to do that…

No, people are not still waiting, they’re waiting again, because there has been a new mesa update recently. This situation will repeat with each mesa update. For the purpose of a system upgrade, just remove mesa-*-freeworld and install it back again when rpmfusion is synced. For just a regular update, the broken packages should be skipped, no harm done. If you don’t like this approach, don’t install mesa-*-freeworld, or contact rpmfusion folks and help them find a better solution :wink:

The new package seems to have been built. See https://koji.rpmfusion.org/koji/packageinfo?packageID=650

The rpmfusion mirrors seems to have problems at the moment, so I can’t see if the package has been pushed to the mirrors.

Update: rpmfusion works again and the new version of the mesa freeworld packages appeared.

I prefer to recommend that the user use --skip-broken to allow the update to continue in this situation. That keeps mesa working with out the need to remove & reinstall anything.

–skip-broken helps when using the console, but many users use Discover to update in KDE, or in Gnome the Gnome Software Centre and do not use the console. This does not solve the problem, but only postpones it, and as Kamil Páral already wrote, the whole thing repeats itself with every update of Mesa.

My method of dealing with this kind of situations - I keep updating normally, 3party stuff is not upgraded and then later 3party packages (mesa in this case) get updates and there are no more warnings. So far nothing bad happen with having couple not upgraded packages. 3party repos are a bit behind (few days-a week) official packages and it is sufficient to simply wait until maintainers will build new versions.

P.S.: I always update system and apps in CLI.

@computersavvy It might not have been clear, that by “system upgrade”, I meant dnf system-upgrade. In this case, I very much recommend removing -freeworld first (if broken).

For regular updates (dnf update), you might not even need to specify --skip-broken. At least in my testing, the mesa package are skipped automatically, with just a warning printed. But if you add it, it shouldn’t hurt anything.

If you actually need the packages mesa-va-drivers-freeworld and mesa-vdpau-drivers-freeworld and you remove them, you got a problem because you can’t install them again until rpmfusion provides the correct update.

You can replace them by installing mesa-va-drivers and mesa-vdpau-drivers but they will lack some functionality you may or may not need.

Of course. You need to pick whether you want to upgrade now, but lose acceleration of some codecs, or wait until rpmfusion catches up, and upgrade later.

I clearly differ in my suggestions there.

When doing a system-upgrade the very first prompt before the download will begin is to do the full dnf --refresh upgrade step. This is the stage where users should ensure their system is fully up to date with all installed packages. The upgrade of the current installation should be completed with no errors before starting the system-upgrade to avoid other unwanted side effects.

As Villy suggests, removing the freeworld packages may break functionality so it is a better suggestion to wait the (usually) short time for the packages in the 3rd party repos to be updated and the regular update to be successfully completed before doing the system-upgrade.

Removal of those packages is certainly possible but loss of functionality often has unwanted or unanticipated side effects so waiting is a better choice for 99% of users. A system-upgrade is normally not time critical.

2 Likes

Thanks for the information. Is there a way to achieve the same result on Fedora Atomic desktops? Currently, to allow a new system update and keep mesa-*-freeworld from rpmfusion, I use rpm-ostree override replace <old-mesa>, which does not seem to be an optimal solution.