diff --git a/0001-ignore-missing-qemu-blockdev.patch b/0001-ignore-missing-qemu-blockdev.patch new file mode 100644 index 0000000..39ebb0f --- /dev/null +++ b/0001-ignore-missing-qemu-blockdev.patch @@ -0,0 +1,29 @@ +Author: Ignaz Forster +Date: Thu, 9 Feb 2023 16:05:27 +0100 +Upstream: Ticket opened [gh#coreos/ignition#1556] + + Continue with empty config on missing QEMU device + + The two QEMU provider implementations (fwcfg for platforms with + native support and blockdev for the others) have slightly different + behaviour: If fwcfg doesn't contain any configuration, it will just + skip ("QEMU firmware config was not found. Ignoring..."). The blockdev + provider would error out if it can't read the configuration. + + Change the behavior of the blockdev provider to match the fwcfg one + and continue with an empty configuration if the device is not there. + +diff --git a/internal/providers/qemu/qemu_blockdev.go b/internal/providers/qemu/qemu_blockdev.go +index 911eb973..11739f3e 100644 +--- a/internal/providers/qemu/qemu_blockdev.go ++++ b/internal/providers/qemu/qemu_blockdev.go +@@ -83,7 +83,8 @@ func fetchConfigFromBlockDevice(logger *log.Logger) ([]byte, error) { + return nil, err + } + case <-time.After(blockDeviceTimeout): +- return nil, fmt.Errorf("timed out after %v waiting for block device %q to appear", blockDeviceTimeout, ignitionBlockDevicePath) ++ logger.Info("timed out after %v waiting for block device %q to appear. Ignoring...", blockDeviceTimeout, ignitionBlockDevicePath) ++ return util.ParseConfig(logger, []byte{}) + } + + return bytes.TrimRight(data, "\x00"), nil diff --git a/0002-allow-multiple-mounts-of-same-device.patch b/0002-allow-multiple-mounts-of-same-device.patch index 3cd3b8b..3f5de14 100644 --- a/0002-allow-multiple-mounts-of-same-device.patch +++ b/0002-allow-multiple-mounts-of-same-device.patch @@ -6,10 +6,10 @@ Upstream: Ticket opened [gh#coreos/ignition#890] e.g. to mount several subvolumes from a Btrfs device or bind mounting the device to multiple places, by also adding the path to the key. -Index: ignition-2.4.0/config/v3_1/types/filesystem.go +Index: ignition-2.15.0/config/v3_1/types/filesystem.go =================================================================== ---- ignition-2.4.0.orig/config/v3_1/types/filesystem.go -+++ ignition-2.4.0/config/v3_1/types/filesystem.go +--- ignition-2.15.0.orig/config/v3_1/types/filesystem.go ++++ ignition-2.15.0/config/v3_1/types/filesystem.go @@ -23,7 +23,7 @@ import ( ) @@ -19,10 +19,10 @@ Index: ignition-2.4.0/config/v3_1/types/filesystem.go } func (f Filesystem) IgnoreDuplicates() map[string]struct{} { -Index: ignition-2.4.0/config/v3_2/types/filesystem.go +Index: ignition-2.15.0/config/v3_2/types/filesystem.go =================================================================== ---- ignition-2.4.0.orig/config/v3_2/types/filesystem.go -+++ ignition-2.4.0/config/v3_2/types/filesystem.go +--- ignition-2.15.0.orig/config/v3_2/types/filesystem.go ++++ ignition-2.15.0/config/v3_2/types/filesystem.go @@ -23,7 +23,7 @@ import ( ) @@ -32,10 +32,10 @@ Index: ignition-2.4.0/config/v3_2/types/filesystem.go } func (f Filesystem) IgnoreDuplicates() map[string]struct{} { -Index: ignition-2.4.0/config/v3_3/types/filesystem.go +Index: ignition-2.15.0/config/v3_3/types/filesystem.go =================================================================== ---- ignition-2.4.0.orig/config/v3_3/types/filesystem.go -+++ ignition-2.4.0/config/v3_3/types/filesystem.go +--- ignition-2.15.0.orig/config/v3_3/types/filesystem.go ++++ ignition-2.15.0/config/v3_3/types/filesystem.go @@ -23,7 +23,7 @@ import ( ) @@ -45,10 +45,23 @@ Index: ignition-2.4.0/config/v3_3/types/filesystem.go } func (f Filesystem) IgnoreDuplicates() map[string]struct{} { -Index: ignition-2.4.0/config/v3_4_experimental/types/filesystem.go +Index: ignition-2.15.0/config/v3_4/types/filesystem.go =================================================================== ---- ignition-2.4.0.orig/config/v3_4_experimental/types/filesystem.go -+++ ignition-2.4.0/config/v3_4_experimental/types/filesystem.go +--- ignition-2.15.0.orig/config/v3_4/types/filesystem.go ++++ ignition-2.15.0/config/v3_4/types/filesystem.go +@@ -23,7 +23,7 @@ import ( + ) + + func (f Filesystem) Key() string { +- return f.Device ++ return f.Device + *f.Path + } + + func (f Filesystem) IgnoreDuplicates() map[string]struct{} { +Index: ignition-2.15.0/config/v3_5_experimental/types/filesystem.go +=================================================================== +--- ignition-2.15.0.orig/config/v3_5_experimental/types/filesystem.go ++++ ignition-2.15.0/config/v3_5_experimental/types/filesystem.go @@ -23,7 +23,7 @@ import ( ) diff --git a/_service b/_service index 2bf8b8f..fe5fb77 100644 --- a/_service +++ b/_service @@ -1,7 +1,7 @@ - 2.14.0 - v2.14.0 + 2.15.0 + v2.15.0 https://github.com/coreos/ignition git enable diff --git a/_servicedata b/_servicedata index 82a8130..0e85197 100644 --- a/_servicedata +++ b/_servicedata @@ -1,6 +1,6 @@ https://github.com/coreos/ignition - d10f7c1ac3576c1010cecaa74b12a502cbfbffce + 13f05b3c9f6221fb68234387ff2e4c2d63a39b63 - + \ No newline at end of file diff --git a/ignition-2.14.0.tar.xz b/ignition-2.14.0.tar.xz deleted file mode 100644 index da98531..0000000 --- a/ignition-2.14.0.tar.xz +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:babaa5bcd775b227ee010a01313d3a6984d6edb4f4146ab067de8eca458fb340 -size 2352848 diff --git a/ignition-2.15.0.tar.xz b/ignition-2.15.0.tar.xz new file mode 100644 index 0000000..77c14e6 --- /dev/null +++ b/ignition-2.15.0.tar.xz @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:aec6dd18c40f7899c6a80fe726d22d004d423194e83562e85232e49b28f3f125 +size 2373056 diff --git a/ignition.changes b/ignition.changes index e489025..04fe0a7 100644 --- a/ignition.changes +++ b/ignition.changes @@ -1,3 +1,40 @@ +------------------------------------------------------------------- +Mon Feb 27 13:09:37 UTC 2023 - iforster@suse.com + +- Update to version 2.15.0: + * Features + * Support offline Tang provisioning via pre-shared advertisement (3.4.0) + * Allow enabling discard passthrough on LUKS devices (3.4.0) + * Allow specifying arbitrary LUKS open options (3.4.0) + * Ship aarch64 macOS ignition-validate binary in GitHub release artifacts + * Changes + * Mark the 3.4.0 config spec as stable + * No longer accept configs with version 3.4.0-experimental + * Create new 3.5.0-experimental config spec from 3.4.0 + * Fail if files/links/dirs conflict with systemd units or dropins + * Warn if template for enabled systemd instance unit has no Install section + * Warn if filesystem overwrites partitioned disk + * Warn if wipeTable overwrites a filesystem that would otherwise be reused + * Warn if user/group specified for hard link + * Install ignition-apply in /usr/libexec + * Allow distros to add Ignition command-line arguments from a unit drop-in + * Convert NEWS to Markdown and move to docs site + * Require Go 1.18+ + * Bug fixes + * Don't overwrite LUKS1 volume when storage.luks.wipeVolume is false + * Request network when custom Clevis config has needsNetwork set + * Fix creating LUKS volume with custom Clevis config that uses TPM2 + * Avoid logging spurious error when a LUKS volume wasn't previously formatted + * Fix version string in ignition-validate release container + * Fix reproducibility of systemd preset file in ignition-apply output + * Document that user/group fields aren't applied to hard links + * Clarify spec docs for files/directories/links group fields +- Modified 0002-allow-multiple-mounts-of-same-device.patch to add + new Ignition spec version +- Add 0001-ignore-missing-qemu-blockdev.patch [bsc#1207679] to + support booting without configuration device on s390x. +- Move all /usr/libexec contents to %sbindir + ------------------------------------------------------------------- Tue Aug 2 11:28:11 UTC 2022 - Fabian Vogt diff --git a/ignition.spec b/ignition.spec index e4cd4bf..677de1b 100644 --- a/ignition.spec +++ b/ignition.spec @@ -1,7 +1,7 @@ # # spec file for package ignition # -# Copyright (c) 2022 SUSE LLC +# Copyright (c) 2023 SUSE LLC # # All modifications and additions to the file contributed by third parties # remain the property of their copyright owners, unless otherwise agreed @@ -17,7 +17,7 @@ Name: ignition -Version: 2.14.0 +Version: 2.15.0 Release: 0 Summary: First boot installer and configuration tool License: Apache-2.0 @@ -41,12 +41,13 @@ Source14: ignition-touch-selinux-autorelabel.conf Source15: ignition-rmcfg-suse.conf Source20: ignition-userconfig-timeout.conf Source21: ignition-userconfig-timeout-arm.conf +Patch1: 0001-ignore-missing-qemu-blockdev.patch Patch2: 0002-allow-multiple-mounts-of-same-device.patch BuildRequires: dracut BuildRequires: libblkid-devel BuildRequires: systemd-rpm-macros BuildRequires: update-bootloader-rpm-macros -BuildRequires: golang(API) >= 1.15 +BuildRequires: golang(API) >= 1.18 Requires: %{name}-dracut-grub2 Requires: dracut Recommends: %{_sbindir}/groupadd @@ -115,7 +116,7 @@ install -p -m 0755 grub/* %{buildroot}%{_sysconfdir}/grub.d/ install -p -m 0644 systemd_suse/*.service %{buildroot}%{_prefix}/lib/systemd/system/ install -p -m 0644 systemd_suse/ignition-delete-config.service.d/* %{buildroot}%{_prefix}/lib/systemd/system/ignition-delete-config.service.d install -d %{buildroot}%{_sbindir}/ -mv %{buildroot}/usr/libexec/ignition-rmcfg %{buildroot}/%{_sbindir}/ +mv %{buildroot}/usr/libexec/* %{buildroot}/%{_sbindir}/ rmdir %{buildroot}/usr/libexec %pre @@ -173,6 +174,7 @@ fi /usr/lib/dracut/modules.d/30ignition-microos /usr/bin/ignition-validate /usr/lib/systemd/system/ignition-delete-config.service +%{_sbindir}/ignition-apply %{_sbindir}/ignition-rmcfg %dir %{_unitdir}/ignition-delete-config.service.d %{_unitdir}/ignition-delete-config.service.d/ignition-rmcfg-suse.conf