Release 1.11.0

Resolves: #RHEL-134017
Resolves: #RHEL-130799
Resolves: #RHEL-131317
This commit is contained in:
Joseph Marrero Corchado 2025-12-05 15:07:12 -05:00
parent 855d2ce1d1
commit 0fd3d89099
5 changed files with 105 additions and 25 deletions

2
.gitignore vendored
View File

@ -46,3 +46,5 @@
/bootc-1.8.0.tar.zstd
/bootc-1.10.0.tar.zstd
/bootc-1.10.0-vendor.tar.zstd
/bootc-1.11.0.tar.zstd
/bootc-1.11.0-vendor.tar.zstd

View File

@ -0,0 +1,45 @@
From: bootc maintainers <bootc@example.com>
Subject: Add RHEL entries to os-image-map.json
The os-image-map.json file is missing entries for RHEL, which causes
the provision-packit.sh script to fail when running on RHEL systems.
The jq lookup returns "null" when the rhel-X.Y key is not found, resulting
in skopeo failing with:
Error parsing image name "docker://null"
This patch adds entries for RHEL 9.7, 9.8, 10.0, 10.1, and 10.2 pointing
to CentOS Stream 9 and 10 images respectively.
---
hack/os-image-map.json | 12 ++++++++++--
1 file changed, 10 insertions(+), 2 deletions(-)
diff --git a/hack/os-image-map.json b/hack/os-image-map.json
--- a/hack/os-image-map.json
+++ b/hack/os-image-map.json
@@ -4,13 +4,23 @@
"centos-10": "quay.io/centos-bootc/centos-bootc:stream10",
"fedora-42": "quay.io/fedora/fedora-bootc:42",
"fedora-43": "quay.io/fedora/fedora-bootc:43",
- "fedora-44": "quay.io/fedora/fedora-bootc:rawhide"
+ "fedora-44": "quay.io/fedora/fedora-bootc:rawhide",
+ "rhel-9.7": "quay.io/centos-bootc/centos-bootc:stream9",
+ "rhel-9.8": "quay.io/centos-bootc/centos-bootc:stream9",
+ "rhel-10.0": "quay.io/centos-bootc/centos-bootc:stream10",
+ "rhel-10.1": "quay.io/centos-bootc/centos-bootc:stream10",
+ "rhel-10.2": "quay.io/centos-bootc/centos-bootc:stream10"
},
"buildroot-base": {
"centos-9": "quay.io/centos/centos:stream9",
"centos-10": "quay.io/centos/centos:stream10",
"fedora-42": "quay.io/fedora/fedora:42",
"fedora-43": "quay.io/fedora/fedora:43",
- "fedora-44": "quay.io/fedora/fedora:rawhide"
+ "fedora-44": "quay.io/fedora/fedora:rawhide",
+ "rhel-9.7": "quay.io/centos/centos:stream9",
+ "rhel-9.8": "quay.io/centos/centos:stream9",
+ "rhel-10.0": "quay.io/centos/centos:stream10",
+ "rhel-10.1": "quay.io/centos/centos:stream10",
+ "rhel-10.2": "quay.io/centos/centos:stream10"
}
}

View File

@ -1,4 +1,5 @@
%bcond_without check
%bcond_with tests
%if 0%{?rhel} >= 9 || 0%{?fedora} > 41
%bcond_without ostree_ext
%else
@ -21,7 +22,7 @@
%endif
Name: bootc
Version: 1.10.0
Version: 1.11.0
Release: %{autorelease}
Summary: Bootable container system
@ -38,6 +39,9 @@ URL: https://github.com/bootc-dev/bootc
Source0: %{url}/releases/download/v%{version}/bootc-%{version}.tar.zstd
Source1: %{url}/releases/download/v%{version}/bootc-%{version}-vendor.tar.zstd
# Add RHEL entries to os-image-map.json for gating tests
Patch0: 0001-Add-RHEL-entries-to-os-image-map.json.patch
# https://fedoraproject.org/wiki/Changes/EncourageI686LeafRemoval
ExcludeArch: %{ix86}
@ -84,52 +88,73 @@ Recommends: podman
%description -n system-reinstall-bootc
This package provides a utility to simplify reinstalling the current system to a given bootc image.
%if %{with tests}
%package tests
Summary: Integration tests for bootc
Requires: %{name} = %{version}-%{release}
%description tests
This package contains the integration test suite for bootc.
%endif
%global system_reinstall_bootc_install_podman_path %{_prefix}/lib/system-reinstall-bootc/install-podman
%if 0%{?container_build}
# Source is already at /src, no subdirectory
%global _buildsubdir .
%endif
%prep
%if ! 0%{?container_build}
%autosetup -p1 -a1
# Default -v vendor config doesn't support non-crates.io deps (i.e. git)
cp .cargo/vendor-config.toml .
%cargo_prep -N
cat vendor-config.toml >> .cargo/config.toml
rm vendor-config.toml
%else
# Container build: source already at _builddir (/src), nothing to extract
# RPM's %mkbuilddir creates a subdirectory; symlink it back to the source
cd ..
rm -rf %{name}-%{version}-build
ln -s . %{name}-%{version}-build
cd %{name}-%{version}-build
%endif
%build
# Build the main bootc binary
%if %new_cargo_macros
%cargo_build %{?with_rhsm:-f rhsm}
%else
%cargo_build %{?with_rhsm:--features rhsm}
%endif
# Build the system reinstallation CLI binary
%global cargo_args -p system-reinstall-bootc
export SYSTEM_REINSTALL_BOOTC_INSTALL_PODMAN_PATH=%{system_reinstall_bootc_install_podman_path}
%if %new_cargo_macros
# In cargo-rpm-macros, the cargo_build macro does flag processing,
# so we need to pass '--' to signify that cargo_args is not part
# of the macro args
%cargo_build -- %cargo_args
%else
# Older macros from rust-toolset do *not* do flag processing, so
# '--' would be passed through to cargo directly, which is not
# what we want.
%cargo_build %cargo_args
%endif
# Build this first to avoid feature skew
make manpages
# Build all binaries
%if 0%{?container_build}
# Container build: use cargo directly with cached dependencies to avoid RPM macro overhead
cargo build -j%{_smp_build_ncpus} --release %{?with_rhsm:--features rhsm} --bins
%else
# Non-container build: use RPM macros for proper dependency tracking
%if %new_cargo_macros
%cargo_build %{?with_rhsm:-f rhsm} -- --bins
%else
%cargo_build %{?with_rhsm:--features rhsm} -- --bins
%endif
%endif
%if ! 0%{?container_build}
%cargo_vendor_manifest
# https://pagure.io/fedora-rust/rust-packaging/issue/33
sed -i -e '/https:\/\//d' cargo-vendor.txt
%cargo_license_summary
%{cargo_license} > LICENSE.dependencies
%endif
%install
%make_install INSTALL="install -p -c"
%if %{with ostree_ext}
make install-ostree-hooks DESTDIR=%{?buildroot}
%endif
%if %{with tests}
install -D -m 0755 target/release/tests-integration %{buildroot}%{_bindir}/bootc-integration-tests
%endif
mkdir -p %{buildroot}/%{dirname:%{system_reinstall_bootc_install_podman_path}}
cat >%{?buildroot}/%{system_reinstall_bootc_install_podman_path} <<EOF
#!/bin/bash
@ -153,12 +178,15 @@ fi
%files -f bootcdoclist.txt
%license LICENSE-MIT
%license LICENSE-APACHE
%if ! 0%{?container_build}
%license LICENSE.dependencies
%license cargo-vendor.txt
%endif
%doc README.md
%{_bindir}/bootc
%{_prefix}/lib/bootc/
%{_prefix}/lib/systemd/system-generators/*
%{_prefix}/lib/dracut/modules.d/51bootc/
%if %{with ostree_ext}
%{_prefix}/libexec/libostree/ext/*
%endif
@ -169,5 +197,10 @@ fi
%{_bindir}/system-reinstall-bootc
%{system_reinstall_bootc_install_podman_path}
%if %{with tests}
%files tests
%{_bindir}/bootc-integration-tests
%endif
%changelog
%autochangelog

View File

@ -32,7 +32,7 @@ fi
# Get base image URL
TEST_OS="${ID}-${VERSION_ID}"
BASE=$(jq -r --arg v "$TEST_OS" '.[$v]' < os-image-map.json)
BASE=$(jq -r --arg v "$TEST_OS" '.base[$v]' < os-image-map.json)
if [[ "$ID" == "rhel" ]]; then
# OSCI gating only

View File

@ -1,2 +1,2 @@
SHA512 (bootc-1.10.0.tar.zstd) = bf091786d6dd68ceb4741533a95261b3035c65d0d536d3fa5e6eee2b7ebda0b25efbf6aedf651b2cade8bdd93d39490bb2f3fab2f380a9422458e23e9b918051
SHA512 (bootc-1.10.0-vendor.tar.zstd) = 7e291d34ef83b69d801828b99a9645d98f750c90c563774f601fd4bf84c9236e2f0964dfae2d4c46243f9b1d891d21cd8a8b5418e26a8282a1ca553bb5575aa3
SHA512 (bootc-1.11.0.tar.zstd) = f3bc4ca8d99abe5154fbccf84694bd5aebdb819d90a83ad119aee7ae4469b2e4f5313e6ce65831c007d88ddabe144bc9757793d16963a9d52ff66912057049f0
SHA512 (bootc-1.11.0-vendor.tar.zstd) = 2198d4cf9e9e44e30f1f3e998e8d640afa5fa7d2b0904a6d1ea972ff637e2a55e37fbf2b2e18454736208cec6541b98c0bd685bc8fd959346aa2be1b4aaa1729