df75fc232a
Do not delete a .commitmeta file after removing the last metadata entry. This way a client will pull the empty .commitmeta file and overwrite old metadata as expected. https://bugzilla.gnome.org/750459 |
||
---|---|---|
bsdiff@1edf9f6568 | ||
build-aux | ||
doc | ||
docs-md | ||
libglnx@e684ef07f0 | ||
manual-tests | ||
packaging | ||
src | ||
tests | ||
.gitignore | ||
.gitmodules | ||
autogen.sh | ||
cfg.mk | ||
configure.ac | ||
CONTRIBUTING.md | ||
COPYING | ||
GNUmakefile | ||
maint.mk | ||
Makefile-boot.am | ||
Makefile-decls.am | ||
Makefile-libostree-defines.am | ||
Makefile-libostree.am | ||
Makefile-ostree.am | ||
Makefile-otutil.am | ||
Makefile-switchroot.am | ||
Makefile-tests.am | ||
Makefile.am | ||
ostree.doap | ||
README-historical.md | ||
README.md | ||
TODO |
OSTree
OSTree is a tool that combines a "git-like" model for committing and downloading bootable filesystem trees, along with a layer for deploying them and managing the bootloader configuration.
Traditional package managers (dpkg/rpm) build filesystem trees on the client side. In contrast, the primary focus of OSTree is on replicating trees composed on a server.
Features:
- Atomic upgrades and rollback
- GPG signatures and "pinned TLS" support
- Support for parallel installing more than just 2 bootable roots
- Binary history on the server side
- Introspectable shared library API for build and deployment systems
Projects using OSTree
rpm-ostree is a tool that uses OSTree as a shared library, and supports committing RPMs into an OSTree repository, and deploying them on the client.
Project Atomic uses rpm-ostree to provide a minimal host for Docker formatted Linux containers.
xdg-app uses OSTree for desktop application containers.
GNOME Continuous is a custom build system designed for OSTree, using OpenEmbedded in concert with a custom build system to do continuous delivery from hundreds of git repositories.
Building
Releases are available as GPG signed git tags, and most recent versions support extended validation using git-evtag.
However, in order to build from a git clone, you must update the submodules. If you're packaging OSTree and want a tarball, I recommend using a "recursive git archive" script. There are several available online; this code in OSTree is an example.
Once you have a git clone or recursive archive, building is the same as almost every autotools project:
env NOCONFIGURE=1 ./autogen.sh
./configure --prefix=...
make
make install DESTDIR=/path/to/dest
More documentation
Some more information is available on the old wiki page: https://wiki.gnome.org/Projects/OSTree
The intent is for that wiki page content to be migrated into Markdown in this git repository.
Contributing
See Contributing.