import ipxe-20200823-9.git4bd064de.el9

This commit is contained in:
CentOS Sources 2022-09-27 06:37:27 -04:00 committed by Stepan Oksanichenko
parent d14c3064ec
commit dfcf82c8ca

View File

@ -1,7 +1,3 @@
%if 0%{?fedora}
%global cross 1
%endif
# ROMS we want for QEMU with format PCIID:QEMUNAME # ROMS we want for QEMU with format PCIID:QEMUNAME
%global qemuroms \\\ %global qemuroms \\\
8086100e:e1000 \\\ 8086100e:e1000 \\\
@ -18,17 +14,10 @@
15ad07b0:vmxnet3 15ad07b0:vmxnet3
%endif %endif
# We only build the ROMs if on an x86 build host. The resulting # We only build the ROMs if on an EFI build host. The resulting
# binary RPM will be noarch, so other archs will still be able # binary RPM will be noarch, so other archs will still be able
# to use the binary ROMs. # to use the binary ROMs.
# %global buildarches x86_64 aarch64
# We do cross-compilation for 32->64-bit, but not for other arches
# because EDK II does not support big-endian hosts.
%if 0%{?cross}
%global buildarches %{ix86} x86_64
%else
%global buildarches x86_64
%endif
# debugging firmwares does not go the same way as a normal program. # debugging firmwares does not go the same way as a normal program.
# moreover, all architectures providing debuginfo for a single noarch # moreover, all architectures providing debuginfo for a single noarch
@ -50,7 +39,7 @@
Name: ipxe Name: ipxe
Version: %{date} Version: %{date}
Release: 7.git%{hash}%{?dist} Release: 9.git%{hash}%{?dist}
Summary: A network boot loader Summary: A network boot loader
License: GPLv2 with additional permissions and BSD License: GPLv2 with additional permissions and BSD
@ -81,28 +70,30 @@ BuildRequires: perl-Getopt-Long
BuildRequires: perl-FindBin BuildRequires: perl-FindBin
BuildRequires: perl-lib BuildRequires: perl-lib
%endif %endif
BuildRequires: syslinux
BuildRequires: mtools BuildRequires: mtools
BuildRequires: xorriso BuildRequires: xorriso
BuildRequires: edk2-tools BuildRequires: edk2-tools
BuildRequires: xz-devel BuildRequires: xz-devel
BuildRequires: gcc BuildRequires: gcc
BuildRequires: binutils-devel BuildRequires: binutils-devel
%if 0%{?cross}
BuildRequires: binutils-x86_64-linux-gnu gcc-x86_64-linux-gnu
%endif
BuildRequires: make BuildRequires: make
%endif
%ifarch x86_64
BuildRequires: syslinux
%endif
Obsoletes: gpxe <= 1.0.1 Obsoletes: gpxe <= 1.0.1
%ifarch x86_64
%package rhcert %package rhcert
Summary: Redhat hwcert custom ipxe image Summary: Redhat hwcert custom ipxe image
BuildArch: noarch BuildArch: noarch
%package bootimgs %package bootimgs-x86
Summary: Network boot loader images in bootable USB, CD, floppy and GRUB formats Summary: Network boot loader images in bootable USB, CD, floppy and GRUB formats
BuildArch: noarch BuildArch: noarch
Provides: %{name}-bootimgs = %{version}-%{release}
Obsoletes: %{name}-bootimgs < %{version}-%{release}
Obsoletes: gpxe-bootimgs <= 1.0.1 Obsoletes: gpxe-bootimgs <= 1.0.1
%package roms %package roms
@ -119,7 +110,7 @@ Obsoletes: gpxe-roms-qemu <= 1.0.1
%description rhcert %description rhcert
Custom ipxe image for use in hardware certification and validation Custom ipxe image for use in hardware certification and validation
%description bootimgs %description bootimgs-x86
iPXE is an open source network bootloader. It provides a direct iPXE is an open source network bootloader. It provides a direct
replacement for proprietary PXE ROMs, with many extra features such as replacement for proprietary PXE ROMs, with many extra features such as
DNS, HTTP, iSCSI, etc. DNS, HTTP, iSCSI, etc.
@ -134,7 +125,6 @@ DNS, HTTP, iSCSI, etc.
This package contains the iPXE roms in .rom format. This package contains the iPXE roms in .rom format.
%description roms-qemu %description roms-qemu
iPXE is an open source network bootloader. It provides a direct iPXE is an open source network bootloader. It provides a direct
replacement for proprietary PXE ROMs, with many extra features such as replacement for proprietary PXE ROMs, with many extra features such as
@ -144,6 +134,20 @@ This package contains the iPXE ROMs for devices emulated by QEMU, in
.rom format. .rom format.
%endif %endif
%ifarch aarch64
%package bootimgs-aarch64
Summary: AArch64 Network boot loader images in bootable USB and GRUB formats
Group: Development/Tools
BuildArch: noarch
%description bootimgs-aarch64
iPXE is an open source network bootloader. It provides a direct
replacement for proprietary PXE ROMs, with many extra features such as
DNS, HTTP, iSCSI, etc.
This package contains the iPXE ARM64 boot images in USB and GRUB formats.
%endif
%description %description
iPXE is an open source network bootloader. It provides a direct iPXE is an open source network bootloader. It provides a direct
replacement for proprietary PXE ROMs, with many extra features such as replacement for proprietary PXE ROMs, with many extra features such as
@ -152,28 +156,28 @@ DNS, HTTP, iSCSI, etc.
%prep %prep
%setup -q -n %{name}-%{version}-git%{hash} %setup -q -n %{name}-%{version}-git%{hash}
%autopatch -p1 %autopatch -p1
pushd src
%build
%ifarch %{buildarches}
cd src
# ath9k drivers are too big for an Option ROM, and ipxe devs say it doesn't # ath9k drivers are too big for an Option ROM, and ipxe devs say it doesn't
# make sense anyways # make sense anyways
# http://lists.ipxe.org/pipermail/ipxe-devel/2012-March/001290.html # http://lists.ipxe.org/pipermail/ipxe-devel/2012-March/001290.html
rm -rf drivers/net/ath/ath9k rm -rf drivers/net/ath/ath9k
cp %{SOURCE1} .
popd
%build
cd src
make_ipxe() { make_ipxe() {
make %{?_smp_mflags} \ make %{?_smp_mflags} \
NO_WERROR=1 V=1 \ NO_WERROR=1 V=1 \
GITVERSION=%{hash} \ GITVERSION=%{hash} \
%if 0%{?cross}
CROSS_COMPILE=x86_64-linux-gnu- \
%endif
"$@" "$@"
} }
cp %{SOURCE1} . %ifarch x86_64
make_ipxe bin-x86_64-efi/ipxe.efi EMBED=script.ipxe make_ipxe bin-x86_64-efi/ipxe.efi EMBED=script.ipxe
mv bin-x86_64-efi/ipxe.efi bin-x86_64-efi/ipxe-rhcert.efi mv bin-x86_64-efi/ipxe.efi bin-x86_64-efi/ipxe-rhcert.efi
@ -209,8 +213,15 @@ done
%endif %endif
%ifarch aarch64
make_ipxe bin-arm64-efi/snponly.efi
%if 0%{?fedora}
make_ipxe bin-arm64-efi/ipxe.efi
%endif
%endif
%install %install
%ifarch %{buildarches} %ifarch x86_64
mkdir -p %{buildroot}/%{_datadir}/%{name}/ mkdir -p %{buildroot}/%{_datadir}/%{name}/
mkdir -p %{buildroot}/%{_datadir}/%{name}.efi/ mkdir -p %{buildroot}/%{_datadir}/%{name}.efi/
pushd src/bin/ pushd src/bin/
@ -252,8 +263,16 @@ done
%endif %endif
%ifarch %{buildarches} %ifarch aarch64
%files bootimgs mkdir -p %{buildroot}/%{_datadir}/%{name}/arm64-efi
cp -a src/bin-arm64-efi/snponly.efi %{buildroot}/%{_datadir}/%{name}/arm64-efi/snponly.efi
%if 0%{?fedora}
cp -a src/bin-arm64-efi/ipxe.efi %{buildroot}/%{_datadir}/%{name}/arm64-efi/ipxe.efi
%endif
%endif
%ifarch x86_64
%files bootimgs-x86
%dir %{_datadir}/%{name} %dir %{_datadir}/%{name}
%{_datadir}/%{name}/ipxe.iso %{_datadir}/%{name}/ipxe.iso
%{_datadir}/%{name}/ipxe.usb %{_datadir}/%{name}/ipxe.usb
@ -280,7 +299,23 @@ done
%{_datadir}/%{name}/ipxe-x86_64-rhcert.efi %{_datadir}/%{name}/ipxe-x86_64-rhcert.efi
%endif %endif
%ifarch aarch64
%files bootimgs-aarch64
%dir %{_datadir}/%{name}
%dir %{_datadir}/%{name}/arm64-efi
%if 0%{?fedora}
%{_datadir}/%{name}/arm64-efi/ipxe.efi
%endif
%{_datadir}/%{name}/arm64-efi/snponly.efi
%endif
%changelog %changelog
* Tue Apr 05 2022 Jarod Wilson <jarod@redhat.com> - 20200823-9.git4bd064de
- Fix Obsoletes: and changelog versioning
* Tue Mar 15 2022 Yaakov Selkowitz <yselkowi@redhat.com> - 20200823-8.git4bd064de
- Add ARM 64 EFI artifacts (bz 2059349)
* Mon Aug 09 2021 Mohan Boddu <mboddu@redhat.com> - 20200823-7.git4bd064de * Mon Aug 09 2021 Mohan Boddu <mboddu@redhat.com> - 20200823-7.git4bd064de
- Rebuilt for IMA sigs, glibc 2.34, aarch64 flags - Rebuilt for IMA sigs, glibc 2.34, aarch64 flags
Related: rhbz#1991688 Related: rhbz#1991688