Commit graph

3645 commits

Author SHA1 Message Date
schutzbot
d9af977f78 Post release version bump
[skip ci]
2025-08-13 08:37:21 +00:00
Achilleas Koutsou
e31084e520 stages/tar: add --numeric-owner option
The numeric-owner option omits the inclusion of user and group names in
the archive metadata.  This is often desirable since name and group
mappings can change the ownership of files during extraction.

The test uses the tarfile module to check that the uname and gname
attributes in the tar archive itself are empty, which is the intended
effect of enabling numeric-owner [1].

RHEL-102854

[1] https://www.gnu.org/software/tar//manual/html_section/Attributes.html
2025-08-12 19:44:14 +02:00
schutzbot
77701f6f1d Schutzfile: Update images dependency ref to latest 2025-08-11 14:58:24 +02:00
schutzbot
582195bb90 Schutzfile: Update images dependency ref to latest 2025-08-05 21:20:32 +02:00
schutzbot
e0d18c2d81 schutzfile: Update snapshots to 20250730 2025-07-31 10:26:56 +02:00
Achilleas Koutsou
7c30cf7280 test/data: update test manifests
Update test manifests by running tools/update-test-manifests.
This bumps the snapshot date for all CentOS Stream 9 test manifests,
which currently is only the authconfig and dnf4.versionlock.
2025-07-31 00:53:54 +02:00
Achilleas Koutsou
e253f7c8b9 tools: new script: update-test-manifests
Add a new script that parses the Schutzfile for repository snapshot
dates and updates any vars.ipp file found in test/data/manifests/ to
match the snapshot date for the same distro.
After modifying the vars.ipp files, it runs `sudo make test-data` to
regenerate all test manifests and then, for each modified manifest,
generates the new diff.json for that stage test.

A few things to note:
- The distro detection for each vars.ipp file is partially
  heuristic-based.  It assumes that the first component of the filename
  is the distribution name.  This is true for our current files, but
  it's not a hard rule.  The script will fail with an error if the first
  component of a filename is not a valid distro name.
- The script uses ruamel.yaml instead of the standard pyyaml.
  ruamel.yaml is much better at preserving the structure of the original
  yaml file during a load-modify-dump and provides more ways of
  controlling indentation and wrapping.  The package will need to be
  installed in any runner that calls this script.
- This script will eventually become part of a GitHub workflow that is
  dispatched from the rpmrepo snapshot creation job.  When that happens,
  it might be changed to take snapshot dates as arguments rather than
  reading them from the Schutzfile.
2025-07-31 00:53:54 +02:00
Achilleas Koutsou
5d861870f8 test/data/manifests: fix module-platform-id
A couple of CentOS Stream 9 manifests were setting 'el9' as their
module-platform-id, making the depsolver complain.
Fixed to the correct 'platform:el9'.
2025-07-31 00:53:54 +02:00
schutzbot
7124e6dc64 Post release version bump
[skip ci]
2025-07-30 08:39:20 +00:00
Brian C. Lane
e3236a8b34 org.osbuild.grub2.iso.legacy: Add support for default menu selection
Currently the grub2 menu defaults to the first entry. This adds support
for setting the default to a later entry. The default in the official
boot.iso is entry 1 -- booting with the iso checksum check.

This includes a test for the new behavior.
2025-07-29 10:09:14 -07:00
Brian C. Lane
f49621ce44 org.osbuild.grub2.iso: Add support for default menu selection
Currently the grub2 menu defaults to the first entry. This adds support
for setting the default to a later entry. The default in the official
boot.iso is entry 1 -- booting with the iso checksum check.

This includes a test for the new behavior.
2025-07-29 10:09:14 -07:00
schutzbot
841e89fe08 Schutzfile: Update images dependency ref to latest 2025-07-29 11:52:02 +02:00
jbtrystram
f4698da5bb stages/ignition: parametrize the path to boot
Allow passing a mount to specify where to write the igntion.firstboot
file.
This keeps the default `tree:///` value to not break existing stages.
2025-07-28 21:14:02 +02:00
Brian C. Lane
de22369919 org.osbuild.isolinux: Add support for optional fips menu
On RHEL 9.7+ and on RHEL 10.1+ we need to be able to include a menu that
boots the installer environment with fips=1 on the cmdline. This adds an
optional menu entry controlled by the "fips" boolean.

This also includes a new test for the menus with and without fips
included.

Related: RHEL-104075
2025-07-25 22:52:19 +02:00
Brian C. Lane
d085681911 org.osbuild.grub2.iso.legacy: Add support for optional fips menu
On RHEL 9.7+ and on RHEL 10.1+ we need to be able to include a menu that
boots the installer environment with fips=1 on the cmdline. This adds an
optional menu entry controlled by the "fips" boolean.

This also includes a test for the new behavior.

Related: RHEL-104075
2025-07-25 22:52:19 +02:00
Brian C. Lane
9a563f8306 org.osbuild.grub2.iso: Add support for optional fips menu
On RHEL 9.7+ and on RHEL 10.1+ we need to be able to include a menu that
boots the installer environment with fips=1 on the cmdline. This adds an
optional menu entry controlled by the "fips" boolean.

This also includes a new test for the menus with and without fips
included.

Related: RHEL-104075
2025-07-25 22:52:19 +02:00
schutzbot
2344226178 Schutzfile: Update images dependency ref to latest 2025-07-24 08:47:16 +02:00
Bipin B Narayan
7593b65dc7 live-artifacts: read os name from /usr/lib/os-release
With importing ociarchive, the treefile.json doesn't contain osname.
2025-07-16 14:43:18 +02:00
schutzbot
49ee5fca02 Post release version bump
[skip ci]
2025-07-15 10:09:33 +00:00
Simon de Vlieger
fd6801e380 stages/vagrant: allow configuring synced folders
When guest additions are not installed in VirtualBox Vagrant boxes then
the default shared `/vagrant` directory must be set to `rsync`,
otherwise Vagrant fails to start as the shared directory cannot be
mounted with the `vboxfs` filesystem.

Let's expand the schema to allow for `synced-folders` (currently only
accepted under the `virtualbox` variant of the schema) to allow setting
the bare subset of relevant options to configure this from `images`.

Signed-off-by: Simon de Vlieger <supakeen@redhat.com>
2025-07-11 17:13:49 +02:00
schutzbot
5217c8931f Post release version bump
[skip ci]
2025-07-07 15:25:12 +00:00
Achilleas Koutsou
31d0923b41 stages/test: add dnf4.versionlock file format check
Add a test that builds the stage test manifest with the versionlock
plugin (test/stages/dnf4.versionlock/b.json) to export the tree and read
the file created by the tree.
The test then chroots into the tree and dnf versionlock add to create a
file using the actual plugin and compares the created file with the one
created by the stage.
2025-07-07 17:19:25 +02:00
Achilleas Koutsou
19a1bd8f4c test: add test manifests for dnf4.versionlock 2025-07-07 17:19:25 +02:00
Achilleas Koutsou
a4061f831e stages/dnf4.versionlock: respect SOURCE_DATE_EPOCH
Respect the SOURCE_DATE_EPOCH environment variable for reproducible
builds.

https://reproducible-builds.org/docs/source-date-epoch/
2025-07-07 17:19:25 +02:00
Achilleas Koutsou
ece618d0d0 stages/test: add unit tests for the dnf4.versionlock stage 2025-07-07 17:19:25 +02:00
Achilleas Koutsou
06344b6827 stages: add a new dnf4.versionlock stage
New stage that writes a versionlock.list to lock packages in the format
used by the dnf4 versionlock plugin.
2025-07-07 17:19:25 +02:00
schutzbot
0fb474b9c4 Schutzfile: Update images dependency ref to latest 2025-07-07 13:56:52 +02:00
Leonardo Rossetti
4af53e4c6e add ssh_pwauth to org.osbuild.cloud-init
Signed-off-by: Leonardo Rossetti <lrossett@redhat.com>
2025-07-04 21:52:00 +02:00
Jelle van der Waa
f7ef1d6464 stages/vagrant: add virtualbox support
This adds support generating a virtualbox vagrant image. It differs from
libvirt by requiring an xml file and a vmdk image.

When the provider is set to libvirt it is required to pass a
`virtualbox` configuration section to this stage which must include the
mac address.

Signed-off-by: Simon de Vlieger <supakeen@redhat.com>
2025-07-04 14:09:47 +02:00
schutzbot
4ec94759a1 Post release version bump
[skip ci]
2025-07-02 08:36:52 +00:00
Tom Koscielniak
efc8b2dd90 tests/CI: Fix RHEL 10 mock config creation and repo URLs
Fix RHEL 10 mock confings not being created if the machine was subscribed and fix RHEL 9 being used in the RHEL 10 mock confings for a repo path.
These issues caused the rpm jobs for RHEL 10 GA to fail.
2025-07-01 17:53:44 +02:00
Tom Koscielniak
9671226fad tests/CI: Upgrade rhel 9.5 GA to 9.6 GA and add 10.0 GA
Upgrade CI to 9.6 GA and 10.0 GA (first GA runners for rhel 10) and remove 9.6 and 10.0 nightly runners from the CI.
2025-07-01 17:53:44 +02:00
Simon de Vlieger
ae70eb08d2 stages/ovf: test vbox_mac_address
Test that different calls result in different mac addresses (with the
same prefix), also test that when the correct options are passed that
the mac address is returned as is.

Signed-off-by: Simon de Vlieger <supakeen@redhat.com>
2025-07-01 15:16:35 +02:00
Simon de Vlieger
54ac04e001 stage/ovf: mac address pattern
Adds a pattern for the mac address, without delimiters; as this is the
direct input for the virtualbox mac address property.

Signed-off-by: Simon de Vlieger <supakeen@redhat.com>
2025-07-01 15:16:35 +02:00
Simon de Vlieger
02537089d8 stage/ovf: additional schema tests
Adds tests to more thoroughly look at the vmware and virtualbox schemas
by passing wrong types.

Signed-off-by: Simon de Vlieger <supakeen@redhat.com>
2025-07-01 15:16:35 +02:00
Simon de Vlieger
19c38cb38f stages/ovf: allow setting mac address for vbox
The MAC address will need to be the same as the one being used by the
Vagrant stage *if* it's being used. This leaves it up to images to
generate the correct MAC address and set it in both places.

When the OVF stage is used separately it's still fine to use a random
MAC address.

Signed-off-by: Simon de Vlieger <supakeen@redhat.com>
2025-07-01 15:16:35 +02:00
Simon de Vlieger
1cb0f26b09 stages/ovf: virtualbox's ostype as option
Let the user of the stage set the os type for the virtualbox bits.

Signed-off-by: Simon de Vlieger <supakeen@redhat.com>
2025-07-01 15:16:35 +02:00
Simon de Vlieger
ce2bda719c stages/ovf: vmware's ostype as option
Let the user of the stage set the os type for the vmware bits.

Signed-off-by: Simon de Vlieger <supakeen@redhat.com>
2025-07-01 15:16:35 +02:00
Simon de Vlieger
9559cd0528 stages/ovf: write virtualbox
Expand the written XML to include information as used by VirtualBox.
This should not affect any other use cases of the OVF document that is
generated and is purely extra information consumed by VirtualBox.

Signed-off-by: Simon de Vlieger <supakeen@redhat.com>
2025-07-01 15:16:35 +02:00
Simon de Vlieger
d85ead3956 stages/ovf: reformat
Signed-off-by: Simon de Vlieger <supakeen@redhat.com>
2025-07-01 15:16:35 +02:00
Michael Vogt
67fabadbd4 osbuild: drop + when doing QEMU_LOG=unimp
This commit drops the `QEMU_LOG=+unimp` and replaces it with
`QEMU_LOG=unimp`. The `+` format does not work and we found
this in https://github.com/osbuild/bootc-image-builder/pull/963#issuecomment-3001154460
2025-06-27 11:37:38 +02:00
schutzbot
6eddc8eec2 schutzfile: Update snapshots to 20250626 2025-06-27 11:30:44 +02:00
Alexander Larsson
b7c0520392 stages: Add tests for org.osbuild.write-device
Signed-off-by: Alexander Larsson <alexl@redhat.com>
2025-06-25 11:12:25 +02:00
Alexander Larsson
30ca57de2c stages: Add org.osbuild.write-device stage
This stage writes a file to a device using dd. This is a
rewrite/backport of one of the stages in osbuild-auto.

The osbuild-auto stage is used in automotive-image-builder to write
the aboot image to the "boot_a" partition, to allow android boot
systems to boot. We will want similar functionallity in
bootc-image-builder, so it is important to upstream this.

Signed-off-by: Alexander Larsson <alexl@redhat.com>
2025-06-25 11:12:25 +02:00
schutzbot
aac3c8b359 Schutzfile: Update images dependency ref to latest 2025-06-23 21:50:59 +02:00
Karolina Surma
7390f91592 Mark tests needing TOML-writing library with a custom marker
This way they can be conveniently skipped with `pytest -m "not
tomlwrite"` in environments where such libraries aren't available.
2025-06-23 19:51:29 +02:00
Karolina Surma
516301c02b Skip tests creating system units in RPM environment
Attempting to run them during the RPM build ends with an error:
'Failed to create directory '/run/systemd/': Permission denied'
2025-06-23 19:51:29 +02:00
schutzbot
23c8bf3e8c Post release version bump
[skip ci]
2025-06-20 10:35:58 +00:00
Simon de Vlieger
d566c68f94 stages/wsl-distribution: stage to write wsl config
This is a new stage to be able to write a (subset) of relevant keys into
the `wsl-distribution` configuration file.

The file, and these options, are necessary for the enablement of fancy
logos and experiences in WSL2.

Signed-off-by: Simon de Vlieger <supakeen@redhat.com>
2025-06-19 10:22:57 +02:00
Tomáš Hozza
53301d5e6f GHA: enable the stale action to delete its saved state
It turns out that the stale action is not able to delete its saved
state due to missing permissions. As a result, it was not processing
issues and PRs, that have been processed once, for almost a month.

The error in the job log was:
```
Warning: Error delete _state: [403] Resource not accessible by integration
```

The fix is to add `actions: write` to the action permissions

Signed-off-by: Tomáš Hozza <thozza@redhat.com>
2025-06-18 15:07:25 +01:00