Jonathan Lebon
5f17bc5c87
lockfile: Return LockfileConfig rather than Vec<StringMapping>
I don't like the use of `HY_GLOB` in the lockfile package matching. We have all the information in the Rust object, so it's silly to condense that to a single string in a hashmap. Fix this by returning the `LockfileConfig` object itself and then adding a function to fetch the list of locked packages. This allows the C++ side to see all the individual fields which makes filtering trivial. The next step is moving all the code which needs the lockfile to Rust. Then we can drop the shared `LockedPackage` type. (I did start on converting `find_locked_packages`, though it requires adding bindings for all the `HyQuery` stuff, which... isn't great (and also runs into the fact that `hy_query_run` needs to return a GPtrArray). I think instead of a 1:1 mapping, we'll probably want the libdnf-sys API wrappers to provide some sugar for the common paths.)
rpm-ostree: A true hybrid image/package system
rpm-ostree is a hybrid image/package system. It combines libostree as a base image format, and accepts RPM on both the client and server side, sharing code with the dnf project; specifically libdnf. and thus bringing many of the benefits of both together.
+-----------------------------------------+
| |
| rpm-ostree (daemon + CLI) |
+------> <---------+
| | status, upgrade, rollback, | |
| | pkg layering, initramfs --enable | |
| | | |
| +-----------------------------------------+ |
| |
| |
| |
+-----------------|-------------------------+ +-----------------------|-----------------+
| | | |
| libostree (image system) | | libdnf (pkg system) |
| | | |
| C API, hardlink fs trees, system repo, | | ties together libsolv (SAT solver) |
| commits, atomic bootloader swap | | with librepo (RPM repo downloads) |
| | | |
+-------------------------------------------+ +-----------------------------------------+
Features:
- Transactional, background image-based (versioned/checksummed) upgrades
- OS rollback without affecting user data (
/usr
but not/etc
,/var
) via libostree - Client-side package layering (and overrides)
- Easily make your own:
rpm-ostree compose tree
and CoreOS Assembler
Documentation
For more information, see the project documentation or the project documentation website.
License
rpm-ostree includes code licensed under GPLv2+, LGPLv2+, (Apache 2.0 OR MIT). For more information, see LICENSE.
Description
Languages
C++
58.8%
Rust
18.6%
Shell
13.6%
C
6.6%
M4
0.8%
Other
1.6%