Colin Walters 723705b803 sysroot: Write symlinks before calling fsync(), then rename after
There might be a race here in that we create new symlink files *after*
calling `syncfs`, and they are not guaranteed to end up on disk.

Rework the code so that we create symlinks before, and then only
rename them after (and `fsync()` the directory for good measure).

Additional-fixes-by: Giuseppe Scrivano <gscrivan@redhat.com>
Tested-by: Giuseppe Scrivano <gscrivan@redhat.com>

This still needs verification that we're fixing a real bug; but I'm
fairly confident this won't make the fsync situation worse.

https://bugzilla.gnome.org/show_bug.cgi?id=755595
2015-10-25 11:46:41 -04:00
2015-03-26 23:33:07 +01:00
2015-09-16 14:19:05 -04:00
2015-08-08 21:53:43 -04:00
2015-03-26 23:33:07 +01:00
2015-06-29 16:08:51 -04:00
2015-09-23 12:10:22 -04:00
2014-07-31 11:26:32 +02:00
2015-01-30 15:27:36 +01:00

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.

S
Description
No description provided
Readme
18 MiB
0 Stars 1 Watchers 0 Forks
Languages
C 50.8%
HTML 20.8%
Shell 13.9%
Makefile 12.4%
Yacc 0.7%
Other 1.3%