Commit graph

84 commits

Author SHA1 Message Date
achilleas-k
9ec635914a Post release version bump
[skip ci]
2021-12-01 13:18:53 +00:00
Christian Kellner
d2d3d6d59e spec: require python3-pyyaml for osbuild-tools
osbuild-mpp has learned to read yaml files but with it gained a
hard dependency on python3-pyyaml. Specify so in the spec file.
2021-11-19 21:14:06 +01:00
kingsleyzissou
7fe8b922b4 Post release version bump
[skip ci]
2021-11-17 10:53:44 +00:00
ochosi
40bc216127 Post release version bump 2021-11-08 20:40:13 +00:00
msehnout
5df59a2251 Post release version bump 2021-11-03 15:19:47 +00:00
Simon Steinbeiss
4ff59e2086 Bump version numbers ahead of release
This is necessary for the new simplified release process and is done
ahead of time once for the upcoming release now.
After osbuild 40 this will be done by the GitHub composite action.
2021-10-19 11:21:54 +02:00
Simon Steinbeiss
4ea2915ef7 Switch to simple upstream releases
This commit changes our release process from the model of having a
release commit (and pull request) which also updated the NEWS.md file
and bumped the versions in the osbuild.spec and setup.py files to simply
pushing a tag.

After the tag (containing the release notes) is pushed, a GitHub
composite action is triggered that creates a GitHub release with the
contents of the git release tag. Furthermore the bumping of the version
number now always has to happen directly after a release to avoid having
to push a(n untested) commit to main for the release and this is also
handled by the GitHub composite action.

Finally packit pushes directly to dist-git now on pushing the release
tag, so no pull-request needs to be reviewed and merged anymore.
2021-10-19 11:21:54 +02:00
Thomas Lavocat
00125e9fdb 39
Release osbuild 39

Signed-off-by: Thomas Lavocat <tlavocat@redhat.com>
2021-10-06 14:00:21 +02:00
Simon Steinbeiss
3678f3a4c5 38
Release osbuild 38

Signed-off-by: Simon Steinbeiss <simon.steinbeiss@redhat.com>
2021-09-24 17:20:15 +02:00
Martin Sehnoutka
7be475151d 37
Release osbuild 37

[skip ci]

Signed-off-by: Martin Sehnoutka <msehnout@redhat.com>
2021-09-22 15:03:21 +02:00
Diaa Sami
5d7316757b 36
Release osbuild 36

Signed-off-by: Diaa Sami <disami@redhat.com>
2021-09-08 19:01:52 +02:00
Tom Gundersen
b081cf7f64 35
Release osbuild 35

Signed-off-by: Tom Gundersen <teg@jklm.no>
2021-08-29 20:09:59 +02:00
Tom Gundersen
b430bd8682 34
Release osbuild 34

Signed-off-by: Tom Gundersen <teg@jklm.no>
2021-08-29 18:28:55 +02:00
Simon Steinbeiss
4459a37a66 33
Release osbuild 33

Signed-off-by: Simon Steinbeiss <simon.steinbeiss@elfenbeinturm.at>
2021-08-25 22:24:46 +02:00
Tom Gundersen
a40cf616f5 32
Release osbuild 32

Signed-off-by: Tom Gundersen <teg@jklm.no>
2021-08-24 14:48:14 +02:00
Christian Kellner
572d963f0d 31
Release osbuild 31

Signed-off-by: Christian Kellner <christian@kellner.me>
2021-08-19 13:38:58 +02:00
Christian Kellner
35de3093a7 30
This completes the development of osbuild version 30.
2021-07-22 21:15:37 +02:00
Ondřej Budai
19c4b43952 spec: make format of file modes consistent 2021-07-15 16:23:01 +01:00
Ondřej Budai
e9da5ccdc2 spec: make json schemas non-executable
rpmbuild actually complains about it:

*** WARNING: ./usr/share/osbuild/schemas/osbuild1.json is executable but has no shebang, removing executable bit
*** WARNING: ./usr/share/osbuild/schemas/osbuild2.json is executable but has no shebang, removing executable bit
2021-07-15 16:23:01 +01:00
Christian Kellner
5ac1e004a6 spec: ship osbuild-mpp in new -tools
Include the `osbuild-mpp` tool, that is now installed via `setup.py`
in a new `osbuild-tools` package.
2021-07-02 11:28:43 +02:00
Christian Kellner
50971fbeec spec: install devices and mounts
The new modules for devices and mounts need to be installed so
that they actually end up in the rpm.
2021-06-17 13:26:07 +01:00
Christian Kellner
bc7096ab86 29
This completes the development of osbuild version 29.
2021-06-16 21:43:58 +02:00
Christian Kellner
3a85c196f7 spec: move all ostree modules to the sub-package
When new ostree related stages and the new ostree input was added
they were included in the main package since all the modules were
manually listed in the corresponding exclude/include sections.
Change that by using wildcards, since all ostree related modules
should start with the org.osbuild.ostree* pattern.
2021-06-08 22:30:51 +02:00
Christian Kellner
eb74ddf2ef 28
This completes the development of osbuild version 28.
2021-04-08 19:27:48 +02:00
Christian Kellner
5de2d3f96b 27
This completes the development of osbuild version 27.
2021-03-16 21:39:22 +00:00
Christian Kellner
3086c7d70c 26
This completes the development of osbuild version 26
2021-02-19 20:44:20 +00:00
Christian Kellner
755c07a142 25
This completes the development of osbuild version 25
2021-02-12 20:24:57 +01:00
Christian Kellner
20a142d8f9 24
This completes the development of osbuild version 24
2021-01-28 11:03:33 +01:00
Christian Kellner
f192d47e53 spec: install input modules
Install the new input modules alongside stages, et al.
2021-01-19 10:42:26 +01:00
Christian Kellner
83caf800e5 spec: only disable the dep. generator for runners
We do want to turn the dependency generator off for runners,
because they are tied to the specific platform, which might, if
not disabled, introduce dependencies for that platform to the
general package. An prominent example is platform-python used
by the RHEL runner.
On the other hand, we do want to pick up the dependency for the
stages and assemblers, i.e. /usr/bin/python3, because they need
to be able to run on the host, since the host provides the root
file-system for the initial build container, the build host.
Add an additional comment to the shebang mangling exception to
explain that due to the combination of dependency generator and
the disabling of shebang mangler for assembler and stages an
additionally dependency on /usr/bin/python3 will be added on RHEL,
and that this is what we indeed want.
2020-11-23 15:30:33 +01:00
Christian Kellner
afafd46393 23
This completes the development of osbuild version 23.
2020-10-23 16:29:50 +02:00
Lars Karlitski
bb137837bb osbuild.spec: don't mangle shebangs
Stop the rpm post install script from mangling shebangs for runners,
stages, and assemblers on RHEL. This breaks running them in osbuild
build roots, which might contain a different operating system than the
host, and thus not have platform-python.

This was always the intended behavior, and cb265e8b5 was a step in that
direction.

In effect, this changes a requirement on build roots, because when
building RHEL on RHEL, all current stages and assemblers now have a
python3 shebang. Thus, this means all build roots must have python3
explicitly installed.

Fixes #354
2020-10-19 21:39:06 +02:00
Christian Kellner
c11459c626 22
This completes the development of osbuild version 22.
2020-10-09 15:41:24 +02:00
Christian Kellner
7f249afe07 20
This completes the development of osbuild version 20.
2020-09-10 13:54:50 +02:00
Christian Kellner
d26cffe585 20
This completes the development of osbuild version 20.
2020-08-13 18:10:57 +02:00
Christian Kellner
f92a00b891 19
This completes the development of osbuild version 19.
2020-07-30 22:17:32 +02:00
David Rheinsberg
d1b9304a56 buildroot: use bwrap to contain stages
This swaps the `systemd-nspawn` implementation for `bubblewrap` to
contain sub-processes. It also adjusts the `BuildRoot` implementation
to reduce the number of mounts required to keep locally.

This has the following advantages:

  * We know exactly how the build-root looks like. Only the bits and
    pieces we select will end up in the build-root. We can let RPM
    authors know what environment their post-install scripts need to
    run in, and we can reliably test this.

  * We no longer need any D-Bus access or access to other PID1
    facilities. Bubblewrap allows us to execute from any environment,
    including containers and sandboxes.

  * Bubblewrap setup is significantly faster than nspawn. This is a
    minor point though, since nspawn is still fast enough compared to
    the operations we perform in the container.

  * Bubblewrap does not require root.

At the same time, we have a bunch of downsides which might increase the
workload in the future:

  * We now control the build-root, which also means we have to make sure
    it works on all our supported architectures, all quirks are
    included, and all required resources are accessible from within the
    build-root.
    The good thing here is that we have lots of previous-art we can
    follow, and all the other ones just play whack-a-mole, so we can
    join that fun.

The `bubblewrap` project is used by podman and flatpak, it is packaged
for all major distributions, and looks like a stable dependency.
2020-07-21 14:20:32 +02:00
Christian Kellner
c1a98af56a 18
This completes the development of osbuild version 18.
2020-06-23 20:02:42 +02:00
Christian Kellner
1800f2a711 17
This completes the development of osbuild version 17.
2020-06-10 15:43:24 +02:00
Christian Kellner
7171eb2bf3 osbuild: add custom selinux policy
A usual step in creating OS file system trees is to apply the
correct SELinux labels for all files and directories. This is
done by the org.osbuild.selinux stage, which internally uses the
setfiles command in order to do so. The SELiunx policy to be
used for this operation is the one of the newly created system,
not the host one. It therefore can contain labels that are not
known on the host. The kernel will prevent setting invalid,
i.e. unknown, labels unless the caller has the CAP_MAC_ADMIN
capability. By default, setfiles is executed in the setfiles_t
domain, where it lacks that capability. Therefore a custom
osbuild SELinux policy was created, with a special transition
rule that will execute setfiles in the setfiles_mac_t
domain. All stages, sources and assemblers as well as the main
binary are label with the new osbuild_exec_t label.

Additionally, allow a transition from osbuild_t to install_t by
using `anaconda_domtrans_install`, so that ostree and
rpm-ostree, which are labeled as install_exec_t, can transition
to the install_t domain when called form osbuild.  Update the
spec file to build the policy and include it in a new
osbuild-selinux sub-package.
2020-06-10 01:35:05 +02:00
Christian Kellner
162797f206 NEWS.md: update for osbuild version 16
Major changes are the support for ignition, that assembler results
wont be automatically committed anymore, a new org.osbuild.copy
stage, the removal of the `tree_id` & `output_id` as well as full
manifest validation due to the addition of source schema validation.
2020-06-04 16:22:59 +02:00
Christian Kellner
2fa594f334 15
This completes the development of osbuild version 15.
2020-05-20 21:44:58 +02:00
Christian Kellner
f2a3423caa 14
This completes the development of osbuild version 14.
2020-05-06 20:18:15 +02:00
Christian Kellner
4b7c68fcdf spec: simplify module inclusion code
Now that as a result of commit 4d2f15f all symlinks have been
dropped from the individual module paths, the search for module
contents can be simplified again.
2020-05-06 20:18:15 +02:00
Christian Kellner
a52c1dac45 spec: install schemata
Install the schema to %{_datadir}/osbuild/schema and provide a
link from %{pkgdir}/schema to that location so that the osbuild
library can easily access the schemata.
2020-05-06 15:42:23 +02:00
David Rheinsberg
4d2f15fb46 modules: drop osbuild symlink
Drop the `osbuild -> ../osbuild` symlink from all module directories.
We now properly initialize the PYTHONPATH to provide the imported
osbuild module from the host environment. Therefore, these links are no
longer needed.

The sources run from the host environment, so they should just pick them
up from the environment the same way osbuild itself does.
2020-05-04 12:32:25 +02:00
Christian Kellner
245809f40d 13
This completes the development of osbuild version 13.
2020-04-29 20:39:37 +02:00
David Rheinsberg
58d368df0d osbuild: unify libdir handling
We want to run stages and other scripts inside of the nspawn containers
we use to build pipelines. Since our pipelines are meant to be
self-contained, this should imply that the build-root must have osbuild
installed. However, this has not been the case so far for several
reasons including:

  1. OSBuild is not packaged for all the build-roots we want to support
     and thus we have the chicken-and-egg problem.

  2. During testing and development, we want to support using a local
     `libdir`.

  3. We already provide an API to the container. Importing scripts from
     the outside just makes this API bigger, but does not change the
     fact that build-roots are not self-contained. Same is true for the
     running kernel, and probably much more..

With all this in mind, our strategy probably still is to eventually
package osbuild for the build-root. This would significantly reduce our
API exposure, points-of-failure, and host-reliance. However, this switch
might still be some weeks out.

With this in mind, though, we can expect the ideal setup to have a full
osbuild available in the build-root. Hence, any script we import so far
should be able to access the entire `libdir`. This commit unifies the
libdir handling by installing the symlinks into `libdir` and providing
a single bind-mount of the module-path into `libdir`.

We can always decide to scratch that in the future when we scratch the
libdir-import from the host-root. Until then, I believe this commit
nicely unifies the way we import the module both in a local checkout as
well as in the container.
2020-04-21 13:44:43 +02:00
Christian Kellner
f036c10759 12
This completes the development of osbuild version 12.
2020-04-15 20:19:36 +02:00
Christian Kellner
22110ffb68 spec: ship ostree specific files in sub-package
Ship the stages, assembler and source that are necessary to build
images with OSTree support in the osbuild-ostree sub-package.
2020-04-15 19:37:20 +02:00