%global formats rom %global qemuroms 10222000 10ec8029 8086100e 10ec8139 1af41000 80861209 808610d3 15ad07b0 %global buildarches x86_64 %global debug_package %{nil} %global hash 3fe683e Name: ipxe Version: 20190930 Release: 4 Summary: A network boot loader License: GPLv2 with additional permissions and BSD URL: http://ipxe.org/ Source0: https://git.ipxe.org/ipxe.git/snapshot/%{name}-%{hash}.tar.bz2 Patch0001: 0001-build-customize-configuration.patch Patch0002: 0002-Use-spec-compliant-timeouts.patch %ifarch %{buildarches} BuildRequires: perl-interpreter perl-Getopt-Long syslinux mtools genisoimage edk2-devel BuildRequires: xz-devel gcc binutils-devel Obsoletes: gpxe-bootimgs gpxe-roms gpxe-roms-qem Provides: %{name}-bootimgs %{name}-roms %{name}-roms-qemu Obsoletes: %{name}-bootimgs %{name}-roms %{name}-roms-qemu %endif Obsoletes: gpxe <= 1.0.1 %description 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. %prep %setup -q -n %{name}-%{hash} %autopatch -p1 %build %ifarch %{buildarches} cd src rm -rf drivers/net/ath/ath9k make_ipxe() { make %{?_smp_mflags} \ NO_WERROR=1 V=1 \ GITVERSION=%{hash} \ "$@" } make_ipxe bin-i386-efi/ipxe.efi bin-x86_64-efi/ipxe.efi make_ipxe ISOLINUX_BIN=/usr/share/syslinux/isolinux.bin \ bin/undionly.kpxe bin/ipxe.{dsk,iso,usb,lkrn} \ allroms mkdir bin-combined for rom in %{qemuroms}; do make_ipxe CONFIG=qemu bin/${rom}.rom make_ipxe CONFIG=qemu bin-x86_64-efi/${rom}.efidrv vid="0x${rom%%????}" did="0x${rom#????}" EfiRom -f "$vid" -i "$did" --pci23 \ -b bin/${rom}.rom \ -ec bin-x86_64-efi/${rom}.efidrv \ -o bin-combined/${rom}.rom EfiRom -d bin-combined/${rom}.rom truncate -s \>256K bin-combined/${rom}.rom test $(stat -c '%s' bin-combined/${rom}.rom) -le $((256 * 1024)) done %endif %install %ifarch %{buildarches} mkdir -p %{buildroot}/%{_datadir}/%{name}/ mkdir -p %{buildroot}/%{_datadir}/%{name}.efi/ pushd src/bin/ cp -a undionly.kpxe ipxe.{iso,usb,dsk,lkrn} %{buildroot}/%{_datadir}/%{name}/ for fmt in %{formats};do for img in *.${fmt};do if [ -e $img ]; then cp -a $img %{buildroot}/%{_datadir}/%{name}/ echo %{_datadir}/%{name}/$img >> ../../${fmt}.list fi done done popd cp -a src/bin-i386-efi/ipxe.efi %{buildroot}/%{_datadir}/%{name}/ipxe-i386.efi cp -a src/bin-x86_64-efi/ipxe.efi %{buildroot}/%{_datadir}/%{name}/ipxe-x86_64.efi for fmt in rom ;do for rom in %{qemuroms} ; do sed -i -e "/\/${rom}.${fmt}/d" ${fmt}.list echo %{_datadir}/%{name}/${rom}.${fmt} >> qemu.${fmt}.list done done for rom in %{qemuroms}; do cp src/bin-combined/${rom}.rom %{buildroot}/%{_datadir}/%{name}.efi/ done %endif %ifarch %{buildarches} %files -f rom.list %defattr(-,root,root) %doc README %license COPYING COPYING.GPLv2 COPYING.UBDL %dir %{_datadir}/%{name} %dir %{_datadir}/%{name}.efi %{_datadir}/%{name}/ipxe.iso %{_datadir}/%{name}/ipxe.usb %{_datadir}/%{name}/ipxe.dsk %{_datadir}/%{name}/ipxe.lkrn %{_datadir}/%{name}/ipxe-i386.efi %{_datadir}/%{name}/ipxe-x86_64.efi %{_datadir}/%{name}/undionly.kpxe %{_datadir}/%{name}/*.rom %{_datadir}/%{name}.efi/*.rom %endif %changelog * Fri Nov 29 2019 openEuler Buildteam - 20190125-4 - Type:bugfix - Id:NA - SUG:NA - DESC: fix build error on x86_64 * Sat Oct 19 2019 openEuler Buildteam - 20190125-3 - Type:bugfix - Id:NA - SUG:NA - DESC:change the directory of the license files * Thu Oct 10 2019 openEuler Buildteam - 20190125-2 - Type:enhancement - ID:NA - SUG:NA - DESC:add requires * Thu Sep 19 2019 openEuler Buildteam - 20190125-1 - Package init