import CS bootc-1.8.0-1.el10
This commit is contained in:
parent
29a3de152c
commit
bdedb0f2f4
4
.gitignore
vendored
4
.gitignore
vendored
@ -1,2 +1,2 @@
|
||||
bootc-1.1.6-vendor.tar.zstd
|
||||
bootc-1.1.6.tar.zstd
|
||||
bootc-1.8.0-vendor.tar.zstd
|
||||
bootc-1.8.0.tar.zstd
|
||||
|
||||
65
0000-bootc-inistall-provision.patch
Executable file
65
0000-bootc-inistall-provision.patch
Executable file
@ -0,0 +1,65 @@
|
||||
diff --git i/tmt/tests/bootc-install-provision.sh w/tmt/tests/bootc-install-provision.sh
|
||||
index c4c884b..29df30c 100755
|
||||
--- i/tmt/tests/bootc-install-provision.sh
|
||||
+++ w/tmt/tests/bootc-install-provision.sh
|
||||
@@ -4,6 +4,8 @@ set -exuo pipefail
|
||||
BOOTC_TEMPDIR=$(mktemp -d)
|
||||
trap 'rm -rf -- "$BOOTC_TEMPDIR"' EXIT
|
||||
|
||||
+ARCH=$(uname -m)
|
||||
+
|
||||
# LBI only enabled for test-22-logically-bound-install
|
||||
LBI="${LBI:-disabled}"
|
||||
|
||||
@@ -16,6 +18,28 @@ case "$ID" in
|
||||
"fedora")
|
||||
TIER1_IMAGE_URL="${TIER1_IMAGE_URL:-quay.io/fedora/fedora-bootc:${VERSION_ID}}"
|
||||
;;
|
||||
+ "rhel")
|
||||
+ TIER1_IMAGE_URL="${TIER1_IMAGE_URL:-images.paas.redhat.com/bootc/rhel-bootc:latest-${VERSION_ID}}"
|
||||
+
|
||||
+ CURRENT_COMPOSE_ID=$(skopeo inspect --no-tags --retry-times=5 --tls-verify=false "docker://${TIER1_IMAGE_URL}" | jq -r '.Labels."redhat.compose-id"')
|
||||
+
|
||||
+ if [[ -n ${CURRENT_COMPOSE_ID} ]]; then
|
||||
+ if [[ ${CURRENT_COMPOSE_ID} == *-updates-* ]]; then
|
||||
+ BATCH_COMPOSE="updates/"
|
||||
+ else
|
||||
+ BATCH_COMPOSE=""
|
||||
+ fi
|
||||
+ else
|
||||
+ BATCH_COMPOSE="updates/"
|
||||
+ CURRENT_COMPOSE_ID=latest-RHEL-$VERSION_ID
|
||||
+ fi
|
||||
+
|
||||
+ # use latest compose if specific compose is not accessible
|
||||
+ RC=$(curl -skIw '%{http_code}' -o /dev/null "http://download.eng.bos.redhat.com/rhel-${VERSION_ID%%.*}/nightly/${BATCH_COMPOSE}RHEL-${VERSION_ID%%.*}/${CURRENT_COMPOSE_ID}/STATUS")
|
||||
+ if [[ $RC != "200" ]]; then
|
||||
+ CURRENT_COMPOSE_ID=latest-RHEL-${VERSION_ID%%}
|
||||
+ fi
|
||||
+ ;;
|
||||
esac
|
||||
|
||||
if [ "$TMT_REBOOT_COUNT" -eq 0 ]; then
|
||||
@@ -93,6 +117,22 @@ COMMONEOF
|
||||
tee "$FEDORA_CI_CONTAINERFILE" > /dev/null << FEDORACIEOF
|
||||
FROM $TIER1_IMAGE_URL
|
||||
|
||||
+RUN <<REPORUN
|
||||
+tee "/etc/yum.repos.d/rhel.repo" >/dev/null <<RHELREPOEOF
|
||||
+[rhel-baseos]
|
||||
+name=baseos
|
||||
+baseurl=http://download.eng.bos.redhat.com/rhel-${VERSION_ID%%.*}/nightly/${BATCH_COMPOSE}RHEL-${VERSION_ID%%.*}/${CURRENT_COMPOSE_ID}/compose/BaseOS/${ARCH}/os/
|
||||
+enabled=1
|
||||
+gpgcheck=0
|
||||
+
|
||||
+[rhel-appstream]
|
||||
+name=appstream
|
||||
+baseurl=http://download.eng.bos.redhat.com/rhel-${VERSION_ID%%.*}/nightly/${BATCH_COMPOSE}RHEL-${VERSION_ID%%.*}/${CURRENT_COMPOSE_ID}/compose/AppStream/${ARCH}/os/
|
||||
+enabled=1
|
||||
+gpgcheck=0
|
||||
+RHELREPOEOF
|
||||
+REPORUN
|
||||
+
|
||||
RUN dnf -y upgrade /rpms/*.rpm
|
||||
FEDORACIEOF
|
||||
cat >"$CONTAINERFILE" <<REALEOF
|
||||
14
0001-bootc-inistall-provision.patch
Normal file
14
0001-bootc-inistall-provision.patch
Normal file
@ -0,0 +1,14 @@
|
||||
diff --git i/tmt/tests/bootc-install-provision.sh w/tmt/tests/bootc-install-provision.sh
|
||||
index 6c9968c..c617d5e 100755
|
||||
--- i/tmt/tests/bootc-install-provision.sh
|
||||
+++ w/tmt/tests/bootc-install-provision.sh
|
||||
@@ -50,7 +50,8 @@ if [ "$TMT_REBOOT_COUNT" -eq 0 ]; then
|
||||
fi
|
||||
|
||||
# Some rhts-*, rstrnt-* and tmt-* commands are in /usr/local/bin
|
||||
- cp -r /usr/local/bin "$BOOTC_TEMPDIR"
|
||||
+ cp -r /var/lib/tmt/scripts "$BOOTC_TEMPDIR/bin"
|
||||
+ ls -al "$BOOTC_TEMPDIR/bin"
|
||||
|
||||
# Check image building folder content
|
||||
ls -al "$BOOTC_TEMPDIR"
|
||||
@ -1,127 +0,0 @@
|
||||
From 7473ffd0bd0e30aecfd1af67f3ef7a69af4a4645 Mon Sep 17 00:00:00 2001
|
||||
From: Colin Walters <walters@verbum.org>
|
||||
Date: Wed, 5 Mar 2025 12:58:07 -0500
|
||||
Subject: [PATCH] store: Really remove empty /etc/resolv.conf and /etc/hostname
|
||||
|
||||
The previous change here was a no-op for two reasons:
|
||||
|
||||
- It's actually usr/etc at this point
|
||||
- We were operating on the wrong rootfs
|
||||
|
||||
Fixes: https://github.com/containers/bootc/pull/1096/commits/57bd0dc9835669274696998386a547afb6709ff5
|
||||
Signed-off-by: Colin Walters <walters@verbum.org>
|
||||
---
|
||||
ostree-ext/src/container/store.rs | 32 +++++++++++---------
|
||||
tests/booted/readonly/011-test-resolvconf.nu | 23 ++++++++++++++
|
||||
2 files changed, 40 insertions(+), 15 deletions(-)
|
||||
create mode 100644 tests/booted/readonly/011-test-resolvconf.nu
|
||||
|
||||
diff --git a/ostree-ext/src/container/store.rs b/ostree-ext/src/container/store.rs
|
||||
index 71a9824..2b3f5df 100644
|
||||
--- a/ostree-ext/src/container/store.rs
|
||||
+++ b/ostree-ext/src/container/store.rs
|
||||
@@ -466,7 +466,7 @@ fn timestamp_of_manifest_or_config(
|
||||
/// Automatically clean up files that may have been injected by container
|
||||
/// builds. xref https://github.com/containers/buildah/issues/4242
|
||||
fn cleanup_root(root: &Dir) -> Result<()> {
|
||||
- const RUNTIME_INJECTED: &[&str] = &["etc/hostname", "etc/resolv.conf"];
|
||||
+ const RUNTIME_INJECTED: &[&str] = &["usr/etc/hostname", "usr/etc/resolv.conf"];
|
||||
for ent in RUNTIME_INJECTED {
|
||||
if let Some(meta) = root.symlink_metadata_optional(ent)? {
|
||||
if meta.is_file() && meta.size() == 0 {
|
||||
@@ -1055,6 +1055,8 @@ impl ImageImporter {
|
||||
.with_context(|| format!("Checking out layer {commit}"))?;
|
||||
}
|
||||
|
||||
+ let root_dir = td.open_dir(rootpath)?;
|
||||
+
|
||||
let modifier =
|
||||
ostree::RepoCommitModifier::new(ostree::RepoCommitModifierFlags::CONSUME, None);
|
||||
modifier.set_devino_cache(&devino);
|
||||
@@ -1062,8 +1064,7 @@ impl ImageImporter {
|
||||
// the derived layers include custom policy. Just relabel everything
|
||||
// in this case.
|
||||
if have_derived_layers {
|
||||
- let rootpath = td.open_dir(rootpath)?;
|
||||
- let sepolicy = ostree::SePolicy::new_at(rootpath.as_raw_fd(), cancellable)?;
|
||||
+ let sepolicy = ostree::SePolicy::new_at(root_dir.as_raw_fd(), cancellable)?;
|
||||
tracing::debug!("labeling from merged tree");
|
||||
modifier.set_sepolicy(Some(&sepolicy));
|
||||
} else if let Some(base) = base_commit.as_ref() {
|
||||
@@ -1074,7 +1075,7 @@ impl ImageImporter {
|
||||
unreachable!()
|
||||
}
|
||||
|
||||
- cleanup_root(&td)?;
|
||||
+ cleanup_root(&root_dir)?;
|
||||
|
||||
let mt = ostree::MutableTree::new();
|
||||
repo.write_dfd_to_mtree(
|
||||
@@ -1965,23 +1966,24 @@ mod tests {
|
||||
#[test]
|
||||
fn test_cleanup_root() -> Result<()> {
|
||||
let td = cap_tempfile::TempDir::new(cap_std::ambient_authority())?;
|
||||
-
|
||||
+ let usretc = "usr/etc";
|
||||
cleanup_root(&td).unwrap();
|
||||
- td.create_dir("etc")?;
|
||||
- td.write("etc/hostname", b"hostname")?;
|
||||
+ td.create_dir_all(usretc)?;
|
||||
+ let usretc = &td.open_dir(usretc)?;
|
||||
+ usretc.write("hostname", b"hostname")?;
|
||||
cleanup_root(&td).unwrap();
|
||||
- assert!(td.try_exists("etc/hostname")?);
|
||||
- td.write("etc/hostname", b"")?;
|
||||
+ assert!(usretc.try_exists("hostname")?);
|
||||
+ usretc.write("hostname", b"")?;
|
||||
cleanup_root(&td).unwrap();
|
||||
- assert!(!td.try_exists("etc/hostname")?);
|
||||
+ assert!(!td.try_exists("hostname")?);
|
||||
|
||||
- td.symlink_contents("../run/systemd/stub-resolv.conf", "etc/resolv.conf")?;
|
||||
+ usretc.symlink_contents("../run/systemd/stub-resolv.conf", "resolv.conf")?;
|
||||
cleanup_root(&td).unwrap();
|
||||
- assert!(td.symlink_metadata("etc/resolv.conf")?.is_symlink());
|
||||
- td.remove_file("etc/resolv.conf")?;
|
||||
- td.write("etc/resolv.conf", b"")?;
|
||||
+ assert!(usretc.symlink_metadata("resolv.conf")?.is_symlink());
|
||||
+ usretc.remove_file("resolv.conf")?;
|
||||
+ usretc.write("resolv.conf", b"")?;
|
||||
cleanup_root(&td).unwrap();
|
||||
- assert!(!td.try_exists("etc/resolv.conf")?);
|
||||
+ assert!(!usretc.try_exists("resolv.conf")?);
|
||||
|
||||
Ok(())
|
||||
}
|
||||
diff --git a/tests/booted/readonly/011-test-resolvconf.nu b/tests/booted/readonly/011-test-resolvconf.nu
|
||||
new file mode 100644
|
||||
index 0000000..a5f8fe9
|
||||
--- /dev/null
|
||||
+++ b/tests/booted/readonly/011-test-resolvconf.nu
|
||||
@@ -0,0 +1,23 @@
|
||||
+use std assert
|
||||
+use tap.nu
|
||||
+
|
||||
+tap begin "verify there's not an empty /etc/resolv.conf in the image"
|
||||
+
|
||||
+let st = bootc status --json | from json
|
||||
+
|
||||
+let booted_ostree = $st.status.booted.ostree.checksum;
|
||||
+
|
||||
+# ostree ls should probably have --json and a clean way to not error on ENOENT
|
||||
+let resolvconf = ostree ls $booted_ostree /usr/etc | split row (char newline) | find resolv.conf
|
||||
+if ($resolvconf | length) > 0 {
|
||||
+ let parts = $resolvconf | first | split row -r '\s+'
|
||||
+ let ty = $parts | first | split chars | first
|
||||
+ # If resolv.conf exists in the image, currently require it in our
|
||||
+ # test suite to be a symlink (which is hopefully to the systemd/stub-resolv.conf)
|
||||
+ assert equal $ty 'l'
|
||||
+ print "resolv.conf is a symlink"
|
||||
+} else {
|
||||
+ print "No resolv.conf found in commit"
|
||||
+}
|
||||
+
|
||||
+tap ok
|
||||
--
|
||||
2.48.1
|
||||
|
||||
39
bootc.spec
39
bootc.spec
@ -2,7 +2,7 @@
|
||||
## (rpmautospec version 0.6.5)
|
||||
## RPMAUTOSPEC: autorelease, autochangelog
|
||||
%define autorelease(e:s:pb:n) %{?-p:0.}%{lua:
|
||||
release_number = 2;
|
||||
release_number = 1;
|
||||
base_release_number = tonumber(rpm.expand("%{?-b*}%{!?-b:1}"));
|
||||
print(release_number + base_release_number - 1);
|
||||
}%{?-e:.%{-e*}}%{?-s:.%{-s*}}%{!?-n:%{?dist}}
|
||||
@ -22,7 +22,7 @@
|
||||
%endif
|
||||
|
||||
Name: bootc
|
||||
Version: 1.1.6
|
||||
Version: 1.8.0
|
||||
Release: %{autorelease}
|
||||
Summary: Bootable container system
|
||||
|
||||
@ -39,7 +39,10 @@ URL: https://github.com/containers/bootc
|
||||
Source0: %{url}/releases/download/v%{version}/bootc-%{version}.tar.zstd
|
||||
Source1: %{url}/releases/download/v%{version}/bootc-%{version}-vendor.tar.zstd
|
||||
|
||||
Patch0: 0001-store-Really-remove-empty-etc-resolv.conf-and-etc-ho.patch
|
||||
# Don't remove, downstream patch only
|
||||
# Patch for integration test RHEL 9.x and 10.x support
|
||||
Patch0: 0000-bootc-inistall-provision.patch
|
||||
Patch1: 0001-bootc-inistall-provision.patch
|
||||
|
||||
# https://fedoraproject.org/wiki/Changes/EncourageI686LeafRemoval
|
||||
ExcludeArch: %{ix86}
|
||||
@ -161,6 +164,36 @@ chmod +x %{?buildroot}/%{system_reinstall_bootc_install_podman_path}
|
||||
|
||||
%changelog
|
||||
## START: Generated by rpmautospec
|
||||
* Fri Sep 05 2025 Colin Walters <walters@verbum.org> - 1.8.0-1
|
||||
- Rebase to 1.8.0
|
||||
|
||||
* Tue Aug 26 2025 Joseph Marrero Corchado <jmarrero@redhat.com> - 1.7.1-1
|
||||
- Release 1.7.1
|
||||
|
||||
* Fri Aug 22 2025 Joseph Marrero Corchado <jmarrero@redhat.com> - 1.7.0-1
|
||||
- Release 1.7.0
|
||||
|
||||
* Fri Aug 08 2025 Xiaofeng Wang <xiaofwan@redhat.com> - 1.5.1-2
|
||||
- Add 0001-bootc-inistall-provision.patch for TF 2025-06.1 change
|
||||
|
||||
* Tue Jul 22 2025 gursewak1997 <gursmangat@gmail.com> - 1.5.1-1
|
||||
- Release 1.5.1
|
||||
|
||||
* Tue Jul 15 2025 gursewak1997 <gursmangat@gmail.com> - 1.4.0-2
|
||||
- Add integration test patch back for RHEL support
|
||||
|
||||
* Fri Jul 11 2025 gursewak1997 <gursmangat@gmail.com> - 1.4.0-1
|
||||
- Release 1.4.0
|
||||
|
||||
* Fri May 30 2025 Xiaofeng Wang <xiaofwan@redhat.com> - 1.3.0-2
|
||||
- Enable gating test
|
||||
|
||||
* Fri May 30 2025 Joseph Marrero Corchado <jmarrero@redhat.com> - 1.3.0-1
|
||||
- Release 1.3.0
|
||||
|
||||
* Tue Apr 15 2025 John Eckersberg <jeckersb@redhat.com> - 1.1.7-1
|
||||
- Release 1.1.7
|
||||
|
||||
* Thu Mar 06 2025 Joseph Marrero Corchado <jmarrero@redhat.com> - 1.1.6-2
|
||||
- Backport https://github.com/containers/bootc/pull/1167
|
||||
|
||||
|
||||
4
sources
4
sources
@ -1,2 +1,2 @@
|
||||
SHA512 (bootc-1.1.6-vendor.tar.zstd) = 9fcd7356a1c97e704dd0b0f1aa2bc6929da65fd59a38031cf398bd3a1f8e5bb73d6b410a07a52767d41055785fbeeb0c31688a939ae2f5278e5dbc68ee700aa2
|
||||
SHA512 (bootc-1.1.6.tar.zstd) = 977a26e4739ba623389c51efa7122ab14b2efd7ca15d210a0eb51918ec52492c70286396f7fc25ab0615038939c0c0890fad116126b0076748c7f40c9a912f41
|
||||
SHA512 (bootc-1.8.0-vendor.tar.zstd) = 87efa96f2fb266a5ed951e24ce2992c313c7f69dbfbb36dce3ccbb5f75362db2542510ca18c405aedc5e1fa8b8d9b05855398a25d9422b978a18c3065dce7930
|
||||
SHA512 (bootc-1.8.0.tar.zstd) = 8ca696abd901dbc934c64199ee817466c41ae18dc516310e3bfcb9e67b97e5380507da6a7f480ef335241afc53794721efc6ffec58cd3b36ed857006390b9ab8
|
||||
|
||||
Loading…
Reference in New Issue
Block a user