Commit graph

15 commits

Author SHA1 Message Date
Lars Karlitski
f0a7b2261e pipeline: introduce host runner
osbuild currently throws an error when not passing a build environment
on the command line, because the runner is unset. This is annoying on
hosts which only need a runner set, but no build pipeline.

To simplify running osbuild in this common case, introduce
`org.osbuild.host`, which is a runner that is defined to work on the
host that osbuild is installed on. Use this runner by default and
include a symlink to the right runner in the Fedora and RHEL packages.

Also add `runners/org.osbuild.host` to `.gitignore`, so that developers
can set the symlink when running osbuild from the source directory.

Fixes #171
2019-12-02 13:45:48 +01:00
Lars Karlitski
d8bb359e81 6 2019-11-29 19:08:53 +01:00
Lars Karlitski
2c564afae8 osbuild.spec: make /usr/lib/osbuild/{stages,assemblers}/osbuild
osbuild bind-mounts its library to this location. The directory needs to
exist, because it is mounting `/usr` read-only.
2019-11-29 00:45:14 +01:00
Lars Karlitski
9f14aa79c4 osbuild.spec: replace tabs with spaces
To silence an rpmlint warning.
2019-11-29 00:45:14 +01:00
Lars Karlitski
64713449ce Introduce runners
We've been using a generic `osbuild-run`, which sets up the build
environment (and works around bugs) for all build roots. It is already
getting unwieldy, because it tries to detect the OS for some things it
configures. It's also about to cause problems for RHEL, which doesn't
currently support a python3 shebang without having /etc around.

This patch changes the `build` key in a pipeline to not be a pipeline
itself, but an object with `runner` and `pipeline` keys. `pipeline` is
the build pipeline, as before. `runner` is the name of the runner to
use. Runners are programs in the `runners` subdirectory.

Three runners are included in this patch. They're copies of osbuild-run
for now (except some additions for rhel82). The idea is that each of
them only contains the minimal setup code necessary for an OS, and that
we can review what's needed when updating a build root.

Also modify the `--build-pipeline` command line switch to accept such a
build object (instead of a pipeline) and rename it accordingly, to
`--build-env`.

Correspondingly, `OSBUILD_TEST_BUILD_PIPELINE` → `OSBUILD_TEST_BUILD_ENV`.
2019-11-25 13:05:22 +01:00
Lars Karlitski
1f526477d2 5 2019-10-30 18:49:56 +01:00
Lars Karlitski
434a01602b 3 2019-10-04 11:13:21 +02:00
Martin Sehnoutka
cd49e2407c replace _libdir with _prefix/lib
_libdir is platform dependant, but that is not what we want because we
would need additional runtime logic to handle platforms. this patch
overrides the defautl location
2019-10-03 15:35:50 +02:00
Martin Sehnoutka
fa8de2f6d8 move files from /usr/libexec to /usr/lib
There is no real difference in these two directories. Composer already
uses /usr/lib, so OSBuild should use the same as well.
2019-10-02 15:01:01 +02:00
Martin Sehnoutka
209d3fa437 release version 2 2019-09-18 00:05:43 +02:00
Martin Sehnoutka
448da5df8f [packit] sync from downstream branch 'master'
Downstream commit: 769e09f84422db3c56e7228a2c51a6076528616c

Signed-off-by: Martin Sehnoutka <msehnout@redhat.com>
2019-09-02 10:28:21 +02:00
Martin Sehnoutka
3bbe17073d download sources from github as <name>-<version>.tar.gz
packit produces tarballs with this name, so it is easier to download
them from github like this
2019-08-01 16:17:11 +02:00
Martin Sehnoutka
0812baa352 update url in the specfile 2019-07-29 09:41:28 +02:00
Lars Karlitski
265968f5c6 spec: only install regular files in stages/ and assemblers (#36)
The previous commit added a symlink to `../osbuild`, which is helpful
when developing, but shouldn't be included in the rpm.
2019-07-26 08:58:58 +02:00
Martin Sehnoutka
3c19420b3e introduce spec file and related build scripts
The repository now contains a Vagrantfile for running the testing script
against an RPM package created locally using `make rpm`. To run this
test use `make vagrant-test`. setup.py was also modified to adhere to
packaging guidelines and not to install system-level executables.
The lincense is now included in the Python package using the MANIFEST.in
file.
2019-07-23 15:22:40 +02:00