Compare commits

...

No commits in common. "c9-beta" and "c9s" have entirely different histories.
c9-beta ... c9s

13 changed files with 310 additions and 6 deletions

1
.fmf/version Normal file
View File

@ -0,0 +1 @@
1

70
.gitignore vendored
View File

@ -1,2 +1,68 @@
SOURCES/ignition-2.20.0.tar.gz /ignition-40c0b57.tar.gz
SOURCES/ignition-edge-b8d1b7a.tar.gz /ignition-7610725.tar.gz
/ignition-dracut-d664657.tar.gz
/ignition-cc7ebe0.tar.gz
/ignition-dracut-56aa514.tar.gz
/ignition-f707912.tar.gz
/ignition-dracut-d056287.tar.gz
/ignition-dracut-8c85eb3.tar.gz
/ignition-dracut-c09ce6f.tar.gz
/ignition-dracut-4bdfb34.tar.gz
/ignition-dracut-7ee64ca.tar.gz
/ignition-dracut-decf63f.tar.gz
/ignition-dracut-7b83454.tar.gz
/ignition-b1ab0b2.tar.gz
/ignition-308d7a0.tar.gz
/ignition-dracut-fa7131b.tar.gz
/ignition-dracut-2c69925.tar.gz
/ignition-f59a653.tar.gz
/ignition-dracut-0d09097.tar.gz
/ignition-dracut-73ec3fc.tar.gz
/ignition-dracut-ec9a492.tar.gz
/ignition-906cf04.tar.gz
/ignition-dracut-85f2e65.tar.gz
/ignition-910e6c6.tar.gz
/ignition-dracut-df88988.tar.gz
/ignition-0c1da80.tar.gz
/ignition-e75cf24.tar.gz
/ignition-dracut-343b886.tar.gz
/ignition-dracut-d63f76f.tar.gz
/ignition-641ec6a.tar.gz
/ignition-dracut-3d08487.tar.gz
/ignition-dracut-8bf2cbd.tar.gz
/ignition-a8f91fa.tar.gz
/ignition-dracut-736459e.tar.gz
/ignition-dracut-14808e2.tar.gz
/ignition-2d3ff58.tar.gz
/ignition-dracut-f67d587.tar.gz
/ignition-dracut-793d0ef.tar.gz
/ignition-dracut-6136be3.tar.gz
/ignition-dracut-390779d.tar.gz
/ignition-ee616d5.tar.gz
/ignition-dracut-7ff38d9.tar.gz
/ignition-dracut-8f5d1ec.tar.gz
/ignition-dracut-bdf0a65.tar.gz
/ignition-d18bf90.tar.gz
/ignition-dracut-e75fef0.tar.gz
/ignition-5260a5b.tar.gz
/ignition-dracut-6b1d128.tar.gz
/ignition-0d6f3e5.tar.gz
/ignition-947598e.tar.gz
/ignition-5be43fd.tar.gz
/ignition-db4d30d.tar.gz
/ignition-c733d23.tar.gz
/ignition-1d56dc8.tar.gz
/ignition-2.9.0.tar.gz
/ignition-2.12.0.tar.gz
/ignition-2.13.0.tar.gz
/ignition-2.14.0.tar.gz
/ignition-edge-a3a8f0a.tar.gz
/ignition-2.15.0.tar.gz
/ignition-edge-35853de.tar.gz
/ignition-2.16.2.tar.gz
/ignition-2.17.0.tar.gz
/ignition-2.18.0.tar.gz
/ignition-2.19.0.tar.gz
/ignition-edge-b8d1b7a.tar.gz
/ignition-2.20.0.tar.gz
/ignition-2.21.0.tar.gz

View File

@ -1,2 +0,0 @@
869ef34676237447050898b7b9f549c43f64fe03 SOURCES/ignition-2.20.0.tar.gz
0069b62bce8673f82ac6a4b9959ec8db4ffed8ad SOURCES/ignition-edge-b8d1b7a.tar.gz

View File

@ -0,0 +1,49 @@
From 8db6a73a353aee31ac07a60c09c1d8a749f3234e Mon Sep 17 00:00:00 2001
From: Etienne Champetier <e.champetier@ateme.com>
Date: Mon, 17 Mar 2025 14:52:48 -0400
Subject: [PATCH] Rename ignition.cfg -> 05_ignition.cfg
When bootupd/grub2-static/configs.d was introduced,
blscfg was after every config. Some config need to be after blscfg,
so rename to 05_ignition.cfg so we can align bootupd numbering with
legacy grub (blscfg is in 10_linux).
---
Makefile | 2 +-
docs/release-notes.md | 2 ++
grub2/{ignition.cfg => 05_ignition.cfg} | 0
3 files changed, 3 insertions(+), 1 deletion(-)
rename grub2/{ignition.cfg => 05_ignition.cfg} (100%)
diff --git a/Makefile b/Makefile
index 635b809f..2f3ed33c 100644
--- a/Makefile
+++ b/Makefile
@@ -33,7 +33,7 @@ install: all
ln -sf ../lib/dracut/modules.d/30ignition/ignition $(DESTDIR)/usr/libexec/ignition-rmcfg
install-grub-for-bootupd:
- install -m 0644 -D -t $(DESTDIR)/usr/lib/bootupd/grub2-static/configs.d grub2/ignition.cfg
+ install -m 0644 -D -t $(DESTDIR)/usr/lib/bootupd/grub2-static/configs.d grub2/05_ignition.cfg
.PHONY: vendor
vendor:
diff --git a/docs/release-notes.md b/docs/release-notes.md
index 6829e671..ec3c1aa7 100644
--- a/docs/release-notes.md
+++ b/docs/release-notes.md
@@ -12,6 +12,8 @@ nav_order: 9
### Changes
+- Rename ignition.cfg -> 05_ignition.cfg
+
### Bug fixes
diff --git a/grub2/ignition.cfg b/grub2/05_ignition.cfg
similarity index 100%
rename from grub2/ignition.cfg
rename to grub2/05_ignition.cfg
--
2.48.1

3
README.md Normal file
View File

@ -0,0 +1,3 @@
# ignition
The ignition package

6
gating.yaml Normal file
View File

@ -0,0 +1,6 @@
--- !Policy
product_versions:
- rhel-9
decision_context: osci_compose_gate
rules:
- !PassingTestCaseRule {test_case_name: osci.brew-build./tests/tmt/plans/smoke} # this is the testcase identifier, which OSCI pipeline uses

84
go-mods-to-bundled-provides.py Executable file
View File

@ -0,0 +1,84 @@
#!/usr/bin/env python3
'''
Tiny dumb script that generates virtual bundled `Provides` from a repo that
uses go modules and vendoring.
'''
import sys
import re
def main():
repos = get_repos_from_go_mod()
print_provides_from_modules_txt(repos)
def get_repos_from_go_mod():
repos = {}
in_reqs = False
for line in open('go.mod'):
line = line.strip()
if in_reqs and line.startswith(')'):
break
if not in_reqs:
if line.startswith('require ('):
in_reqs = True
continue
req = line.split()
repo = req[0]
tag = req[1]
repos[repo] = go_mod_tag_to_rpm_provides_version(tag)
return repos
def go_mod_tag_to_rpm_provides_version(tag):
# go.mod tags are either exact git tags, or may be "pseudo-versions". We
# want to convert these tags to something resembling a version string that
# RPM won't fail on. For more information, see
# https://golang.org/cmd/go/#hdr-Pseudo_versions and following sections.
# trim off any +incompatible
if tag.endswith('+incompatible'):
tag = tag[:-len('+incompatible')]
# git tags are normally of the form v$VERSION
if tag.startswith('v'):
tag = tag[1:]
# is this a pseudo-version? e.g. v0.0.0-20181031085051-9002847aa142
m = re.match("(.*)-([0-9.]+)-([a-f0-9]{12})", tag)
if m:
# rpm doesn't like multiple dashes in the version, so just merge the
# timestamp and the commit checksum into the "release" field
tag = f"{m.group(1)}-{m.group(2)}.git{m.group(3)}"
return tag
def print_provides_from_modules_txt(repos):
for line in open('vendor/modules.txt'):
if line.startswith('#'):
continue
gopkg = line.strip()
repo = lookup_repo_for_pkg(repos, gopkg)
if not repo:
# must be a pkg for tests only; ignore
continue
tag = repos[repo]
print(f"Provides: bundled(golang({gopkg})) = {tag}")
def lookup_repo_for_pkg(repos, gopkg):
for repo in repos:
if gopkg.startswith(repo):
return repo
if __name__ == '__main__':
sys.exit(main())

14
ignition.rpmlintrc Normal file
View File

@ -0,0 +1,14 @@
# Suppress hardcoded library path warning
addFilter("hardcoded-library-path in %{_prefix}/lib/dracut")
# Ignition sources have duplicate files because of how spec versioning is
# implemented
addFilter("ignition-debugsource.x86_64: W: files-duplicate")
# -validate-redistributable is supposed to have binaries in it
addFilter("ignition-validate-redistributable.noarch: E: arch-independent-package-contains-binary-or-object")
# This is documented as optional
# https://fedoraproject.org/wiki/Upgrade_paths_%E2%80%94_renaming_or_splitting_packages#Do_I_need_to_Provide_my_old_package_names.3F
addFilter("ignition.x86_64: W: obsolete-not-provided ignition-dracut")
addFilter("ignition-validate-redistributable.noarch: W: obsolete-not-provided ignition-validate-nonlinux")

View File

@ -13,7 +13,7 @@
# https://github.com/coreos/ignition # https://github.com/coreos/ignition
%global goipath github.com/coreos/ignition %global goipath github.com/coreos/ignition
%global gomodulesmode GO111MODULE=on %global gomodulesmode GO111MODULE=on
Version: 2.20.0 Version: 2.21.0
%gometa %gometa
@ -31,6 +31,8 @@ URL: %{gourl}
Source0: %{gosource} Source0: %{gosource}
Source1: https://github.com/fedora-iot/ignition-edge/archive/%{ignedgecommit}/ignition-edge-%{ignedgeshortcommit}.tar.gz Source1: https://github.com/fedora-iot/ignition-edge/archive/%{ignedgecommit}/ignition-edge-%{ignedgeshortcommit}.tar.gz
Patch0: 0001-Rename-ignition.cfg-05_ignition.cfg.patch
BuildRequires: libblkid-devel BuildRequires: libblkid-devel
BuildRequires: systemd-rpm-macros BuildRequires: systemd-rpm-macros
@ -218,6 +220,18 @@ It is only used for building release binaries to be signed by Fedora release
engineering and uploaded to the Ignition GitHub releases page. engineering and uploaded to the Ignition GitHub releases page.
%endif %endif
############## grub subpackage ##############
%package grub
Summary: Enablement glue for bootupd's grub2 config
License: Apache-2.0
# `ignition-grub` is a rename `ignition-ignition-grub` so let's obsolete `ignition-ignition-grub`
Obsoletes: ignition-ignition-grub
%description grub
This package contains the grub2 config which is compatable with bootupd.
############## ignition-edge subpackage ############## ############## ignition-edge subpackage ##############
%if 0%{?rhel} && !0%{?eln} %if 0%{?rhel} && !0%{?eln}
@ -258,7 +272,8 @@ echo "Building ignition..."
echo "Building ignition-validate..." echo "Building ignition-validate..."
%gobuild -o ./ignition-validate validate/main.go %gobuild -o ./ignition-validate validate/main.go
%global gocrossbuild go build -ldflags "${LDFLAGS:-} -B 0x$(head -c20 /dev/urandom|od -An -tx1|tr -d ' \\n')" -a -v -x
%global gocrossbuild go build -ldflags "${LDFLAGS:-} -B 0x$(cat /dev/urandom | tr -d -c '0-9a-f' | head -c16)" -a -v -x
%if 0%{?fedora} %if 0%{?fedora}
echo "Building statically-linked Linux ignition-validate..." echo "Building statically-linked Linux ignition-validate..."
@ -269,6 +284,7 @@ CGO_ENABLED=0 GOARCH=amd64 GOOS=linux %gocrossbuild -o ./ignition-validate-x86_6
echo "Building macOS ignition-validate..." echo "Building macOS ignition-validate..."
GOARCH=amd64 GOOS=darwin %gocrossbuild -o ./ignition-validate-x86_64-apple-darwin validate/main.go GOARCH=amd64 GOOS=darwin %gocrossbuild -o ./ignition-validate-x86_64-apple-darwin validate/main.go
GOARCH=arm64 GOOS=darwin %gocrossbuild -o ./ignition-validate-aarch64-apple-darwin validate/main.go
echo "Building Windows ignition-validate..." echo "Building Windows ignition-validate..."
GOARCH=amd64 GOOS=windows %gocrossbuild -o ./ignition-validate-x86_64-pc-windows-gnu.exe validate/main.go GOARCH=amd64 GOOS=windows %gocrossbuild -o ./ignition-validate-x86_64-pc-windows-gnu.exe validate/main.go
@ -283,12 +299,18 @@ install -m 0755 -d %{buildroot}/%{_libexecdir}
ln -sf ../lib/dracut/modules.d/30ignition/ignition %{buildroot}/%{_libexecdir}/ignition-apply ln -sf ../lib/dracut/modules.d/30ignition/ignition %{buildroot}/%{_libexecdir}/ignition-apply
ln -sf ../lib/dracut/modules.d/30ignition/ignition %{buildroot}/%{_libexecdir}/ignition-rmcfg ln -sf ../lib/dracut/modules.d/30ignition/ignition %{buildroot}/%{_libexecdir}/ignition-rmcfg
# grub
install -d -p %{buildroot}%{_prefix}/lib/bootupd/grub2-static/configs.d
install -p -m 0644 grub2/05_ignition.cfg %{buildroot}%{_prefix}/lib/bootupd/grub2-static/configs.d/
# ignition # ignition
install -d -p %{buildroot}%{_bindir} install -d -p %{buildroot}%{_bindir}
install -p -m 0755 ./ignition-validate %{buildroot}%{_bindir} install -p -m 0755 ./ignition-validate %{buildroot}%{_bindir}
%if 0%{?fedora} %if 0%{?fedora}
install -d -p %{buildroot}%{_datadir}/ignition install -d -p %{buildroot}%{_datadir}/ignition
install -p -m 0644 ./ignition-validate-aarch64-apple-darwin %{buildroot}%{_datadir}/ignition
install -p -m 0644 ./ignition-validate-aarch64-unknown-linux-gnu-static %{buildroot}%{_datadir}/ignition install -p -m 0644 ./ignition-validate-aarch64-unknown-linux-gnu-static %{buildroot}%{_datadir}/ignition
install -p -m 0644 ./ignition-validate-ppc64le-unknown-linux-gnu-static %{buildroot}%{_datadir}/ignition install -p -m 0644 ./ignition-validate-ppc64le-unknown-linux-gnu-static %{buildroot}%{_datadir}/ignition
install -p -m 0644 ./ignition-validate-s390x-unknown-linux-gnu-static %{buildroot}%{_datadir}/ignition install -p -m 0644 ./ignition-validate-s390x-unknown-linux-gnu-static %{buildroot}%{_datadir}/ignition
@ -328,6 +350,7 @@ install -p -m 0755 ./ignition %{buildroot}/%{dracutlibdir}/modules.d/30ignition
%files validate-redistributable %files validate-redistributable
%license %{golicenses} %license %{golicenses}
%dir %{_datadir}/ignition %dir %{_datadir}/ignition
%{_datadir}/ignition/ignition-validate-aarch64-apple-darwin
%{_datadir}/ignition/ignition-validate-aarch64-unknown-linux-gnu-static %{_datadir}/ignition/ignition-validate-aarch64-unknown-linux-gnu-static
%{_datadir}/ignition/ignition-validate-ppc64le-unknown-linux-gnu-static %{_datadir}/ignition/ignition-validate-ppc64le-unknown-linux-gnu-static
%{_datadir}/ignition/ignition-validate-s390x-unknown-linux-gnu-static %{_datadir}/ignition/ignition-validate-s390x-unknown-linux-gnu-static
@ -336,6 +359,11 @@ install -p -m 0755 ./ignition %{buildroot}/%{dracutlibdir}/modules.d/30ignition
%{_datadir}/ignition/ignition-validate-x86_64-unknown-linux-gnu-static %{_datadir}/ignition/ignition-validate-x86_64-unknown-linux-gnu-static
%endif %endif
%files grub
%doc README.md
%license %{golicenses}
%{_prefix}/lib/bootupd/grub2-static/configs.d/05_ignition.cfg
%if 0%{?rhel} && !0%{?eln} %if 0%{?rhel} && !0%{?eln}
%files edge %files edge
%license %{golicenses} %license %{golicenses}
@ -352,6 +380,12 @@ install -p -m 0755 ./ignition %{buildroot}/%{dracutlibdir}/modules.d/30ignition
%endif %endif
%changelog %changelog
* Thu Mar 24 2025 Yasmin Valim <ydesouza@redhat.com> - 2.21.0-1
- Re-sync with upstream changes adding ignition-grub subpackage
and a few minor changes
- New release
* Mon Nov 04 2024 Steven Presti <spresti@redhat.com> - 2.20.0-1 * Mon Nov 04 2024 Steven Presti <spresti@redhat.com> - 2.20.0-1
- New release - New release

2
sources Normal file
View File

@ -0,0 +1,2 @@
SHA512 (ignition-2.21.0.tar.gz) = f388dff9f0bf0bbe54ec2e6c88f35fab886b2ca7de6828c10456c0bfa44412d41e624682df1271c153ac9f721b4ace1e70104ee48760e19e13c257b99f8ab453
SHA512 (ignition-edge-b8d1b7a.tar.gz) = 4ad167d89a4efeca8a24f24fe5a0bd2e5a1acfa86eb21653d84ad136236c727c328e7da890f3294a2e81b32e7b52435713e71fdbdd9d93d815f1c202b4f49f36

23
tests/tests.yml Normal file
View File

@ -0,0 +1,23 @@
---
- hosts: localhost
roles:
- role: standard-test-basic
tags:
- classic
required-packages:
- ignition
- ignition-validate
tests:
- ignition-run-version:
dir: ./
run: /usr/lib/dracut/modules.d/30ignition/ignition --version
- ignition-validate-run-version:
dir: ./
run: /usr/bin/ignition-validate --version
- ignition-rpm-installed:
dir: ./
run: /usr/bin/rpm -q ignition
- ignition-validate-rpm-installed:
dir: ./
run: /usr/bin/rpm -q ignition-validate

12
tests/tmt/plans/main.fmf Normal file
View File

@ -0,0 +1,12 @@
---
prepare:
- name: Install ignition package
how: install
package: ignition
- name: Set IGNITION_BIN_DIR when installed package
how: shell
script: |
set -x -e -o pipefail
echo "IGNITION_BIN_DIR=/usr/lib/dracut/modules.d/30ignition" > /tmp/ignition_bin_dir

12
tests/tmt/plans/smoke.fmf Normal file
View File

@ -0,0 +1,12 @@
---
summary: Run gating tests
tag:
- smoke
discover:
- name: Internal gating tests
how: fmf
url: https://github.com/coreos/ignition.git
filter: 'tag: smoke'
execute:
how: tmt