No description
Find a file
David Rheinsberg b28ec66f5a docs: provide a separate manifest description
This rips out the `PIPELINE` section from osbuild(1) and instead adds a
new osbuild-manifest(5) man-page. This new man-page contains a rather
formal definition of the manifest, with a separate section for each
part of a manifest.

The man-page is exhaustive, in that it describes all available options.
However, it does *NOT* document the available stages, runners, and
assemblers. It does document the available (and supported) sources.
This should serve as an example how to document available stages and
assemblers in the future.

Note that it is not clear whether we should document these right now.
Once we decided to support the available stages for a reasonable
time-frame, we can start on documenting them as well.
2020-03-07 13:43:24 +01:00
.github/workflows 📦 Use new 'make rpm' in GitHub Actions 2020-03-05 22:32:01 +01:00
assemblers assembler/qemu: schema: 'dos' option for 'pttype' 2020-01-29 18:03:24 +01:00
docs docs: provide a separate manifest description 2020-03-07 13:43:24 +01:00
osbuild pipeline: don't commit checkpoints on error 2020-03-03 13:38:45 +01:00
runners runners: add runner for Arch Linux 2020-02-29 18:34:00 +01:00
samples samples: bring base-rpm-qcow2.json up-to-date 2020-03-07 13:43:24 +01:00
schemas schema: add json-schema describing our manifest 2020-03-07 13:43:24 +01:00
sources fixup: files 2020-02-06 19:01:12 +01:00
stages dnf: enable fastestmirror by default 2020-02-22 02:01:17 +01:00
test test: remove README.md 2020-03-06 11:57:17 +01:00
.editorconfig editorconfig: add one matching current style 2019-12-13 18:15:08 +01:00
.gitignore .gitignore: remove old ignored directory 2020-03-06 11:57:17 +01:00
.packit.yaml Update packit.yaml for f31 2019-10-15 14:04:57 +02:00
.pylintrc pylint: disable too-many-arguments rule 2019-07-24 12:55:48 +02:00
.travis.yml build-env: drop unnccessary ubuntu build env 2020-03-03 00:05:26 +01:00
LICENSE Revert "Fill in the license template" 2019-11-18 12:23:10 +01:00
Makefile Makefile: add target to build the man-page 2020-03-06 14:47:19 +01:00
osbuild.spec spec: build and install man page 2020-03-06 14:47:19 +01:00
README.md docs: refactor README 2020-03-02 21:34:09 +01:00
RELEASE.md RELEASE.md: update to mention 'v' tag prefix 2020-03-05 12:39:46 +01:00
setup.py setup.py: remove unused import 2020-03-07 13:42:36 +01:00
tree-diff tools/tree-diff: strip NULL character from selinux xattr 2019-10-08 21:39:35 +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:

  • python >= 3.7
  • systemd-nspawn >= 244

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

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.