summaryrefslogtreecommitdiffstats
path: root/ipxe.git.spec
diff options
context:
space:
mode:
authorGerd Hoffmann <kraxel@redhat.com>2013-09-13 11:45:49 +0200
committerGerd Hoffmann <kraxel@redhat.com>2013-09-13 11:45:49 +0200
commite6439b53148e3f1928b40bc12f34535d1cd4fd9a (patch)
tree28007331660d4c688bee58f3fbb92ca80a6cbc81 /ipxe.git.spec
downloadipxe-e6439b53148e3f1928b40bc12f34535d1cd4fd9a.tar.gz
initial revision
Diffstat (limited to 'ipxe.git.spec')
-rw-r--r--ipxe.git.spec123
1 files changed, 123 insertions, 0 deletions
diff --git a/ipxe.git.spec b/ipxe.git.spec
new file mode 100644
index 0000000..1a45ae7
--- /dev/null
+++ b/ipxe.git.spec
@@ -0,0 +1,123 @@
+%global debug_package %{nil}
+%global build_roms 8086100e 10ec8029 10222000 10ec8139 1af41000
+
+Name: ipxe.git
+Version: 1.0.0
+Release: 1156.b0.g3c29c8e%{?dist}
+
+Summary: Network boot loader roms - git snapshot
+Group: Applications/Emulators
+License: GPLv2 and BSD
+
+Source0: ipxe.git-g3c29c8e.tar.xz
+
+BuildRequires: binutils-devel
+BuildRequires: edk2.git-tools
+
+%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.
+
+%package bios
+Summary: Network boot loader roms - seabios - git snapshot
+Requires: ipxe.git
+%description bios
+seabios roms
+
+%package efi-ia32
+Summary: Network boot loader roms - 32bit efi - git snapshot
+Requires: ipxe.git
+%description efi-ia32
+32bit efi roms
+
+%ifarch x86_64
+%package efi-x64
+Summary: Network boot loader roms - 64bit efi - git snapshot
+Requires: ipxe.git
+%description efi-x64
+64bit efi roms
+%endif
+
+%package combined
+Summary: Network boot loader roms - combined - git snapshot
+Requires: ipxe.git
+%description combined
+combined roms (all-in-one: legacy bios + 32bit efi + 64bit efi)
+
+%prep
+%setup -q -n %{name}
+
+%build
+mkdir .git
+touch .git/index
+mkdir src/bin-combined
+
+make -C src VERSION=%{version}-%{release} bin/undionly.kpxe
+make -C src VERSION=%{version}-%{release} bin-i386-efi/snponly.efi
+%ifarch x86_64
+make -C src VERSION=%{version}-%{release} bin-x86_64-efi/snponly.efi
+%endif
+
+for rom in %{build_roms}; do
+ make -C src VERSION=%{version}-%{release} bin/${rom}.rom
+ make -C src VERSION=%{version}-%{release} bin-i386-efi/${rom}.efidrv
+ make -C src VERSION=%{version}-%{release} bin-i386-efi/${rom}.efirom
+ mv src/bin-i386-efi/${rom}.efirom src/bin-i386-efi/${rom}.rom
+
+%ifarch x86_64
+ make -C src VERSION=%{version}-%{release} bin-x86_64-efi/${rom}.efidrv
+ make -C src VERSION=%{version}-%{release} bin-x86_64-efi/${rom}.efirom
+ mv src/bin-x86_64-efi/${rom}.efirom src/bin-x86_64-efi/${rom}.rom
+%endif
+
+ vid="0x${rom%%????}"
+ did="0x${rom#????}"
+ EfiRom -f "$vid" -i "$did" --pci23 \
+ -b src/bin/${rom}.rom \
+ -ec src/bin-i386-efi/${rom}.efidrv \
+%ifarch x86_64
+ -ec src/bin-x86_64-efi/${rom}.efidrv \
+%endif
+ -o src/bin-combined/${rom}.rom
+ EfiRom -d src/bin-combined/${rom}.rom
+done
+
+%install
+mkdir -p %{buildroot}/usr/share/%{name}/bios
+cp -v src/bin/*.rom %{buildroot}/usr/share/%{name}/bios
+cp -v src/bin/*.kpxe %{buildroot}/usr/share/%{name}/bios
+
+mkdir -p %{buildroot}/usr/share/%{name}/efi-ia32
+cp -v src/bin-i386-efi/*.efi %{buildroot}/usr/share/%{name}/efi-ia32
+cp -v src/bin-i386-efi/*.efidrv %{buildroot}/usr/share/%{name}/efi-ia32
+cp -v src/bin-i386-efi/*.rom %{buildroot}/usr/share/%{name}/efi-ia32
+
+%ifarch x86_64
+mkdir -p %{buildroot}/usr/share/%{name}/efi-x64
+cp -v src/bin-x86_64-efi/*.efi %{buildroot}/usr/share/%{name}/efi-x64
+cp -v src/bin-x86_64-efi/*.efidrv %{buildroot}/usr/share/%{name}/efi-x64
+cp -v src/bin-x86_64-efi/*.rom %{buildroot}/usr/share/%{name}/efi-x64
+%endif
+
+mkdir -p %{buildroot}/usr/share/%{name}/combined
+cp -v src/bin-combined/*.rom %{buildroot}/usr/share/%{name}/combined
+
+%files
+%doc README COPYING
+
+%files bios
+/usr/share/%{name}/bios
+
+%files efi-ia32
+/usr/share/%{name}/efi-ia32
+
+%ifarch x86_64
+%files efi-x64
+/usr/share/%{name}/efi-x64
+%endif
+
+%files combined
+/usr/share/%{name}/combined
+
+%changelog