Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

package layering: split versions between OSTree base vs yum repo #400

Closed
dustymabe opened this issue Feb 26, 2020 · 5 comments · Fixed by coreos/fedora-coreos-config#673
Closed
Labels
area/packaging component/rpm-ostree infra Related to Fedora Infrastructure team work/input

Comments

@dustymabe
Copy link
Member

  • NOTE: we currently discourage package layering in FCOS as it makes updates less reliable. The root of this ticket is part of the reason why, but this issue is not specific to FCOS as mentioned below.

This is a problem that periodically plagued the Atomic Host community, periodically does plague the Silverblue community and is starting to creep into FCOS as users attempt to package layer rpms that aren't included in the base. The user attempts a package layering operation that fails because the versions of packages in the base OS are out of sync with the versions in the yum repositories. There is also an issue against the RPM-OSTree repo for this problem, but it's a high level problem and a solution will probably take some coordination at multiple levels so we're creating a new ticket here to track that coordination.

The user ends up with an error like:

Forbidden base package replacements:
  libgcc 8.2.1-6.fc29 -> 8.3.1-2.fc29 (updates)

We need to coordinate with Fedora releng, Fedora Silverblue working group, and the RPM-OSTree maintainers, in order to try to come up with a better solution to this problem. @owtaylor from the Silverblue team did a nice writeup on the problem last year in this public google document, so there is much more context about the problem and possible solutions in there.

@cgwalters
Copy link
Member

Feels like a dup of #401

@dustymabe
Copy link
Member Author

Feels like a dup of #401

They are closely related, but originally intentionally left separate. #400 is the problem we are seeing. #401 is a potential solution. I'm working on #401 now so hopefully we'll see some progress in that area soon.

@lucab lucab added area/packaging component/rpm-ostree infra Related to Fedora Infrastructure team work/input labels Aug 6, 2020
dustymabe added a commit to dustymabe/fedora-coreos-config that referenced this issue Oct 7, 2020
This is the culmination of a lot of work to make package layering
more reliable. This archive repo provides all packages that have
ever been in the updates repository, which means there should always
be a solution that will depsolve given the existing set of base layer
packages.

Pairing this along with coreos/rpm-ostree#2125
means that we should finally see less of the split base layer vs update
repo problem and see less `Forbidden base package replacements` errors.

Fixes: coreos/fedora-coreos-tracker#400
dustymabe added a commit to dustymabe/fedora-coreos-config that referenced this issue Oct 7, 2020
This is the culmination of a lot of work to make package layering
more reliable. This archive repo provides all packages that have
ever been in the updates repository, which means there should always
be a solution that will depsolve given the existing set of base layer
packages.

Pairing this along with coreos/rpm-ostree#2125
means that we should finally see less of the split base layer vs update
repo problem and see less `Forbidden base package replacements` errors.

Fixes: coreos/fedora-coreos-tracker#400
@dustymabe dustymabe added the status/pending-testing-release Fixed upstream. Waiting on a testing release. label Oct 7, 2020
@dustymabe
Copy link
Member Author

This is pretty much done now. It's hitting testing-devel over in coreos/fedora-coreos-config#673 and will be in the next testing release.

  • How does this affect end users?

The idea is that you continue to do what you were doing in the past and from the next set of releases and on you should hopefully never hit the Forbidden base package replacements: problem ever again, especially if you are on stable or testing streams. There is some opportunity for issues during Fedora major "pre-release" time (which is where the next stream is right now with Fedora 33), but that something we can live with for now.

dustymabe added a commit to coreos/fedora-coreos-config that referenced this issue Oct 7, 2020
This is the culmination of a lot of work to make package layering
more reliable. This archive repo provides all packages that have
ever been in the updates repository, which means there should always
be a solution that will depsolve given the existing set of base layer
packages.

Pairing this along with coreos/rpm-ostree#2125
means that we should finally see less of the split base layer vs update
repo problem and see less `Forbidden base package replacements` errors.

Fixes: coreos/fedora-coreos-tracker#400
@dustymabe
Copy link
Member Author

The fix for this went into testing stream release 32.20201018.2.0. Please try out the new release and report issues.

@dustymabe dustymabe added status/pending-stable-release Fixed upstream and in testing. Waiting on stable release. and removed status/pending-testing-release Fixed upstream. Waiting on a testing release. labels Oct 21, 2020
@dustymabe
Copy link
Member Author

The fix for this went into stable stream release 32.20201018.3.0.

@dustymabe dustymabe removed the status/pending-stable-release Fixed upstream and in testing. Waiting on stable release. label Nov 12, 2020
martinpitt pushed a commit to martinpitt/ostree-pitti-workstation that referenced this issue Dec 12, 2020
This is the culmination of a lot of work to make package layering
more reliable. This archive repo provides all packages that have
ever been in the updates repository, which means there should always
be a solution that will depsolve given the existing set of base layer
packages.

Pairing this along with coreos/rpm-ostree#2125
means that we should finally see less of the split base layer vs update
repo problem and see less `Forbidden base package replacements` errors.

For context see coreos/fedora-coreos-tracker#400

(cherry picked from commit 5ee6bce)
kelvinfan001 pushed a commit to kelvinfan001/fedora-coreos-config that referenced this issue Dec 14, 2020
This is the culmination of a lot of work to make package layering
more reliable. This archive repo provides all packages that have
ever been in the updates repository, which means there should always
be a solution that will depsolve given the existing set of base layer
packages.

Pairing this along with coreos/rpm-ostree#2125
means that we should finally see less of the split base layer vs update
repo problem and see less `Forbidden base package replacements` errors.

Fixes: coreos/fedora-coreos-tracker#400
martinpitt pushed a commit to martinpitt/ostree-pitti-workstation that referenced this issue Feb 11, 2021
This is the culmination of a lot of work to make package layering
more reliable. This archive repo provides all packages that have
ever been in the updates repository, which means there should always
be a solution that will depsolve given the existing set of base layer
packages.

Pairing this along with coreos/rpm-ostree#2125
means that we should finally see less of the split base layer vs update
repo problem and see less `Forbidden base package replacements` errors.

For context see coreos/fedora-coreos-tracker#400
spaced pushed a commit to spaced/kubespray that referenced this issue Jun 10, 2024
- because update repos is enabled by default rpm-ostree install tries to upgrade selinux packages as dependency. There is a huge mess around, see also coreos/fedora-coreos-tracker#400
- workaround for installation of fix version of cri-o: disable vars, so we can overwrite them in inventory.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
area/packaging component/rpm-ostree infra Related to Fedora Infrastructure team work/input
Projects
None yet
Development

Successfully merging a pull request may close this issue.

3 participants