From 6d5cc76a8b7575a7b269a5fc978a54fd9eb6f485 Mon Sep 17 00:00:00 2001 From: Evgeny Slutsky Date: Tue, 16 Jun 2026 11:35:48 +0200 Subject: [PATCH 1/2] CI: fix configure-composer.sh for EL10 compatibility - Skip genisoimage and containernetworking-plugins on EL10 where they are not available in RHEL 10.2 repos - Add python3-psutil as an explicit dependency (implicitly available on EL9 but not on EL10) Co-Authored-By: Claude Opus 4.6 --- scripts/devenv-builder/configure-composer.sh | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/scripts/devenv-builder/configure-composer.sh b/scripts/devenv-builder/configure-composer.sh index 4de872e592..22706e9652 100755 --- a/scripts/devenv-builder/configure-composer.sh +++ b/scripts/devenv-builder/configure-composer.sh @@ -9,11 +9,15 @@ install_and_configure_composer() { local -r version_id_major="$(awk -F. '{print $1}' <<< "${version_id}")" "${DNF_RETRY}" "install" "osbuild osbuild-composer" - "${DNF_RETRY}" "install" \ - "git composer-cli ostree rpm-ostree \ - cockpit-composer bash-completion podman runc genisoimage \ + + local packages="git composer-cli ostree rpm-ostree \ + cockpit-composer bash-completion podman runc \ createrepo yum-utils selinux-policy-devel jq wget lorax rpm-build \ - containernetworking-plugins expect httpd-tools vim-common" + python3-psutil expect httpd-tools vim-common" + if [[ "${version_id_major}" -lt 10 ]]; then + packages+=" genisoimage containernetworking-plugins" + fi + "${DNF_RETRY}" "install" "${packages}" # The mock utility comes from the EPEL repository "${DNF_RETRY}" "install" "https://dl.fedoraproject.org/pub/epel/epel-release-latest-${version_id_major}.noarch.rpm" From 627f754e200f8d2f08b22c923de2cfe75427afc3 Mon Sep 17 00:00:00 2001 From: Evgeny Slutsky Date: Tue, 16 Jun 2026 11:35:54 +0200 Subject: [PATCH 2/2] CI: handle missing RHEL 9 repos in build_bootc_images.py on EL10 On EL10 hosts, RHEL 9 rhocp repos do not exist. Catch the dnf download failure in extract_container_images() and skip gracefully instead of aborting the entire build. Co-Authored-By: Claude Opus 4.6 --- test/bin/pyutils/build_bootc_images.py | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/test/bin/pyutils/build_bootc_images.py b/test/bin/pyutils/build_bootc_images.py index d432db2bf3..2629f32eda 100644 --- a/test/bin/pyutils/build_bootc_images.py +++ b/test/bin/pyutils/build_bootc_images.py @@ -8,6 +8,7 @@ import os import platform import re +import subprocess import sys import time import traceback @@ -219,7 +220,13 @@ def extract_container_images(version, repo_spec, outfile, dry_run=False): # Construct and execute the dnf download command dnf_command = ["dnf", "download"] + dnf_options + [f"microshift-release-info-{version}"] - if common.run_command(dnf_command, dry_run) is not None: + try: + result = common.run_command(dnf_command, dry_run) + except subprocess.CalledProcessError: + common.print_msg(f"Warning: failed to download release-info for {version} from {repo_spec}, skipping") + common.popd() + return + if result is not None: images_output = get_container_images(str(image_path), version) with open(outfile, "a") as f: f.write(images_output.replace(',', '\n'))