-
Notifications
You must be signed in to change notification settings - Fork 83
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
systemd-sysext integration proposal #1731
Comments
BTW there's outstanding SELinux integration issues with sysext...I will try to dig up a reference and see what we can do to get it fixed. |
Also of course, what would make total sense is shipping dnf itself as a sysext, and then once merged it could itself generate further sysexts. |
Hi Colin, sounds like an interesting idea. I’m just curious how it differs from the planned transient installation of packages using the bootc plugin, e.g., the |
If I understand it correctly, you want DNF to be able to create systemd-sysext https://www.freedesktop.org/software/systemd/man/latest/systemd-sysext.html directories with the delta. Do you have a documentation for the directory format? E.g. how one expresses that a file becomes removed after the installation? From DNF point of view, there is one big problem: DNF does not manipulate files. DNF only commands RPM to install/uninstall RPM packages. All the file manipulation is done by librpm. One would first need to enhance librpm do produce the file system deltas. |
The bootc one is basically hardcoded to the In contrast, the sysext approach is about much more controlled mutation; you need to write them to a look aside directory (or image) and then explicitly merge/unmerge.
Yeah you're probably right. I guess a bit more compatible way to do this would be to write to a temporary overlayfs over |
There's a lot of update of systemd-sysext and I see potential integration points dnf could do here.
For image based (e.g. bootc) systems...if dnf is part of the base system (as we support right now) one thing we could do is basically
dnf install --sysext foo bar baz
anddnf upgrade --sysext
.Here's how that'd work and what it'd do:
/var/lib/extensions/dnf-transient
as a directory (name is a placeholder)/usr/lib/sysimage/rpm.d/dnf.sqlite
or something because otherwise it will mask the host rpmdb and confuse things (ref RFE: container-native rpmdb format rpm#2005 )systemd-sysext refresh
(which we could call automatically or probably better requirednf install --sysext-refresh foo bar
to opt-in to refresh) will give you live updates.(We'd also support
dnf --sysext remove foo
but only for things in that sysext)The text was updated successfully, but these errors were encountered: