SHA256
1
0
forked from pool/ignition
ignition/ignition.spec
Ignaz Forster db1f09c4a1 - Update to version 2.18.0:
* NEWS: update 2.18.0
  * azure: retry HTTP requests on codes 404, 410, and 429
  * docs: add missing scaleway link
  * providers: add scaleway
  * resource/url: customize local address (port)
  * stages/files: filter out non-existent paths before relabeling
  * docs/release-notes: tweak dracut module change
  * Bump minimum Go version to 1.20
  * dracut: Don't include the ignition module by default
  * ci: cancel previous build on PR update
  * Sync repo templates ⚙
  * Update build(deps)
- Remove because included in upstream now:
  0005-dracut-Don-t-include-the-ignition-module-by-default.patch
- Increased required Go version

OBS-URL: https://build.opensuse.org/package/show/devel:kubic:ignition/ignition?expand=0&rev=121
2024-03-14 15:46:54 +00:00

139 lines
5.2 KiB
RPMSpec

#
# spec file for package ignition
#
# Copyright (c) 2024 SUSE LLC
#
# All modifications and additions to the file contributed by third parties
# remain the property of their copyright owners, unless otherwise agreed
# upon. The license for this file, and modifications and additions to the
# file, is the same license as for the pristine package itself (unless the
# license for the pristine package is not an Open Source License, in which
# case the license is the MIT License). An "Open Source License" is a
# license that conforms to the Open Source Definition (Version 1.9)
# published by the Open Source Initiative.
# Please submit bugfixes or comments via https://bugs.opensuse.org/
#
Name: ignition
Version: 2.18.0
Release: 0
Summary: First boot installer and configuration tool
License: Apache-2.0
Group: System/Management
URL: https://github.com/coreos/ignition
Source: %{name}-%{version}.tar.xz
Source1: ignition-mount-initrd-fstab.service
Source2: ignition-umount-initrd-fstab.service
Source3: ignition-suse-generator
Source4: module-setup.sh
Source7: README.SUSE
Source8: ignition-setup-user.sh
Source9: ignition-setup-user.service
Source10: ignition-enable-network.service
Source11: ignition-enable-network.sh
Source12: ignition-kargs-helper
Source13: ignition-remove-reconfig_system.service
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
Patch3: 0003-Move-the-GPT-header-on-resized-disks.patch
Patch4: 0004-Order-ignition-disks.service-before-systemd-fsck-roo.patch
BuildRequires: dracut
BuildRequires: libblkid-devel
BuildRequires: systemd-rpm-macros
BuildRequires: update-bootloader-rpm-macros
BuildRequires: golang(API) >= 1.20
# combustion provides firstboot.target and ignition-kargs-helper calls combustion
Requires: combustion >= 1.2
Requires: dracut
Recommends: %{_sbindir}/groupadd
Recommends: %{_sbindir}/sgdisk
Recommends: %{_sbindir}/useradd
Recommends: %{_sbindir}/usermod
Recommends: /sbin/mkfs.btrfs
Recommends: /sbin/mkfs.ext4
Recommends: /sbin/mkfs.vfat
Recommends: /sbin/mkfs.xfs
Recommends: /sbin/mkswap
Recommends: /sbin/udevadm
Suggests: /sbin/mdadm
Provides: ignition-dracut = 0.0+git20200722.98ed51d
Obsoletes: ignition-dracut < 0.0+git20200722.98ed51d
# Not provided because the mechanism is different
Obsoletes: ignition-dracut-grub2 < %{version}-%{release}
%{update_bootloader_requires}
%description
Ignition is an utility to manipulate disks and configuration files
during the initramfs. This includes partitioning disks, formatting
partitions, writing files (regular files, systemd units, etc.), and
creating users.
On first boot, Ignition reads its configuration from a source of truth
(remote URL, network metadata service, hypervisor bridge, etc.) and
applies the configuration.
%prep
%autosetup -p1
mkdir -p dracut/30ignition-microos grub systemd_suse/ignition-delete-config.service.d
chmod +x %{SOURCE3} %{SOURCE4} %{SOURCE8} %{SOURCE12}
cp %{SOURCE1} %{SOURCE2} %{SOURCE3} %{SOURCE4} %{SOURCE8} %{SOURCE9} %{SOURCE10} %{SOURCE11} %{SOURCE13} %{SOURCE14} dracut/30ignition-microos/
%ifarch aarch64 %{arm}
cp %{SOURCE21} dracut/30ignition-microos/ignition-userconfig-timeout.conf
%else
cp %{SOURCE20} dracut/30ignition-microos/ignition-userconfig-timeout.conf
%endif
cp %{SOURCE15} systemd_suse/ignition-delete-config.service.d/
cp %{SOURCE7} .
cp %{SOURCE12} dracut/30ignition/ignition-kargs-helper.sh
%build
sed -i -e 's|go build -ldflags|go build -buildmode=pie -ldflags|g' build
env VERSION=%{version} GLDFLAGS='-X github.com/coreos/ignition/v2/internal/distro.selinuxRelabel=false -X github.com/coreos/ignition/v2/internal/distro.writeAuthorizedKeysFragment=false ' bash -x ./build
%install
make -o all install DESTDIR=%{buildroot}
install -d %{buildroot}%{_sysconfdir}/grub.d
install -d %{buildroot}%{_unitdir}/ignition-delete-config.service.d
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/* %{buildroot}/%{_sbindir}/
rmdir %{buildroot}/usr/libexec
%pre
%service_add_pre ignition-delete-config.service
%post
%{?regenerate_initrd_post}
%service_add_post ignition-delete-config.service
%preun
%service_del_preun ignition-delete-config.service
%postun
%service_del_postun_without_restart ignition-delete-config.service
%posttrans
%{?regenerate_initrd_posttrans}
%files
%license LICENSE
%doc README.md README.SUSE docs/*.md
# Paths are hardcoded in the Makefile
/usr/lib/dracut/modules.d/30ignition
/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
%changelog