%define formats pxe rom # the arches where we are able to actually build the binaries. # on the other arches, we will use the prebuilt binaries %define real_build_arches %{ix86} x86_64 Name: etherboot Version: 5.4.4 Release: 4%{?dist} Summary: Etherboot collection of boot roms Group: Development/Tools License: GPLv2 URL: http://etherboot.org Source0: http://kernel.org/pub/software/utils/boot/etherboot/%{name}-%{version}.tar.gz # prebuilt binaries, from etherboot-*-5.4.4-3.fc10.i386.rpm: Source1: etherboot-binaries-5.4.4-3.fc10.i386.tar.bz2 BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n) %ifarch %{real_build_arches} %ifarch x86_64 BuildRequires: glibc32 %endif BuildRequires: perl BuildRequires: syslinux BuildRequires: mtools %endif %package pxes Summary: Etherboot - boot roms in .pxe format Group: Development/Tools %package roms Summary: Etherboot - boot roms in .rom format Group: Development/Tools Requires: %{name}-roms-kvm %package roms-kvm Summary: Etherboot - boot roms supported by KVM Group: Development/Tools %description Etherboot is a software package for creating ROM images that can download code over an Ethernet network to be executed on an x86 computer. Many network adapters have a socket where a ROM chip can be installed. Etherboot is code that can be put in such a ROM %description pxes Etherboot is a software package for creating ROM images that can download code over an Ethernet network to be executed on an x86 computer. Many network adapters have a socket where a ROM chip can be installed. Etherboot is code that can be put in such a ROM This package contains the Etherboot roms in .pxe format. %description roms Etherboot is an open source (GPL) 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 Etherboot roms in .rom format. %description roms-kvm This package contains the etherboot ROMs for devices emulated by KVM. %prep %setup -q %ifnarch %{real_build_arches} # can't build the images on this arch. extract the prebuilt ones: mkdir src/prebuilt cd src/prebuilt tar -jxf %{SOURCE1} %endif %build cd src %ifarch %{real_build_arches} # %{optflags} wouldn't work with our hack to build the 32-bit binaries # on x86_64, so use %{__global_cflags} instead, that doesn't include # -m64 & related flags %define extra_cflags `echo %{__global_cflags} |sed 's|-fstack-protector||g'` %ifarch x86_64 # flags needed to build the 32-bit binaries on x86_64 %define makeflags ARCH=i386 EXTRA_CFLAGS="%{extra_cflags} -m32" EXTRA_ASFLAGS="--32" EXTRA_LDFLAGS="-m elf_i386" %else %define makeflags EXTRA_CFLAGS="%{extra_cflags}" %endif # undi is broken by now sed -i -e '/undi/d' Families make %{?_smp_mflags} allpxes allroms %{makeflags} %else # Simply copy the prebuilt binaries: cp prebuilt/etherboot/* bin/ %endif %install rm -rf %{buildroot} mkdir -p %{buildroot}/%{_datadir}/%{name}/ pushd src/bin/ for fmt in %{formats};do for img in *.${fmt};do cp $img %{buildroot}/%{_datadir}/%{name}/ echo %{_datadir}/%{name}/$img >> ../../${fmt}.list done done popd # the roms supported by kvm will be packaged separatedly # remove from the main rom list and add them to kvm.list for rom in ne e1000-82542 pcnet32 rtl8139 virtio-net;do sed -i -e "/\/${rom}.rom/d" rom.list echo %{_datadir}/%{name}/${rom}.rom >> kvm.list done %clean rm -rf %{buildroot} %files pxes -f pxe.list %defattr(-,root,root,-) %files roms -f rom.list %defattr(-,root,root,-) %files roms-kvm -f kvm.list %defattr(-,root,root,-) %changelog * Thu Oct 02 2008 Eduardo Habkost - 5.4.4-4 - Use __global_cflags instead of optflags to allow building on x86_64 - Move the x86_64 build hack to %%build on the spec file, instead of a patch * Tue Sep 30 2008 Eduardo Habkost - 5.4.4-3 - Use Fedora optflags when building * Mon Sep 29 2008 Eduardo Habkost - 5.4.4-2 - Build on all arches, but with a hack to use prebuilt binaries on non-x86 arches - Readded patch to build on x86_64 - BuildRequires glibc32 on x86_64 * Mon Sep 29 2008 Glauber Costa - 5.4.4-1 - Changed arch to i386 only - Upgraded to 5.4.4 - Removed virtio patch (in 5.4.4) - Changed source URL. * Fri Sep 26 2008 Eduardo Habkost - 5.4.3-3 - Package the ROMs supported by KVM into a separated subpackage * Fri Sep 26 2008 Eduardo Habkost - 5.4.3-2 - cherry-picked virtio-net driver from git * Fri Sep 26 2008 Eduardo Habkost - 5.4.3-1 - First etherboot package, based on gPXE package from Glauber Costa