From 1f816b5c36ebb00448ff0efe31ad7715f9ec4bce Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Tom=C3=A1=C5=A1=20Hozza?= Date: Mon, 19 Jan 2026 09:04:00 +0100 Subject: [PATCH 1/2] GHA: ensure that the cross-arch QEMU test uses pinned osbuild MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit It turned out that the corss-arch QEMU test was installing osbuild from the Fedora official repositories. This is not desired, because we are pinning osbuild commit in the Schutzfile. As a result, cross-arch tests break when the osbuild version in Fedora repositories is not new enough for the images library version. Modify the test case to setup pinned osbuild repositories, before installing any packages. Signed-off-by: Tomáš Hozza --- .github/workflows/tests.yml | 16 ++++++++++------ 1 file changed, 10 insertions(+), 6 deletions(-) diff --git a/.github/workflows/tests.yml b/.github/workflows/tests.yml index b4d8380c5c..3404db300c 100644 --- a/.github/workflows/tests.yml +++ b/.github/workflows/tests.yml @@ -305,8 +305,16 @@ jobs: image: registry.fedoraproject.org/fedora:latest options: "--privileged" steps: - - name: Install build and test dependencies - run: dnf -y install python3-pytest podman go btrfs-progs-devel device-mapper-devel gpgme-devel python3-pip qemu-system-s390x-core qemu-system-ppc64 qemu-user-static osbuild osbuild-depsolve-dnf cloud-utils + - name: Install build and test dependencies (without osbuild) + run: dnf -y install python3-pytest podman go btrfs-progs-devel device-mapper-devel gpgme-devel python3-pip qemu-system-s390x-core qemu-system-ppc64 qemu-user-static cloud-utils + - name: Check out code into the Go module directory + uses: actions/checkout@v6 + with: + set-safe-directory: true + - name: Setup repository for pinned osbuild commit + run: ./test/scripts/setup-osbuild-repo + - name: Install osbuild dependencies + run: dnf -y install osbuild osbuild-depsolve-dnf - name: Manually start qemu-user-static run: | # mostly for debugging @@ -318,10 +326,6 @@ jobs: ls /proc/sys/fs/binfmt_misc/ sudo SYSTEMD_LOG_LEVEL=debug /usr/lib/systemd/systemd-binfmt /usr/lib/binfmt.d/qemu-*.conf ls /proc/sys/fs/binfmt_misc/ - - name: Check out code into the Go module directory - uses: actions/checkout@v6 - with: - set-safe-directory: true - name: Cross arch integration test run: | pip install . From abf5294c5f23e7ac01d2f7b65692ea076d807cf6 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Tom=C3=A1=C5=A1=20Hozza?= Date: Mon, 19 Jan 2026 09:48:52 +0100 Subject: [PATCH 2/2] cmd/build: check minimum osbuild version before doing anything else MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit To ensure that we depsolve and build with the minimum required osbuild version, check it explicitly before doing anything else. Signed-off-by: Tomáš Hozza --- cmd/build/main.go | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/cmd/build/main.go b/cmd/build/main.go index 7edeab085a..10fd302cc7 100644 --- a/cmd/build/main.go +++ b/cmd/build/main.go @@ -50,6 +50,15 @@ func run() error { os.Exit(1) } + // NOTE: Check the minimum osbuild version before doing anything else. + // Building the manifest would fail, but we need to depsolve the packages + // also with the minimum osbuild version. Although the depsolve may fail + // with an error, it is for the best to fail with the version mismatch + // error. + if err := osbuild.CheckMinimumOSBuildVersion(); err != nil { + return err + } + distroFac := distrofactory.NewDefault() config, err := buildconfig.New(configFile, nil) if err != nil {