---
nav_order: 190
---
-<!-- SPDX-License-Identifier: (CC-BY-SA-3.0 OR GFDL-1.3-or-later) -->
# Contributing
{: .no_toc }
1. TOC
{:toc}
+<!-- SPDX-License-Identifier: (CC-BY-SA-3.0 OR GFDL-1.3-or-later) -->
+
## Submitting patches
A majority of current maintainers prefer the GitHub pull request
---
nav_order: 70
---
-<!-- SPDX-License-Identifier: (CC-BY-SA-3.0 OR GFDL-1.3-or-later) -->
# Adapting existing mainstream distributions
{: .no_toc }
1. TOC
{:toc}
+<!-- SPDX-License-Identifier: (CC-BY-SA-3.0 OR GFDL-1.3-or-later) -->
+
## System layout
First, OSTree encourages systems to implement
---
nav_order: 60
---
-<!-- SPDX-License-Identifier: (CC-BY-SA-3.0 OR GFDL-1.3-or-later) -->
# Atomic Rollbacks
{: .no_toc }
1. TOC
{:toc}
+<!-- SPDX-License-Identifier: (CC-BY-SA-3.0 OR GFDL-1.3-or-later) -->
+
## Automatic rollbacks
See [greenboot](https://github.com/fedora-iot/greenboot/blob/main/README.md) for information on automatic rollbacks and how to integrate
---
nav_order: 50
---
-<!-- SPDX-License-Identifier: (CC-BY-SA-3.0 OR GFDL-1.3-or-later) -->
# Atomic Upgrades
{: .no_toc }
1. TOC
{:toc}
+<!-- SPDX-License-Identifier: (CC-BY-SA-3.0 OR GFDL-1.3-or-later) -->
+
## You can turn off the power anytime you want...
OSTree is designed to implement fully atomic and safe upgrades;
---
nav_order: 100
---
-<!-- SPDX-License-Identifier: (CC-BY-SA-3.0 OR GFDL-1.3-or-later) -->
# Handling access to authenticated remote repositories
{: .no_toc }
1. TOC
{:toc}
+<!-- SPDX-License-Identifier: (CC-BY-SA-3.0 OR GFDL-1.3-or-later) -->
+
There is no default concept of an "ostree server"; ostree expects to talk to a generic webserver, so any tool and technique applicable for generic HTTP can also apply to fetching content via OSTree's builtin HTTP client.
## Using mutual TLS
---
nav_order: 120
---
-<!-- SPDX-License-Identifier: (CC-BY-SA-3.0 OR GFDL-1.3-or-later) -->
# Bootloaders
{: .no_toc }
1. TOC
{:toc}
+<!-- SPDX-License-Identifier: (CC-BY-SA-3.0 OR GFDL-1.3-or-later) -->
+
## OSTree and bootloaders
The intended design of OSTree is that it just writes new files into `/boot/loader/entries`. There is a legacy GRUB script (shipped on Fedora as `ostree-grub2`) that is intended only for the cases where the system GRUB does not support the `blscfg` verb.
---
nav_order: 90
---
-<!-- SPDX-License-Identifier: (CC-BY-SA-3.0 OR GFDL-1.3-or-later) -->
# Writing a buildsystem and managing repositories
{: .no_toc }
1. TOC
{:toc}
+<!-- SPDX-License-Identifier: (CC-BY-SA-3.0 OR GFDL-1.3-or-later) -->
+
OSTree is not a package system. It does not directly support building
source code. Rather, it is a tool for transporting and managing
content, along with package-system independent aspects like bootloader
---
nav_order: 110
---
-<!-- SPDX-License-Identifier: (CC-BY-SA-3.0 OR GFDL-1.3-or-later) -->
# Using composefs with OSTree
{: .no_toc }
1. TOC
{:toc}
+<!-- SPDX-License-Identifier: (CC-BY-SA-3.0 OR GFDL-1.3-or-later) -->
+
## composefs
The [composefs](https://github.com/containers/composefs) project is a new
---
nav_order: 200
---
-<!-- SPDX-License-Identifier: (CC-BY-SA-3.0 OR GFDL-1.3-or-later) -->
# OSTree Contributing Tutorial
{: .no_toc }
1. TOC
{:toc}
+<!-- SPDX-License-Identifier: (CC-BY-SA-3.0 OR GFDL-1.3-or-later) -->
+
## Getting Started
Fork https://github.com/ostreedev/ostree, then run the following commands.
---
nav_order: 40
---
-<!-- SPDX-License-Identifier: (CC-BY-SA-3.0 OR GFDL-1.3-or-later) -->
# Deployments
{: .no_toc }
1. TOC
{:toc}
+<!-- SPDX-License-Identifier: (CC-BY-SA-3.0 OR GFDL-1.3-or-later) -->
+
## Overview
Built on top of the OSTree versioning filesystem core is a layer
---
nav_order: 80
---
-<!-- SPDX-License-Identifier: (CC-BY-SA-3.0 OR GFDL-1.3-or-later) -->
# OSTree data formats
{: .no_toc }
1. TOC
{:toc}
+<!-- SPDX-License-Identifier: (CC-BY-SA-3.0 OR GFDL-1.3-or-later) -->
+
## On the topic of "smart servers"
One really crucial difference between OSTree and git is that git has a
---
nav_order: 110
---
-<!-- SPDX-License-Identifier: (CC-BY-SA-3.0 OR GFDL-1.3-or-later) -->
# Using Linux IMA with OSTree
{: .no_toc }
1. TOC
{:toc}
+<!-- SPDX-License-Identifier: (CC-BY-SA-3.0 OR GFDL-1.3-or-later) -->
+
## Linux IMA
The [Linux Integrity Measurement Architecture](https://sourceforge.net/p/linux-ima/wiki/Home/)
---
nav_order: 10
---
-<!-- SPDX-License-Identifier: (CC-BY-SA-3.0 OR GFDL-1.3-or-later) -->
# libostree
{: .no_toc }
1. TOC
{:toc}
+<!-- SPDX-License-Identifier: (CC-BY-SA-3.0 OR GFDL-1.3-or-later) -->
+
This project is now known as "libostree", though it is still appropriate to use
the previous name: "OSTree" (or "ostree"). The focus is on projects which use
libostree's shared library, rather than users directly invoking the command line
---
nav_order: 20
---
-<!-- SPDX-License-Identifier: (CC-BY-SA-3.0 OR GFDL-1.3-or-later) -->
# OSTree Overview
{: .no_toc }
1. TOC
{:toc}
+<!-- SPDX-License-Identifier: (CC-BY-SA-3.0 OR GFDL-1.3-or-later) -->
+
## Introduction
OSTree is an upgrade system for Linux-based operating systems that
---
nav_order: 110
---
-<!-- SPDX-License-Identifier: (CC-BY-SA-3.0 OR GFDL-1.3-or-later) -->
# Related Projects
{: .no_toc }
1. TOC
{:toc}
+<!-- SPDX-License-Identifier: (CC-BY-SA-3.0 OR GFDL-1.3-or-later) -->
+
OSTree is in many ways very evolutionary. It builds on concepts and
ideas introduced from many different projects such as
[Systemd Stateless](http://0pointer.net/blog/projects/stateless.html),
---
nav_order: 30
---
-<!-- SPDX-License-Identifier: (CC-BY-SA-3.0 OR GFDL-1.3-or-later) -->
# Anatomy of an OSTree repository
{: .no_toc }
1. TOC
{:toc}
+<!-- SPDX-License-Identifier: (CC-BY-SA-3.0 OR GFDL-1.3-or-later) -->
+
## Core object types and data model
OSTree is deeply inspired by git; the core layer is a userspace
---
nav_order: 100
---
-<!-- SPDX-License-Identifier: (CC-BY-SA-3.0 OR GFDL-1.3-or-later) -->
# Managing content in OSTree repositories
{: .no_toc }
1. TOC
{:toc}
+<!-- SPDX-License-Identifier: (CC-BY-SA-3.0 OR GFDL-1.3-or-later) -->
+
Once you have a build system going, if you actually want client
systems to retrieve the content, you will quickly feel a need for
"repository management".
---
nav_order: 70
---
-<!-- SPDX-License-Identifier: (CC-BY-SA-3.0 OR GFDL-1.3-or-later) -->
# OSTree and /var handling
1. TOC
{:toc}
+<!-- SPDX-License-Identifier: (CC-BY-SA-3.0 OR GFDL-1.3-or-later) -->
+
## Default commit/image /var handling
As of OSTree 2024.3, when a commit is "deployed" (queued to boot),