Minimal bootc backend for PackageKit
PackageKit-bootc is a minimal spawned backend for PackageKit that exposes bootc image updates to PackageKit.
It does this by providing a minimal abstract "package" that represents a bootc image, allowing PackageKit frontends to notify about available system image updates and apply them.
While PackageKit is not a great way to do this (you should probably write plugins for GNOME Software and KDE Discover instead), this provides a somewhat minimal abstraction and a basic graphical interface for managing updates for bootc-based systems. Surmize to say, this is a hack.
In the long term, this backend should be deprecated in favor of GNOME Software and Discover's respective plugins, but this is currently the quickest way to provide an abstract update interface.
GNOME Software and KDE Discover already ship rpm-ostree plugins, but these do not work properly on pure bootc images due to architectural differences on how they are built. This results in those backends failing to initialize properly; for example Discover's update applet crashlooping due to invalid OSTree data.
PackageKit-bootc circumvents this by exposing a single abstract package, which keeps PackageKit-based frontends functional even on modern bootc-only images.
To build PackageKit-bootc, ensure you have the necessary development dependencies installed, then run:
sudo dnf install PackageKit-devel meson ninja-build glib2-develThen, clone the repository and build the project:
git clone https://github.com/FyraLabs/PackageKit-bootc.git
cd PackageKit-bootc
meson setup builddir
meson compile -C builddirNote
Currently PackageKit-bootc vendors a submodule from the main PackageKit repository. This is because Fedora does not ship PackageKit's internal backend headers as part of its PackageKit-devel package. However the APIs should be stable enough for this to not cause issues. fingers crossed
To install PackageKit-bootc, run the following command:
sudo meson install -C builddir