No description
Find a file
Christian Kellner e77d95f4b7 osbuild: add meta module for metadata information
This new module contains utilities that help to introspect parts
that constitute the inner parts of osbuild, i.e. its stages
and assembler (which is also considered a type of stage in
this context). It contains the `StageInfo` class that can that
contains meta-information about the individual stage, such as
a short information (`info`), a longer description (`desc`) and
its JSON schema. A new Schema class represents schema data and
has a `validation` method that can be used to validate that json
data conforms to said schema.
A `Index` class can be used to obtain `StageInfo` and `Schema`
for entities identified via `klass` and `name`.
A top level `validate` method is introduced that can validate
manifest data.
Internally it uses the `jsonschema` package so add that as a
requirement and Install this dependency in the CI.
2020-05-06 15:42:23 +02:00
.github/workflows osbuild: add meta module for metadata information 2020-05-06 15:42:23 +02:00
assemblers modules: drop osbuild symlink 2020-05-04 12:32:25 +02:00
docs osbuild: add --output-directory=DIR 2020-04-15 15:40:17 +02:00
jenkins jenkins: remove composer directories before the tests 2020-05-04 11:35:44 +02:00
osbuild osbuild: add meta module for metadata information 2020-05-06 15:42:23 +02:00
runners modules: drop osbuild symlink 2020-05-04 12:32:25 +02:00
samples samples: fix grub2-legacy in base-qcow2 2020-04-20 18:58:53 +02:00
schemas schemas/osbuild1: specify exact schema version 2020-05-06 15:42:23 +02:00
sources modules: drop osbuild symlink 2020-05-04 12:32:25 +02:00
stages modules: drop osbuild symlink 2020-05-04 12:32:25 +02:00
test test: '{. -> ./mod}/test_util_osrelease.py' 2020-04-28 15:39:00 +02: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
.pylintrc pylint: disable too-many-arguments rule 2019-07-24 12:55:48 +02:00
.travis.yml ci: import runtime tests to github actions 2020-03-24 16:08:24 +01:00
LICENSE Revert "Fill in the license template" 2019-11-18 12:23:10 +01:00
Makefile test: provide Makefile convenience targets 2020-04-24 15:50:44 +02:00
NEWS.md build: fill in preliminary NEWS entry for v13 2020-04-29 15:30:42 +02:00
osbuild.spec modules: drop osbuild symlink 2020-05-04 12:32:25 +02:00
README.md docs: refactor README 2020-03-02 21:34:09 +01:00
requirements.txt osbuild: add meta module for metadata information 2020-05-06 15:42:23 +02:00
setup.py osbuild: add meta module for metadata information 2020-05-06 15:42:23 +02: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.