12cc4e5f5b
`syncfs()` isn't going to do anything on e.g. `tmpfs` and even if it did wouldn't fix any race conditions because that's about synchronizing in memory changes to disk, but won't change what system calls return. Some investigation turned up https://stackoverflow.com/questions/14392975/timestamp-accuracy-on-ext4-sub-millsecond and `current_fs_time` is now: https://www.kernel.org/doc/html/v5.12/core-api/timekeeping.html Basically there's a "coarse" time that might only update once every 10ms for example. Let's just sleep 100ms for now. I think we should be using the inode versions, but we can investigate that separately. |
||
---|---|---|
.github | ||
api-doc | ||
buildutil | ||
ci | ||
completion | ||
design | ||
docs | ||
experiments-and-demos/skopeo2ostree | ||
libdnf@fefe0b69e8 | ||
libglnx@4c9055ac08 | ||
man | ||
packaging | ||
rust | ||
src | ||
tests | ||
.cci.jenkinsfile | ||
.dir-locals.el | ||
.dockerignore | ||
.editorconfig | ||
.gitignore | ||
.gitmodules | ||
.vimrc | ||
autogen.sh | ||
build.rs | ||
cargo-vendor-config | ||
Cargo.lock | ||
Cargo.toml | ||
configure.ac | ||
CONTRIBUTING.md | ||
COPYING.GPL | ||
COPYING.LGPL | ||
HACKING.md | ||
LICENSE | ||
Makefile-bash.am | ||
Makefile-daemon.am | ||
Makefile-decls.am | ||
Makefile-extra.inc | ||
Makefile-lib-defines.am | ||
Makefile-lib.am | ||
Makefile-libpriv.am | ||
Makefile-man.am | ||
Makefile-rpm-ostree.am | ||
Makefile-tests.am | ||
Makefile.am | ||
Makefile.bindings | ||
OWNERS | ||
README.md | ||
RELEASE.md |
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.