coreos / rpm-ostree

⚛📦 Hybrid image/package system with atomic upgrades and package layering
https://coreos.github.io/rpm-ostree
Other
841 stars 192 forks source link

mesa->mesa-va-drivers-freeworld version mismatch regularly breaks mesa features #4592

Open Mershl opened 10 months ago

Mershl commented 10 months ago

Description Replacing mesa-va-drivers (fedora) with mesa-va-drivers-freeworld (rpmfusion) is a common procedure if the codec license situation does not affect the user for whatever reason. While the two repositories try to keep both packages in sync there are often days where one repository is ahead of the other.

This situation leads to breakage for the user because of the following issue seen on (rpm)-ostree managed systems.

Host system details

Silverblue 38

RemovedBasePackages: mesa-va-drivers
LayeredPackages: mesa-va-drivers-freeworld rpmfusion-free-release rpmfusion-nonfree-release

11th September 2023

mesa-freeworld updated to 23.1.7 on rpmfusion (stable). mesa 23.1.7 is currently in testing on fedora. latest available on fedora is 23.1.6 (stable).

Expected behavior

$ rpm-ostree update
Nothing to update. (mesa 23.1.6 has a dependency towards mesa-va-drivers 23.1.6, which is provided by mesa-va-drivers-freeworld 23.1.6)

Actual behavior

$ rpm-ostree update
Downgraded:
  mesa-va-drivers-freeworld 23.1.6-1.fc38 -> 23.0.2-1.fc38
  !! mesa-va-drivers-freeworld is instead mapped to its base version. This breaks hardware acceleration and potentially more on the system.

The issue solves itself once the repositories get back in sync. Still we should try to avoid these days of "Do not update or hardware acceleration will break on your system" everytime mesa updates.

travier commented 10 months ago

There is not much rpm-ostree can do here. This is inherent to the repos being built on two different infras, etc.

travier commented 10 months ago

Do you mean that the mesa version is effectively downgraded and does not pick the latest build from the RPM Fusion repos? This is unexpected.

Mershl commented 10 months ago

Let's take today's stable repos for F38 as an example:

fedora offers

mesa-23.1.6-1.fc38
mesa-23.1.5-1.fc38
mesa-23.1.4-1.fc38
mesa-23.1.3-1.fc38
mesa-23.1.2-1.fc38
mesa-23.1.1-1.fc38
mesa-23.0.3-5.fc38
mesa-23.0.3-3.fc38
mesa-23.0.3-1.fc38
mesa-23.0.2-2.fc38
mesa-23.0.1-1.fc38
mesa-23.0.0-1.fc38 

rpm-fusion offers:

mesa-freeworld-23.1.7-1.fc38 (newly released)
mesa-freeworld-23.1.6-1.fc38
mesa-freeworld-23.1.5-1.fc38
mesa-freeworld-23.1.4-1.fc38
mesa-freeworld-23.1.3-1.fc38
mesa-freeworld-23.1.2-1.fc38
mesa-freeworld-23.1.1-1.fc38
mesa-freeworld-23.0.3-1.fc38
mesa-freeworld-23.0.2-1.fc38

Running rpm-ostree update on a system that has mesa 23.1.6 + mesa-va-drivers-freeworld 23.1.6 installed will result in:

Downgraded:
  mesa-va-drivers-freeworld 23.1.6-1.fc38 -> 23.0.2-1.fc38

The system is then mesa 23.1.6 + mesa-va-drivers-freeworld 23.0.2 - which shows breakage.

Do you mean that the mesa version is effectively downgraded and does not pick the latest build from the RPM Fusion repos? This is unexpected.

It seems like the package manager is not recognizing mesa-freeworld 23.1.6 as a perfect fitting dependency, and instead falls back to the base version.

travier commented 10 months ago

Isn't the idea that you remove mesa and replace it with mesa-freeworld as well?

Mershl commented 10 months ago

The official rpmfusion docs (https://rpmfusion.org/Howto/OSTree) recommend only replacing mesa-va-drivers.

Excerpt from the docs: rpm-ostree override remove mesa-va-drivers --install mesa-va-drivers-freeworld