-
Notifications
You must be signed in to change notification settings - Fork 59
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
Ship dnf in FCOS and RHCOS #1687
Comments
Sounds good to me. |
Does this work as expected compared to the current Could we even redirect |
Yeah, possibly... We should keep |
The following was agreed today in the Fedora CoreOS community meeting :
|
As mentioned above, we'll rediscuss this at f41 branching time, at which point we should have more information around dnf, rpm-ostree, and the bootable containers effort. And it'll either have landed in Fedora as default or not yet. Also, hopefully by then we'll have a better error message from |
As per coreos/fedora-coreos-tracker#1687, we will for now add `dnf5` to the rawhide stream to test it out and re-evaluate at branching.
coreos/fedora-coreos-config#2915 adds dnf5 to rawhide. Verifying it works in unlocked mode:
Verifying it works in layering (using
|
hmm. I feel like requiring the user to type On another topic it might be nice to analyze the package addition to at least have the questions answered like we do for any new package: https://github.com/coreos/fedora-coreos-tracker/blob/main/.github/ISSUE_TEMPLATE/new-package.yml |
Hmm, my understanding is that it'll be
Good point, will do! |
Yeah. That's what I'm wondering here too. Is the point that we want people to pick this up and try it (in which case we'd want them to use |
As per coreos/fedora-coreos-tracker#1687, we will for now add `dnf5` to the rawhide stream to test it out and re-evaluate at branching. It's not the default yet in f41, so doesn't own the `dnf` executable name. Manually add a symlink to make playing with it more natural.
Symlink added in coreos/fedora-coreos-config#2915. Diff:
Sizes:
So ~4.5M, which is surprisingly larger than I expected. |
As per coreos/fedora-coreos-tracker#1687, we will for now add `dnf5` to the rawhide stream to test it out and re-evaluate at branching. It's not the default yet in f41, so doesn't own the `dnf` executable name. Manually add a symlink to make playing with it more natural.
Maybe we should make a Fedora Change Request and land this for Fedora Atomic Desktops as well at the same time? (and IoT?) |
As per coreos/fedora-coreos-tracker#1687, we will for now add `dnf5` to the rawhide stream to test it out and re-evaluate at branching. It's not the default yet in f41, so doesn't own the `dnf` executable name. Manually add a symlink to make playing with it more natural.
We've met with @dcantrell to discuss this. The current focus on the code changes on the DNF side is going to happen on the dnf4 branch, and ideally that would be the version that we include before moving to dnf5 once the changes land there too. As dnf4 depends on Python, and we really don't want to include python (#32), a temporary option for Fedora CoreOS would be to include microdnf instead and set it up as dnf. Other rpm-ostree variants that already include Python will include dnf4 directly. We did this in the past in #1050. @jmarrero is working on a change proposal to clarify that. |
I'm not sure I follow that. If dnf5 is set to be the default, why would we not ship that in FCOS to match the rest of Fedora? Between getting better error messages sooner into FCOS and being consistent across Fedora variants, I'd rather the latter. Of course also there's the feature gap between microdnf vs dnf. For the longer-term stuff around folding rpm-ostree functionality into dnf5, I think it's understood that'll take some time and that's OK. Doing any work on microdnf, especially if it's just for FCOS, seems like not the best use of time. Maybe we could help out with at least the error message improvements in dnf5? (I'd prefer seeing other OSTree variants also ship dnf5 for consistency, but yes the Python question changes the calculus there a bit.) |
In FCOS meeting today we decided to not discuss about this topic in the current meeting, I will keep the meeting label in case people want to discuss in the next ones. |
As per discussions in coreos/fedora-coreos-tracker#1687, we will add dnf to RHCOS so it can be used for derivation.
RHCOS side of this: openshift/os#1476 |
As per discussions in coreos/fedora-coreos-tracker#1687, we will add dnf to RHCOS so it can be used for derivation.
We've discussed this topic in today's community meeting. Unfortunately, dnf5 did not yet get better error messages when running on ostree/bootc systems and it's unlikely that it will get them in time for F41. |
The "error messages" work in dnf did not land in Fedora 41, thus users are confused: https://discussion.fedoraproject.org/t/f41-kinoite-native-container-dnf5-pgp-key-import-error/131946 |
I filed rpm-software-management/dnf5#1727 to have this be tracked upstream. |
Ah, good catch, I forgot that those changes were for dnf4 and not dnf5. |
As part of the bootable containers effort, we want to put emphasis on a consistent experience when deriving images. A big part of that is being able to type
dnf install -y ...
in one'sContainerfile
, just like one can when building an app container. On the client-side, dnf cannot do much right now. However, it does work if/usr
is read-write (either using e.g.ostree admin unlock
/bootc usr-overlay
or if transient root is enabled). So basically, having dnf in FCOS/RHCOS would give us:dnf
in layering for a consistent experiencednf
client-side when "unlocked" -- this is useful for example to temporarily install debug toolsNote also dnf currently ships in the tier-1 c9s and Fedora ELN images for the same reasons.
Additionally, there are plans to move functionality from rpm-ostree to dnf for a more unified experience. So eventually, dnf will also allow more host management features.
The default dnf4 in Fedora is Python-based, which we're currently blocking from Fedora CoreOS. However, dnf5, currently planned to be the default for Fedora 41, no longer pulls in Python.
So concretely, the proposal is to:
That said, ideally doing a dnf operation on the client-side that requires write access would give a useful error that says to either unlock
/usr
or use rpm-ostree depending on what the user wants (transient vs permanent).The text was updated successfully, but these errors were encountered: