No description
Find a file
Christian Kellner 4f211eb0a5 osbuild: introduce device host service
A new host service that provides device functionality to stages.
Since stages run in a container and are restricted from creating
device nodes, all device handling is done in the main osbuild
process. Currently this is done with the help of APIs and RPC,
e.g. `LoopServer`. Device host services on the other hand allow
declaring devices in the manifest itself and then osbuild will
prepare all devices before running the stage. One desired effect
is that it makes device handling transparent to the stages, e.g.
they don't have to know about loopback devices, LVM or LUKS.
Another result is that specific device handling is now modular
like Inputs and Source are and thus moved out of osbuild itself.
2021-06-09 18:37:47 +01:00
.devcontainer devcontainer: specify the workdir 2021-04-08 12:56:06 +02:00
.github ci: update images to F33 2021-03-17 14:31:26 +00:00
assemblers aarch64: use single qemu-img thread 2021-06-09 11:57:26 +02:00
docs Docs: Document --inspect option in the man page 2021-01-17 13:07:14 +01:00
inputs inputs: convert to host service 2021-06-09 18:37:47 +01:00
osbuild osbuild: introduce device host service 2021-06-09 18:37:47 +01:00
runners aarch64: use single qemu-img thread 2021-06-09 11:57:26 +02:00
samples stages/noop: fix the schema to allow any props 2020-07-16 19:02:25 +02:00
schemas osbuild: introduce device host service 2021-06-09 18:37:47 +01:00
schutzbot ci: remove Fedora 32 tests 2021-06-04 15:08:38 +02:00
selinux selinux: allow nnp and nosuid transitions 2020-08-10 14:05:24 +02:00
sources sources/curl: Implement new way of getting RHSM secrets 2021-06-04 18:23:05 +01:00
stages stages/dracut: disable hostonly mode and default to reproducible images 2021-06-07 12:15:26 +02:00
test test/objectstore: add store server test 2021-06-09 18:37:47 +01:00
tools tools: add inline-source.py 2021-05-12 14:26:16 +02:00
.editorconfig editorconfig: include markdown specifications 2020-10-23 16:29:50 +02:00
.gitignore test: add coverity targets to the Makefile 2020-06-24 10:01:24 +02:00
.travis.yml ci: move test_boot to github-actions 2020-05-13 22:00:27 +02:00
LICENSE Revert "Fill in the license template" 2019-11-18 12:23:10 +01:00
Makefile test: update test manifests to use Fedora 34 2021-06-07 12:15:26 +02:00
NEWS.md NEWS: update for osbuild version 28 2021-04-08 19:27:48 +02:00
osbuild.spec spec: move all ostree modules to the sub-package 2021-06-08 22:30:51 +02:00
README.md readme: add IRC 2021-06-04 15:10:12 +02:00
requirements.txt Makefile: use pytest for nicer output 2020-12-04 18:24:48 +01:00
setup.cfg setup.cfg: set max line length in pycodestyle 2021-05-12 14:26:16 +02:00
setup.py 28 2021-04-08 19:27:48 +02:00

OSBuild

Build-Pipelines for Operating System Artifacts

OSBuild is a pipeline-based build system for operating system artifacts. It defines a universal pipeline description and a build system to execute them, producing artifacts like operating system images, working towards an image build pipeline that is more comprehensible, reproducible, and extendable.

See the osbuild(1) man-page for details on how to run osbuild, the definition of the pipeline description, and more.

Project

Requirements

The requirements for this project are:

  • bubblewrap >= 0.4.0
  • python >= 3.7

Additionally, the built-in stages require:

  • bash >= 5.0
  • coreutils >= 8.31
  • curl >= 7.68
  • qemu-img >= 4.2.0
  • rpm >= 4.15
  • tar >= 1.32
  • util-linux >= 235

At build-time, the following software is required:

  • python-docutils >= 0.13
  • pkg-config >= 0.29

Testing requires additional software:

  • pytest

Build

The standard python package system is used. Consult upstream documentation for detailed help. In most situations the following commands are sufficient to build and install from source:

python setup.py build
python setup.py install --skip-build --root=/

The man-pages require python-docutils and can be built via:

rst2man docs/<input-file>.rst <output-file>

Repository:

License:

  • Apache-2.0
  • See LICENSE file for details.