fedora-silverblue / issue-tracker

Fedora Silverblue issue tracker
https://fedoraproject.org/atomic-desktops/silverblue/
125 stars 3 forks source link

Testing repository should be disabled on Silverblue #549

Open A6GibKm opened 2 months ago

A6GibKm commented 2 months ago

At the moment a fresh Silverblue image (fedora:fedora/40/x86_64/silverblue) will have the testing-updates repository enabled by default (as per its repo file at /etc/yum.repos.d/). On the other hand the base image is built from the updates repository.

A few days ago I got an update to gnome-console bumping it to 46.0 which requires vte291 0.76.0, since I get updates from updates-testing console was upgraded, but since vte291 is part of the base image it stayed at 0.74.0 (latest version on the base image), resulting in gnome-console not being able to start due to missing symbols.

Maybe I don't understand how my system got into this condition, but this is the most I was able to debug it.

miabbott commented 2 months ago

Can you share the output of rpm-ostree status for your system?

I installed a F40 Silverblue on a VM and while I did find that the updates-testing repo was enabled, I didn't see gnome-console installed as part of the default set of packages. I'll guess you have gnome-console layered on your system?

Perhaps this is a result of moving from Rawhide -> F40 Beta -> F40 GA. Since Fedora 40 still hasn't be released yet, I could imagine that the updates-testing repo could be enabled during this transition period.

On the other hand, if gnome-console requires a newer version of vte291 and that version of vte291 is available via updates-testing, I would have guessed that the upgrade process would have pulled in the newer version.

Maybe you can try rpm-ostree override replace https://bodhi.fedoraproject.org/updates/FEDORA-2024-6dfb994cf3 ?

alternateved commented 2 months ago

I had a similar case. Installed Silverblue F40 before it was in Beta, when it was already branched out from Rawhide. Then installed gnome-console with rpm-ostree install gnome-console. One of the latest updates broke gnome-console due to missing symbols.

What helped was installing update from https://bodhi.fedoraproject.org/updates/FEDORA-2024-6dfb994cf3.

miabbott commented 2 months ago

Maybe you can try rpm-ostree override replace https://bodhi.fedoraproject.org/updates/FEDORA-2024-6dfb994cf3 ?

This was successful for me. Booted into a new deployment and could use gnome-console fine.

chrisawi commented 2 months ago

This particular issue was caused by a packaging bug in gnome-console: https://src.fedoraproject.org/rpms/gnome-console/c/ef40e412f150cb2d21ec257dd1c915ec85e87db4?branch=f40

It normally would have been held back until the base image updated.

I'm not sure if there's a good way to resolve the repo mismatch during this period where updates-testing is enabled by default. Would temporarily making silverblue an alias of testing/silverblue make sense? There wouldn't be any way to opt out though.

miabbott commented 2 months ago

I'm not sure if there's a good way to resolve the repo mismatch during this period where updates-testing is enabled by default. Would temporarily making silverblue an alias of testing/silverblue make sense? There wouldn't be any way to opt out though.

IMO, I don't think it is worth the effort to make changes at the infrastructure level for this particular issue. The rpm-ostree override replace workaround seems sufficient enough.

A6GibKm commented 2 months ago

I am not sure why this workaround should be applied every time one layered package gets updated. Why not just disable the testing repo? If users wanted those updates they would use the testing base image.

mcatanzaro commented 2 months ago

This particular issue was caused by a packaging bug in gnome-console

No, it seems like a bug that the gnome-console spec file have Requires on an arbitrary subset of the libraries that it builds against. It's not normal to add Requires for build dependencies. If you want it to be safe to install partial updates, then you need this draft RPM pull request.

I'd say this is squarely Silverblue's fault. Installing one package but not another from the same Fedora update is particularly egregious. I'm surprised you don't have a large number of similar bug reports....

travier commented 2 months ago

I'd say this is squarely Silverblue's fault. Installing one package but not another from the same Fedora update is particularly egregious. I'm surprised you don't have a large number of similar bug reports....

The testing repos are only enabled by default before the release so this does not impact users on stable releases. Beta releases also do not have the archive repo enabled yet, thus not offering "older" but matching package versions.

Package layering is always provided as a best effort as by definition we can not test all the arbitrary combinations that can be used.

travier commented 2 months ago

All that being said, we do not have a way to distinguish builds happening with the testing repos enabled from the normal builds in Fedora infra right now as far as I know, so we can not selectively disable the testing repos only on those refs.

Maybe we should "force" disable them by default for all refs.

travier commented 2 months ago

Tentative PR: https://pagure.io/workstation-ostree-config/pull-request/503

Maybe someone who knows more about pungi / the Fedora compose infra can help me figure out a better option.