Factory/openstack-ironic-image/openstack-ironic-image.spec
Nicolas Belouin 440f4d1fdd Add openstack-ironic-image and fix nm-configurator
Signed-off-by: Nicolas Belouin <nicolas.belouin@suse.com>
2024-10-22 15:17:04 +02:00

168 lines
4.9 KiB
RPMSpec

#
# spec file for package openstack-ironic-image
#
# 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
# 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/
#
# needsrootforbuild
# needsbinariesforbuild
Name: openstack-ironic-image
Version: 2.0.0
Release: 0
Summary: Kernel and ramdisk image for OpenStack Ironic
License: SUSE-EULA
Group: System/Management
URL: https://github.com/SUSE-Cloud/
Source0: config.sh
Source10: openstack-ironic-image.kiwi
Source20: root.tar.bz2
BuildRequires: -post-build-checks
BuildRequires: bash
BuildRequires: kiwi
BuildRequires: kiwi-tools
BuildRequires: zypper
BuildArch: noarch
BuildRequires: checkmedia
BuildRequires: acl
BuildRequires: ca-certificates
BuildRequires: cracklib-dict-full
BuildRequires: cron
BuildRequires: dbus-1
BuildRequires: elfutils
BuildRequires: filesystem
BuildRequires: fipscheck
BuildRequires: fontconfig
BuildRequires: fonts-config
BuildRequires: gptfdisk
BuildRequires: grub2
BuildRequires: grub2-x86_64-efi
BuildRequires: haveged
BuildRequires: hdparm
BuildRequires: hwinfo
BuildRequires: ipmitool
BuildRequires: iproute2
BuildRequires: iputils
BuildRequires: kernel-default
BuildRequires: kernel-firmware
BuildRequires: lvm2
BuildRequires: net-tools
BuildRequires: ntp
BuildRequires: open-iscsi
BuildRequires: openssh
BuildRequires: openstack-ironic-python-agent
BuildRequires: pam-config
BuildRequires: parted
BuildRequires: patterns-base-minimal_base
BuildRequires: pinentry
BuildRequires: pkgconfig
BuildRequires: Mesa-gallium
BuildRequires: plymouth
BuildRequires: plymouth-scripts
BuildRequires: python311-proliantutils
BuildRequires: psmisc
BuildRequires: qemu-tools
BuildRequires: sg3_utils
BuildRequires: sles-release
BuildRequires: sudo
BuildRequires: suse-build-key
BuildRequires: systemd-presets-branding-SLE
BuildRequires: timezone
BuildRequires: udev
BuildRequires: vim
BuildRequires: wpa_supplicant
BuildRequires: dhcp-client
BuildRequires: which
BuildRequires: NetworkManager
BuildRequires: nm-configurator
BuildRequires: logrotate
BuildRequires: plymouth-dracut
BuildRequires: plymouth-theme-bgrt
BuildRequires: dracut-kiwi-oem-dump
BuildRequires: dracut-kiwi-oem-repart
BuildRequires: gfxboot-branding-SLE
BuildRequires: grub2-branding-SLE
BuildRequires: open-iscsi
BuildRequires: plymouth-branding-SLE
BuildRequires: lshw
BuildRequires: kbd
%ifarch aarch64
BuildRequires: dmidecode
BuildRequires: efibootmgr
%endif
%ifarch x86_64
BuildRequires: dmidecode
BuildRequires: efibootmgr
BuildRequires: syslinux
%endif
%description
Kernel and ramdisk image for use with Metal3
%package %{_arch}
Summary: Kernel and ramdisk image for Metal3
Group: System/Management
Provides: openstack-ironic-python-agent = %{version}
Obsoletes: openstack-ironic-python-agent < %{version}
%description %{_arch}
Kernel and ramdisk image for use with Metal3
For %{_arch}
%prep
mkdir -p /tmp/openstack-ironic-image/build /tmp/openstack-ironic-image/root /tmp/openstack-ironic-image/img
cp -a %{SOURCE0} /tmp/openstack-ironic-image/config.sh
cp -a %{SOURCE10} /tmp/openstack-ironic-image/config.kiwi
tar -xC /tmp/openstack-ironic-image/root -f %{SOURCE20}
%build
if ! which kiwi; then
cat <<EOF >&2
kiwi not found in \$PATH; most likely this build was missing
the --userootforbuild option. If you are invoking osc build
manually, please use 'make buildlocal' instead.
EOF
exit 1
fi
kiwi-ng --debug --profile default system build --description /tmp/openstack-ironic-image --target-dir /tmp/openstack-ironic-image/img
%install
TDIR=`mktemp -d /tmp/openstack-ironic-image.XXXXX`
cd /tmp/openstack-ironic-image/img/build/image-root
find . | cpio --create --format=newc --quiet > $TDIR/initrdtmp
cd $TDIR
gzip -9 -f initrdtmp
INITRDGZ=`ls *.gz | head -1`
gzip -cd $INITRDGZ | xz --check=crc32 -c9 > initrd.xz
INITRD=`ls *.xz | head -1`
ls /tmp/openstack-ironic-image/img/openstack-ironic-image*
KERNEL=`ls /tmp/openstack-ironic-image/img/openstack-ironic-image*default*kernel | head -1`
mkdir -p %{buildroot}/srv/tftpboot/openstack-ironic-image
install -p -m 644 $KERNEL $INITRD %{buildroot}/srv/tftpboot/openstack-ironic-image/
%files %{_arch}
%defattr(644,root,root)
%dir %attr(755, root, root) /srv/tftpboot/openstack-ironic-image
%attr(644, root, root) /srv/tftpboot/openstack-ironic-image/*
%changelog