No description
Find a file
David Rheinsberg 551faf2d61 osbuild: add --output-directory=DIR
Add a new output-directory argument which specifies where to store
result objects. For now, this is purely optional and simply copies from
the old `output_id` into the specified directory. This allows a
backwards compatible transition towards removing any external access to
the osbuild cache.

Note that this has still lots of room for improvements:

  * We only support assembler-output for now, but we could also easily
    support entire trees as output, in case no assembler was selected.
    Alternatively, we could introduce a "copy" assembler, that just
    outputs the input tree.

  * This parameter is optional, but should really be mandatory. There
    is little reason to have the default behavior just dropping any
    generated content. This would be a breaking change, though.

  * We could move data out of a temporary object-store entry, rather
    than copy it. But again, for backwards-compatibility, we leave the
    latest store-object intact and do not move things out of it.

  * We could now transition towards never committing anything to the
    store, not even output IDs, unless explicitly checkpointed.
2020-04-15 15:40:17 +02:00
.github/workflows ci: run selinux and ostree unit tests 2020-04-15 15:39:45 +02:00
assemblers assembler: add org.osbuild.ostree.commit 2020-04-15 15:39:45 +02:00
docs osbuild: add --output-directory=DIR 2020-04-15 15:40:17 +02:00
jenkins 🤏 Add a little bit more testing 2020-04-09 16:35:08 +02:00
osbuild osbuild: add --output-directory=DIR 2020-04-15 15:40:17 +02:00
runners runners: drop ca certificate handling 2020-04-15 15:29:52 +02:00
samples samples/f31-ostree-image.json: enable hybrid boot 2020-04-15 15:39:45 +02:00
schemas schema: add json-schema describing our manifest 2020-03-07 13:43:24 +01:00
sources sources/ostree: verify signature on local pull 2020-04-15 15:39:45 +02:00
stages stages/grub2: opt-out option for /etc/default/grub 2020-04-15 15:39:45 +02:00
test util: add selinux config file related helpers 2020-04-15 15:39:45 +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 build: fix make release contributor list without git tags 2020-03-23 10:03:33 +01:00
NEWS.md NEWS.md: fix v11 notes and add Martin 2020-04-01 20:00:39 +02:00
osbuild.spec spec: require matching python3-osbuild version 2020-04-07 10:55:16 +02:00
README.md docs: refactor README 2020-03-02 21:34:09 +01:00
setup.py 11 2020-04-01 19:03:41 +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.