import ipxe-20181214-1.git133f4c47.el8
This commit is contained in:
commit
77bfb79dfa
1
.gitignore
vendored
Normal file
1
.gitignore
vendored
Normal file
@ -0,0 +1 @@
|
|||||||
|
SOURCES/ipxe-20181214-git133f4c47.tar.xz
|
1
.ipxe.metadata
Normal file
1
.ipxe.metadata
Normal file
@ -0,0 +1 @@
|
|||||||
|
a79e649fbb476761a9e5a165f3467d783c0a5fe9 SOURCES/ipxe-20181214-git133f4c47.tar.xz
|
17
SOURCES/0001-build-customize-configuration.patch
Normal file
17
SOURCES/0001-build-customize-configuration.patch
Normal file
@ -0,0 +1,17 @@
|
|||||||
|
From: Paolo Bonzini <pbonzini@redhat.com>
|
||||||
|
Date: Tue, 17 Nov 2015 11:56:06 -0500
|
||||||
|
Subject: [PATCH ipxe] build: customize configuration
|
||||||
|
|
||||||
|
diff --git a/src/config/local/general.h b/src/config/local/general.h
|
||||||
|
index 5814511..47d0e1a 100644
|
||||||
|
--- a/src/config/local/general.h
|
||||||
|
+++ b/src/config/local/general.h
|
||||||
|
@@ -0,0 +1,5 @@
|
||||||
|
+#undef ROM_BANNER_TIMEOUT
|
||||||
|
+#define ROM_BANNER_TIMEOUT 0
|
||||||
|
+
|
||||||
|
+/* Enable IPv6. */
|
||||||
|
+#define NET_PROTO_IPV6
|
||||||
|
--
|
||||||
|
2.9.3
|
||||||
|
|
98
SOURCES/0002-Use-spec-compliant-timeouts.patch
Normal file
98
SOURCES/0002-Use-spec-compliant-timeouts.patch
Normal file
@ -0,0 +1,98 @@
|
|||||||
|
From bc252caa54fcfb2e9fd0ddb01ebaa50192e85c38 Mon Sep 17 00:00:00 2001
|
||||||
|
From: Alex Williamson <alex.williamson@redhat.com>
|
||||||
|
Date: Wed, 21 Oct 2015 11:18:40 +0200
|
||||||
|
Subject: Use spec compliant timeouts
|
||||||
|
|
||||||
|
Message-id: <20150428212403.31299.29391.stgit@gimli.home>
|
||||||
|
Patchwork-id: 64951
|
||||||
|
O-Subject: [RHEL7.2 ipxe PATCH 2/2] [dhcp][RHEL-only] Use spec compliant timeouts
|
||||||
|
Bugzilla: 1196352
|
||||||
|
RH-Acked-by: Miroslav Rezanina <mrezanin@redhat.com>
|
||||||
|
RH-Acked-by: Gerd Hoffmann <kraxel@redhat.com>
|
||||||
|
RH-Acked-by: Laszlo Ersek <lersek@redhat.com>
|
||||||
|
|
||||||
|
Use local config to override iPXE's abbreviated DHCP timeouts using
|
||||||
|
the recommended values for spec compliance. This matches the state
|
||||||
|
of RHEL6 gPXE DHCP timeouts after bz968474 + bz1206042
|
||||||
|
|
||||||
|
Signed-off-by: Alex Williamson <alex.williamson@redhat.com>
|
||||||
|
Signed-off-by: Miroslav Rezanina <mrezanin@redhat.com>
|
||||||
|
(cherry picked from commit 7038f41c0131d263de5165b416500009acdbf550)
|
||||||
|
---
|
||||||
|
src/config/local/.gitignore | 1 -
|
||||||
|
src/config/local/dhcp.h | 62 +++++++++++++++++++++++++++++++++++++++++++++
|
||||||
|
2 files changed, 62 insertions(+), 1 deletion(-)
|
||||||
|
delete mode 100644 src/config/local/.gitignore
|
||||||
|
create mode 100644 src/config/local/dhcp.h
|
||||||
|
|
||||||
|
diff --git a/src/config/local/dhcp.h b/src/config/local/dhcp.h
|
||||||
|
new file mode 100644
|
||||||
|
index 0000000..83df5b8
|
||||||
|
--- /dev/null
|
||||||
|
+++ b/src/config/local/dhcp.h
|
||||||
|
@@ -0,0 +1,62 @@
|
||||||
|
+/*
|
||||||
|
+ * Downstream localization
|
||||||
|
+ *
|
||||||
|
+ * For RHEL, use spec compliant DHCP timeouts (bz1196352)
|
||||||
|
+ */
|
||||||
|
+
|
||||||
|
+/*
|
||||||
|
+ * PXE spec defines timeouts of 4, 8, 16, 32 seconds
|
||||||
|
+ */
|
||||||
|
+#undef DHCP_DISC_START_TIMEOUT_SEC
|
||||||
|
+#define DHCP_DISC_START_TIMEOUT_SEC 4
|
||||||
|
+#undef DHCP_DISC_END_TIMEOUT_SEC
|
||||||
|
+#define DHCP_DISC_END_TIMEOUT_SEC 32
|
||||||
|
+
|
||||||
|
+/*
|
||||||
|
+ * Elapsed time used for early break waiting for ProxyDHCP, this therefore
|
||||||
|
+ * needs to be less than the cumulative time for the first 2 timeouts.
|
||||||
|
+ */
|
||||||
|
+#undef DHCP_DISC_PROXY_TIMEOUT_SEC
|
||||||
|
+#define DHCP_DISC_PROXY_TIMEOUT_SEC 11
|
||||||
|
+
|
||||||
|
+/*
|
||||||
|
+ * Approximate PXE spec requirement using minimum timeout (0.25s) for
|
||||||
|
+ * timeouts of 0.25, 0.5, 1, 2, 4
|
||||||
|
+ */
|
||||||
|
+#undef DHCP_REQ_START_TIMEOUT_SEC
|
||||||
|
+#define DHCP_REQ_START_TIMEOUT_SEC 0
|
||||||
|
+#undef DHCP_REQ_END_TIMEOUT_SEC
|
||||||
|
+#define DHCP_REQ_END_TIMEOUT_SEC 4
|
||||||
|
+
|
||||||
|
+/*
|
||||||
|
+ * Same as normal request phase, except non-fatal, so we extend the timer
|
||||||
|
+ * to 8 and set the early timeout to an elapsed time value that causes a
|
||||||
|
+ * break after the 4 second timeout. At least that's what we'd like to do,
|
||||||
|
+ * but our timer operates at 18Hz and has a minimum resolution of 7 cycles.
|
||||||
|
+ * Therefore the above quarter-second starting timeout looks more like
|
||||||
|
+ * 0.39s, 0.78s, 1.56s, 3.11s, 6.22s. If we had an ideal timer, we could
|
||||||
|
+ * set the timeout to 7s (0.25 + 0.5 + 1 + 2 + 4 = 7.75s) and exit without
|
||||||
|
+ * failure when the timer rolls over to 8s. With our timer, we get 0.39 +
|
||||||
|
+ * 0.78 + 1.56 + 3.11 = 5.84s. The next timeout would take us to 12.06s
|
||||||
|
+ * (+6.22). That seems like a long time to wait for an optional reply, so
|
||||||
|
+ * we reduce the early timeout to 5s to exit before the timer exceeds the
|
||||||
|
+ * max and causes a failure. This still adds one extra cycle vs the
|
||||||
|
+ * upstream defaults.
|
||||||
|
+ */
|
||||||
|
+#undef DHCP_PROXY_START_TIMEOUT_SEC
|
||||||
|
+#define DHCP_PROXY_START_TIMEOUT_SEC 0
|
||||||
|
+#undef DHCP_PROXY_END_TIMEOUT_SEC
|
||||||
|
+#define DHCP_PROXY_END_TIMEOUT_SEC 8
|
||||||
|
+#undef DHCP_REQ_PROXY_TIMEOUT_SEC
|
||||||
|
+#define DHCP_REQ_PROXY_TIMEOUT_SEC 5
|
||||||
|
+
|
||||||
|
+/*
|
||||||
|
+ * Same as above, retry each server using our approximation of standard
|
||||||
|
+ * timeouts and exit before timer induced failure.
|
||||||
|
+ */
|
||||||
|
+#undef PXEBS_START_TIMEOUT_SEC
|
||||||
|
+#define PXEBS_START_TIMEOUT_SEC 0
|
||||||
|
+#undef PXEBS_END_TIMEOUT_SEC
|
||||||
|
+#define PXEBS_END_TIMEOUT_SEC 8
|
||||||
|
+#undef PXEBS_MAX_TIMEOUT_SEC
|
||||||
|
+#define PXEBS_MAX_TIMEOUT_SEC 5
|
||||||
|
--
|
||||||
|
1.8.3.1
|
||||||
|
|
150
SOURCES/0003-Strip-802.1Q-VLAN-0-priority-tags.patch
Normal file
150
SOURCES/0003-Strip-802.1Q-VLAN-0-priority-tags.patch
Normal file
@ -0,0 +1,150 @@
|
|||||||
|
From 1a921ececb22bbc41d1fda34576564e84d124a83 Mon Sep 17 00:00:00 2001
|
||||||
|
From: Ladi Prosek <lprosek@redhat.com>
|
||||||
|
Date: Mon, 11 Jul 2016 14:17:36 +0200
|
||||||
|
Subject: Strip 802.1Q VLAN 0 priority tags
|
||||||
|
|
||||||
|
RH-Author: Ladi Prosek <lprosek@redhat.com>
|
||||||
|
Message-id: <1468246656-15560-1-git-send-email-lprosek@redhat.com>
|
||||||
|
Patchwork-id: 71112
|
||||||
|
O-Subject: [RHEL7.3 ipxe PATCH] [netdevice] Strip 802.Q VLAN 0 priority tags
|
||||||
|
Bugzilla: 1316329
|
||||||
|
RH-Acked-by: Stefan Hajnoczi <stefanha@redhat.com>
|
||||||
|
RH-Acked-by: Laszlo Ersek <lersek@redhat.com>
|
||||||
|
RH-Acked-by: Xiao Wang <jasowang@redhat.com>
|
||||||
|
|
||||||
|
iPXE was unable to receive priority tagged packets specified in
|
||||||
|
the 802.1Q standard and supported by all major networking stacks.
|
||||||
|
|
||||||
|
This commit adds a new function net_pull_tags which is called by
|
||||||
|
all consumers of incoming packets after stripping their link-layer
|
||||||
|
headers.
|
||||||
|
|
||||||
|
Upstream patch:
|
||||||
|
http://lists.ipxe.org/pipermail/ipxe-devel/2016-July/005099.html
|
||||||
|
|
||||||
|
There is a difference between the upstream patch and this patch in the
|
||||||
|
path prefix of "interface/pxe/pxe_undi.c" because we don't have upstream
|
||||||
|
commit f468f12b1eca.
|
||||||
|
|
||||||
|
Signed-off-by: Ladi Prosek <lprosek@redhat.com>
|
||||||
|
Signed-off-by: Miroslav Rezanina <mrezanin@redhat.com>
|
||||||
|
---
|
||||||
|
src/arch/x86/interface/pxe/pxe_undi.c | 6 +++++
|
||||||
|
src/include/ipxe/netdevice.h | 2 ++
|
||||||
|
src/interface/efi/efi_snp.c | 7 ++++++
|
||||||
|
src/net/netdevice.c | 44 +++++++++++++++++++++++++++++++++++
|
||||||
|
4 files changed, 59 insertions(+)
|
||||||
|
|
||||||
|
diff --git a/src/arch/x86/interface/pxe/pxe_undi.c b/src/arch/x86/interface/pxe/pxe_undi.c
|
||||||
|
index 2eb6817..2ea1451 100644
|
||||||
|
--- a/src/arch/x86/interface/pxe/pxe_undi.c
|
||||||
|
+++ b/src/arch/x86/interface/pxe/pxe_undi.c
|
||||||
|
@@ -976,6 +976,12 @@ static PXENV_EXIT_t pxenv_undi_isr ( struct s_PXENV_UNDI_ISR *undi_isr ) {
|
||||||
|
}
|
||||||
|
ll_hlen = ( len - iob_len ( iobuf ) );
|
||||||
|
|
||||||
|
+ /* Strip link-layer-independent headers */
|
||||||
|
+ if ( ( rc = net_pull_tags ( iobuf, pxe_netdev, &net_proto ) ) != 0 ) {
|
||||||
|
+ /* Assume unknown net_proto */
|
||||||
|
+ net_proto = 0;
|
||||||
|
+ }
|
||||||
|
+
|
||||||
|
/* Determine network-layer protocol */
|
||||||
|
switch ( net_proto ) {
|
||||||
|
case htons ( ETH_P_IP ):
|
||||||
|
diff --git a/src/include/ipxe/netdevice.h b/src/include/ipxe/netdevice.h
|
||||||
|
index a1d207f..cea87f7 100644
|
||||||
|
--- a/src/include/ipxe/netdevice.h
|
||||||
|
+++ b/src/include/ipxe/netdevice.h
|
||||||
|
@@ -719,6 +719,8 @@ extern int net_tx ( struct io_buffer *iobuf, struct net_device *netdev,
|
||||||
|
extern int net_rx ( struct io_buffer *iobuf, struct net_device *netdev,
|
||||||
|
uint16_t net_proto, const void *ll_dest,
|
||||||
|
const void *ll_source, unsigned int flags );
|
||||||
|
+extern int net_pull_tags ( struct io_buffer *iobuf, struct net_device *netdev,
|
||||||
|
+ uint16_t *net_proto );
|
||||||
|
extern void net_poll ( void );
|
||||||
|
extern struct net_device_configurator *
|
||||||
|
find_netdev_configurator ( const char *name );
|
||||||
|
diff --git a/src/interface/efi/efi_snp.c b/src/interface/efi/efi_snp.c
|
||||||
|
index e6388bf..d1a1a44 100644
|
||||||
|
--- a/src/interface/efi/efi_snp.c
|
||||||
|
+++ b/src/interface/efi/efi_snp.c
|
||||||
|
@@ -745,6 +745,13 @@ efi_snp_receive ( EFI_SIMPLE_NETWORK_PROTOCOL *snp,
|
||||||
|
goto out_bad_ll_header;
|
||||||
|
}
|
||||||
|
|
||||||
|
+ /* Strip link-layer-independent headers */
|
||||||
|
+ if ( ( rc = net_pull_tags ( iobuf, snpdev->netdev, &iob_net_proto ) ) ) {
|
||||||
|
+ DBGC ( snpdev, "SNPDEV %p could not parse tags: %s\n",
|
||||||
|
+ snpdev, strerror ( rc ) );
|
||||||
|
+ goto out_bad_ll_header;
|
||||||
|
+ }
|
||||||
|
+
|
||||||
|
/* Return link-layer header parameters to caller, if required */
|
||||||
|
if ( ll_header_len )
|
||||||
|
*ll_header_len = ll_protocol->ll_header_len;
|
||||||
|
diff --git a/src/net/netdevice.c b/src/net/netdevice.c
|
||||||
|
index 9df2119..c53d5e3 100644
|
||||||
|
--- a/src/net/netdevice.c
|
||||||
|
+++ b/src/net/netdevice.c
|
||||||
|
@@ -1028,6 +1028,44 @@ int net_rx ( struct io_buffer *iobuf, struct net_device *netdev,
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
+ * Strip extra link-layer-independent tags from a received packet
|
||||||
|
+ *
|
||||||
|
+ * @v iobuf I/O buffer
|
||||||
|
+ * @v netdev Network device
|
||||||
|
+ * @v net_proto Network-layer protocol, in network-byte order
|
||||||
|
+ * @ret rc Return status code
|
||||||
|
+ *
|
||||||
|
+ * This function should be called after stripping link-layer headers but
|
||||||
|
+ * before inspecting the network-layer protocol.
|
||||||
|
+ */
|
||||||
|
+int net_pull_tags ( struct io_buffer *iobuf, struct net_device *netdev,
|
||||||
|
+ uint16_t *net_proto ) {
|
||||||
|
+ struct vlan_header *vlanhdr;
|
||||||
|
+ uint16_t tag;
|
||||||
|
+
|
||||||
|
+ /* Strip 802.1Q VLAN 0 priority tags if present */
|
||||||
|
+ while ( *net_proto == htons ( ETH_P_8021Q ) ) {
|
||||||
|
+ if ( iob_len ( iobuf ) < sizeof ( *vlanhdr ) ) {
|
||||||
|
+ DBG ( "VLAN header too short at %zd bytes (min %zd bytes)\n",
|
||||||
|
+ iob_len ( iobuf ), sizeof ( *vlanhdr ) );
|
||||||
|
+ return -EINVAL;
|
||||||
|
+ }
|
||||||
|
+ vlanhdr = ( struct vlan_header * ) iobuf->data;
|
||||||
|
+ tag = VLAN_TAG ( ntohs ( vlanhdr->tci ) );
|
||||||
|
+
|
||||||
|
+ if ( tag == 0 && ! vlan_find ( netdev, tag ) ) {
|
||||||
|
+ /* VLAN 0, strip and continue */
|
||||||
|
+ *net_proto = vlanhdr->net_proto;
|
||||||
|
+ iob_pull ( iobuf, sizeof ( *vlanhdr ) );
|
||||||
|
+ } else {
|
||||||
|
+ /* Real VLAN tag, leave it alone */
|
||||||
|
+ break;
|
||||||
|
+ }
|
||||||
|
+ }
|
||||||
|
+ return 0;
|
||||||
|
+}
|
||||||
|
+
|
||||||
|
+/**
|
||||||
|
* Poll the network stack
|
||||||
|
*
|
||||||
|
* This polls all interfaces for received packets, and processes
|
||||||
|
@@ -1078,6 +1116,12 @@ void net_poll ( void ) {
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
|
||||||
|
+ /* Remove link-layer-independent headers */
|
||||||
|
+ if ( ( rc = net_pull_tags ( iobuf, netdev, &net_proto ) ) ) {
|
||||||
|
+ free_iob ( iobuf );
|
||||||
|
+ continue;
|
||||||
|
+ }
|
||||||
|
+
|
||||||
|
/* Hand packet to network layer */
|
||||||
|
if ( ( rc = net_rx ( iob_disown ( iobuf ), netdev,
|
||||||
|
net_proto, ll_dest,
|
||||||
|
--
|
||||||
|
1.8.3.1
|
||||||
|
|
12
SOURCES/ipxe-vlan-cmds.patch
Normal file
12
SOURCES/ipxe-vlan-cmds.patch
Normal file
@ -0,0 +1,12 @@
|
|||||||
|
diff -up ./src/config/general.h.vlan ./src/config/general.h
|
||||||
|
--- ./src/config/general.h.vlan 2018-10-09 13:11:42.940904753 -0400
|
||||||
|
+++ ./src/config/general.h 2018-10-09 13:12:03.258821711 -0400
|
||||||
|
@@ -140,7 +140,7 @@ FILE_LICENCE ( GPL2_OR_LATER_OR_UBDL );
|
||||||
|
//#define TIME_CMD /* Time commands */
|
||||||
|
//#define DIGEST_CMD /* Image crypto digest commands */
|
||||||
|
//#define LOTEST_CMD /* Loopback testing commands */
|
||||||
|
-//#define VLAN_CMD /* VLAN commands */
|
||||||
|
+#define VLAN_CMD /* VLAN commands */
|
||||||
|
//#define PXE_CMD /* PXE commands */
|
||||||
|
//#define REBOOT_CMD /* Reboot command */
|
||||||
|
//#define POWEROFF_CMD /* Power off command */
|
395
SPECS/ipxe.spec
Normal file
395
SPECS/ipxe.spec
Normal file
@ -0,0 +1,395 @@
|
|||||||
|
%if 0%{?fedora}
|
||||||
|
%global cross 1
|
||||||
|
%endif
|
||||||
|
|
||||||
|
# Resulting binary formats we want from iPXE
|
||||||
|
%global formats rom
|
||||||
|
|
||||||
|
# PCI IDs (vendor,product) of the ROMS we want for QEMU
|
||||||
|
#
|
||||||
|
# pcnet32: 0x1022 0x2000
|
||||||
|
# ne2k_pci: 0x10ec 0x8029
|
||||||
|
# e1000: 0x8086 0x100e
|
||||||
|
# rtl8139: 0x10ec 0x8139
|
||||||
|
# virtio-net: 0x1af4 0x1000
|
||||||
|
# eepro100: 0x8086 0x1209
|
||||||
|
# e1000e: 0x8086 0x10d3
|
||||||
|
# vmxnet3: 0x15ad 0x07b0
|
||||||
|
%global qemuroms 10222000 10ec8029 8086100e 10ec8139 1af41000 80861209 808610d3 15ad07b0
|
||||||
|
|
||||||
|
# We only build the ROMs if on an x86 build host. The resulting
|
||||||
|
# binary RPM will be noarch, so other archs will still be able
|
||||||
|
# to use the binary ROMs.
|
||||||
|
#
|
||||||
|
# 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.
|
||||||
|
# moreover, all architectures providing debuginfo for a single noarch
|
||||||
|
# package is currently clashing in koji, so don't bother.
|
||||||
|
%global debug_package %{nil}
|
||||||
|
|
||||||
|
# Upstream don't do "releases" :-( So we're going to use the date
|
||||||
|
# as the version, and a GIT hash as the release. Generate new GIT
|
||||||
|
# snapshots using the folowing commands:
|
||||||
|
#
|
||||||
|
# $ hash=`git log -1 --format='%h'`
|
||||||
|
# $ date=`git log -1 --format='%cd' --date=short | tr -d -`
|
||||||
|
# $ git archive --prefix ipxe-${date}-git${hash}/ ${hash} | xz -7e > ipxe-${date}-git${hash}.tar.xz
|
||||||
|
#
|
||||||
|
# And then change these two:
|
||||||
|
|
||||||
|
%global hash 133f4c47
|
||||||
|
%global date 20181214
|
||||||
|
|
||||||
|
Name: ipxe
|
||||||
|
Version: %{date}
|
||||||
|
Release: 1.git%{hash}%{?dist}
|
||||||
|
Summary: A network boot loader
|
||||||
|
|
||||||
|
Group: System Environment/Base
|
||||||
|
License: GPLv2 with additional permissions and BSD
|
||||||
|
URL: http://ipxe.org/
|
||||||
|
|
||||||
|
Source0: %{name}-%{version}-git%{hash}.tar.xz
|
||||||
|
|
||||||
|
# Enable IPv6 for qemu's config
|
||||||
|
# Sent upstream: http://lists.ipxe.org/pipermail/ipxe-devel/2015-November/004494.html
|
||||||
|
Patch0001: 0001-build-customize-configuration.patch
|
||||||
|
Patch0002: 0002-Use-spec-compliant-timeouts.patch
|
||||||
|
Patch0003: 0003-Strip-802.1Q-VLAN-0-priority-tags.patch
|
||||||
|
Patch0004: ipxe-vlan-cmds.patch
|
||||||
|
|
||||||
|
%ifarch %{buildarches}
|
||||||
|
BuildRequires: perl-interpreter
|
||||||
|
BuildRequires: perl-Getopt-Long
|
||||||
|
BuildRequires: syslinux
|
||||||
|
BuildRequires: mtools
|
||||||
|
BuildRequires: mkisofs
|
||||||
|
BuildRequires: edk2-tools
|
||||||
|
BuildRequires: xz-devel
|
||||||
|
|
||||||
|
BuildRequires: binutils-devel
|
||||||
|
%if 0%{?cross}
|
||||||
|
BuildRequires: binutils-x86_64-linux-gnu gcc-x86_64-linux-gnu
|
||||||
|
%endif
|
||||||
|
|
||||||
|
Obsoletes: gpxe <= 1.0.1
|
||||||
|
|
||||||
|
%package bootimgs
|
||||||
|
Summary: Network boot loader images in bootable USB, CD, floppy and GRUB formats
|
||||||
|
Group: Development/Tools
|
||||||
|
BuildArch: noarch
|
||||||
|
Obsoletes: gpxe-bootimgs <= 1.0.1
|
||||||
|
|
||||||
|
%package roms
|
||||||
|
Summary: Network boot loader roms in .rom format
|
||||||
|
Group: Development/Tools
|
||||||
|
Requires: %{name}-roms-qemu = %{version}-%{release}
|
||||||
|
BuildArch: noarch
|
||||||
|
Obsoletes: gpxe-roms <= 1.0.1
|
||||||
|
|
||||||
|
%package roms-qemu
|
||||||
|
Summary: Network boot loader roms supported by QEMU, .rom format
|
||||||
|
Group: Development/Tools
|
||||||
|
BuildArch: noarch
|
||||||
|
Obsoletes: gpxe-roms-qemu <= 1.0.1
|
||||||
|
|
||||||
|
%description bootimgs
|
||||||
|
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 boot images in USB, CD, floppy, and PXE
|
||||||
|
UNDI formats.
|
||||||
|
|
||||||
|
%description roms
|
||||||
|
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 roms in .rom format.
|
||||||
|
|
||||||
|
|
||||||
|
%description roms-qemu
|
||||||
|
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 ROMs for devices emulated by QEMU, in
|
||||||
|
.rom format.
|
||||||
|
%endif
|
||||||
|
|
||||||
|
%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}-%{version}-git%{hash}
|
||||||
|
%autopatch -p1
|
||||||
|
|
||||||
|
|
||||||
|
%build
|
||||||
|
%ifarch %{buildarches}
|
||||||
|
cd src
|
||||||
|
|
||||||
|
# ath9k drivers are too big for an Option ROM, and ipxe devs say it doesn't
|
||||||
|
# make sense anyways
|
||||||
|
# http://lists.ipxe.org/pipermail/ipxe-devel/2012-March/001290.html
|
||||||
|
rm -rf drivers/net/ath/ath9k
|
||||||
|
|
||||||
|
make_ipxe() {
|
||||||
|
make %{?_smp_mflags} \
|
||||||
|
NO_WERROR=1 V=1 \
|
||||||
|
GITVERSION=%{hash} \
|
||||||
|
%if 0%{?cross}
|
||||||
|
CROSS_COMPILE=x86_64-linux-gnu- \
|
||||||
|
%endif
|
||||||
|
"$@"
|
||||||
|
}
|
||||||
|
|
||||||
|
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
|
||||||
|
|
||||||
|
# build roms with efi support for qemu
|
||||||
|
mkdir bin-combined
|
||||||
|
for rom in %{qemuroms}; do
|
||||||
|
make_ipxe CONFIG=qemu bin/${rom}.rom
|
||||||
|
make_ipxe CONFIG=qemu bin-i386-efi/${rom}.efidrv
|
||||||
|
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-i386-efi/${rom}.efidrv \
|
||||||
|
-ec bin-x86_64-efi/${rom}.efidrv \
|
||||||
|
-o bin-combined/${rom}.rom
|
||||||
|
EfiRom -d bin-combined/${rom}.rom
|
||||||
|
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
|
||||||
|
|
||||||
|
# the roms supported by qemu will be packaged separatedly
|
||||||
|
# remove from the main rom list and add them to qemu.list
|
||||||
|
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/
|
||||||
|
echo %{_datadir}/%{name}.efi/${rom}.rom >> qemu.rom.list
|
||||||
|
done
|
||||||
|
%endif
|
||||||
|
|
||||||
|
%ifarch %{buildarches}
|
||||||
|
%files bootimgs
|
||||||
|
%dir %{_datadir}/%{name}
|
||||||
|
%{_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
|
||||||
|
%doc COPYING COPYING.GPLv2 COPYING.UBDL
|
||||||
|
|
||||||
|
%files roms -f rom.list
|
||||||
|
%dir %{_datadir}/%{name}
|
||||||
|
%doc COPYING COPYING.GPLv2 COPYING.UBDL
|
||||||
|
|
||||||
|
%files roms-qemu -f qemu.rom.list
|
||||||
|
%dir %{_datadir}/%{name}
|
||||||
|
%dir %{_datadir}/%{name}.efi
|
||||||
|
%doc COPYING COPYING.GPLv2 COPYING.UBDL
|
||||||
|
%endif
|
||||||
|
|
||||||
|
%changelog
|
||||||
|
* Fri Dec 14 2018 Neil Horman <nhorman@redhat.com> - 20181210-1.git133f4c47
|
||||||
|
- Update to latest upstream
|
||||||
|
- Add vlan cmds
|
||||||
|
|
||||||
|
* Fri Nov 16 2018 Danilo C. L. de Paula <ddepaula@redhat.com> - 20170710-6.git0600d3ae
|
||||||
|
- rebuilt
|
||||||
|
|
||||||
|
* Thu Jul 12 2018 Danilo - 20170710-5.git0600d3ae
|
||||||
|
- Bumping release number and rebuilding ipxe for RHEL-8.0
|
||||||
|
|
||||||
|
* Wed Feb 07 2018 Fedora Release Engineering <releng@fedoraproject.org> - 20170710-3.git0600d3ae
|
||||||
|
- Rebuilt for https://fedoraproject.org/wiki/Fedora_28_Mass_Rebuild
|
||||||
|
|
||||||
|
* Tue Nov 21 2017 Paolo Bonzini <pbonzini@redhat.com> - ipxe-20170710-2.git0600d3ae
|
||||||
|
- Include bugfix and configuration patches from RHEL
|
||||||
|
- Disable cross compilation on RHEL
|
||||||
|
|
||||||
|
* Thu Aug 03 2017 Cole Robinson <crobinso@redhat.com> - ipxe-20170710-1.git0600d3ae
|
||||||
|
- Update to ipxe 0600d3ae for qemu-2.10.0
|
||||||
|
|
||||||
|
* Wed Aug 02 2017 Fedora Release Engineering <releng@fedoraproject.org> - 20161108-4.gitb991c67
|
||||||
|
- Rebuilt for https://fedoraproject.org/wiki/Fedora_27_Binutils_Mass_Rebuild
|
||||||
|
|
||||||
|
* Wed Jul 26 2017 Fedora Release Engineering <releng@fedoraproject.org> - 20161108-3.gitb991c67
|
||||||
|
- Rebuilt for https://fedoraproject.org/wiki/Fedora_27_Mass_Rebuild
|
||||||
|
|
||||||
|
* Fri Feb 10 2017 Fedora Release Engineering <releng@fedoraproject.org> - 20161108-2.gitb991c67
|
||||||
|
- Rebuilt for https://fedoraproject.org/wiki/Fedora_26_Mass_Rebuild
|
||||||
|
|
||||||
|
* Sun Dec 04 2016 Cole Robinson <crobinso@redhat.com> - 20161108-1.gitb991c67
|
||||||
|
- Rebase to version shipped with qemu 2.8
|
||||||
|
|
||||||
|
* Thu Feb 04 2016 Fedora Release Engineering <releng@fedoraproject.org> - 20150821-3.git4e03af8
|
||||||
|
- Rebuilt for https://fedoraproject.org/wiki/Fedora_24_Mass_Rebuild
|
||||||
|
|
||||||
|
* Tue Jan 26 2016 Cole Robinson <crobinso@redhat.com> 20150821-2.git4e03af8
|
||||||
|
- Build ipxe.efi (bug 1300865)
|
||||||
|
- Build eepro100 rom for qemu
|
||||||
|
|
||||||
|
* Tue Nov 17 2015 Cole Robinson <crobinso@redhat.com> - 20150821-1.git4e03af8
|
||||||
|
- Update to commit 4e03af8 for qemu 2.5
|
||||||
|
- Enable IPv6 (bug 1280318)
|
||||||
|
|
||||||
|
* Wed Jun 17 2015 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 20150407-3.gitdc795b9f
|
||||||
|
- Rebuilt for https://fedoraproject.org/wiki/Fedora_23_Mass_Rebuild
|
||||||
|
|
||||||
|
* Thu Apr 16 2015 Paolo Bonzini <pbonzini@redhat.com> - 20150407-2.gitdc795b9f
|
||||||
|
- Fix virtio bug with UEFI driver
|
||||||
|
|
||||||
|
* Thu Apr 16 2015 Paolo Bonzini <pbonzini@redhat.com> - 20150407-1.gitdc795b9f
|
||||||
|
- Update to latest upstream snapshot
|
||||||
|
- Switch source to .tar.xz
|
||||||
|
- Include patches from QEMU submodule
|
||||||
|
- Use config file for configuration
|
||||||
|
- Distribute additional permissions on top of GPLv2 ("UBDL")
|
||||||
|
|
||||||
|
* Sat Aug 16 2014 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 20140303-3.gitff1e7fc7
|
||||||
|
- Rebuilt for https://fedoraproject.org/wiki/Fedora_21_22_Mass_Rebuild
|
||||||
|
|
||||||
|
* Sat Jun 07 2014 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 20140303-2.gitff1e7fc7
|
||||||
|
- Rebuilt for https://fedoraproject.org/wiki/Fedora_21_Mass_Rebuild
|
||||||
|
|
||||||
|
* Mon Mar 03 2014 Cole Robinson <crobinso@redhat.com> - 20140303-1.gitff1e7fc7
|
||||||
|
- Allow access to ipxe prompt if VM is set to pxe boot (bz #842932)
|
||||||
|
- Enable PNG support (bz #1058176)
|
||||||
|
|
||||||
|
* Sat Aug 03 2013 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 20130517-3.gitc4bce43
|
||||||
|
- Rebuilt for https://fedoraproject.org/wiki/Fedora_20_Mass_Rebuild
|
||||||
|
|
||||||
|
* Mon May 20 2013 Paolo Bonzini <pbonzini@redhat.com> - 20130103-3.git717279a
|
||||||
|
- Fix BuildRequires, use cross-compiler when building on 32-bit i686
|
||||||
|
- Build UEFI drivers for QEMU and include them (patch from Gerd Hoffmann.
|
||||||
|
BZ#958875)
|
||||||
|
|
||||||
|
* Fri May 17 2013 Daniel P. Berrange <berrange@redhat.com> - 20130517-1.gitc4bce43
|
||||||
|
- Update to latest upstream snapshot
|
||||||
|
|
||||||
|
* Fri May 17 2013 Daniel P. Berrange <berrange@redhat.com> - 20130103-3.git717279a
|
||||||
|
- Fix build with GCC 4.8 (rhbz #914091)
|
||||||
|
|
||||||
|
* Thu Feb 14 2013 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 20130103-2.git717279a
|
||||||
|
- Rebuilt for https://fedoraproject.org/wiki/Fedora_19_Mass_Rebuild
|
||||||
|
|
||||||
|
* Thu Jan 3 2013 Daniel P. Berrange <berrange@redhat.com> - 20130103-1.git717279a
|
||||||
|
- Updated to latest GIT snapshot
|
||||||
|
|
||||||
|
* Thu Jul 19 2012 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 20120328-2.gitaac9718
|
||||||
|
- Rebuilt for https://fedoraproject.org/wiki/Fedora_18_Mass_Rebuild
|
||||||
|
|
||||||
|
* Wed Mar 28 2012 Daniel P. Berrange <berrange@redhat.com> - 20120328-1.gitaac9718
|
||||||
|
- Update to newer upstream
|
||||||
|
|
||||||
|
* Fri Mar 23 2012 Daniel P. Berrange <berrange@redhat.com> - 20120319-3.git0b2c788
|
||||||
|
- Remove more defattr statements
|
||||||
|
|
||||||
|
* Tue Mar 20 2012 Daniel P. Berrange <berrange@redhat.com> - 20120319-2.git0b2c788
|
||||||
|
- Remove BuildRoot & rm -rf of it in install/clean sections
|
||||||
|
- Remove defattr in file section
|
||||||
|
- Switch to use global, instead of define for macros
|
||||||
|
- Add note about Patch1 not going upstream
|
||||||
|
- Split BRs across lines for easier readability
|
||||||
|
|
||||||
|
* Mon Feb 27 2012 Daniel P. Berrange <berrange@redhat.com> - 20120319-1.git0b2c788
|
||||||
|
- Initial package based on gPXE
|
||||||
|
|
||||||
|
* Fri Jan 13 2012 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 1.0.1-5
|
||||||
|
- Rebuilt for https://fedoraproject.org/wiki/Fedora_17_Mass_Rebuild
|
||||||
|
|
||||||
|
* Mon Feb 21 2011 Matt Domsch <mdomsch@fedoraproject.org> - 1.0.1-4
|
||||||
|
- don't use -Werror, it flags a failure that is not a failure for gPXE
|
||||||
|
|
||||||
|
* Mon Feb 21 2011 Matt Domsch <mdomsch@fedoraproject.org> - 1.0.1-3
|
||||||
|
- Fix virtio-net ethernet frame length (patch by cra), fixes BZ678789
|
||||||
|
|
||||||
|
* Tue Feb 08 2011 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 1.0.1-2
|
||||||
|
- Rebuilt for https://fedoraproject.org/wiki/Fedora_15_Mass_Rebuild
|
||||||
|
|
||||||
|
* Thu Aug 5 2010 Matt Domsch <mdomsch@fedoraproject.org> - 1.0.1-1
|
||||||
|
- New drivers: Intel e1000, e1000e, igb, EFI snpnet, JMicron jme,
|
||||||
|
Neterion X3100, vxge, pcnet32.
|
||||||
|
- Bug fixes and improvements to drivers, wireless, DHCP, iSCSI,
|
||||||
|
COMBOOT, and EFI.
|
||||||
|
* Tue Feb 2 2010 Matt Domsch <mdomsch@fedoraproject.org> - 1.0.0-1
|
||||||
|
- bugfix release, also adds wireless card support
|
||||||
|
- bnx2 builds again
|
||||||
|
- drop our one patch
|
||||||
|
|
||||||
|
* Tue Oct 27 2009 Matt Domsch <mdomsch@fedoraproject.org> - 0.9.9-1
|
||||||
|
- new upstream version 0.9.9
|
||||||
|
-- plus patches from git up to 20090818 which fix build errors and
|
||||||
|
other release-critical bugs.
|
||||||
|
-- 0.9.9: added Attansic L1E and sis190/191 ethernet drivers. Fixes
|
||||||
|
and updates to e1000 and 3c90x drivers.
|
||||||
|
-- 0.9.8: new commands: time, sleep, md5sum, sha1sum. 802.11 wireless
|
||||||
|
support with Realtek 8180/8185 and non-802.11n Atheros drivers.
|
||||||
|
New Marvell Yukon-II gigabet Ethernet driver. HTTP redirection
|
||||||
|
support. SYSLINUX floppy image type (.sdsk) with usable file
|
||||||
|
system. Rewrites, fixes, and updates to 3c90x, forcedeth, pcnet32,
|
||||||
|
e1000, and hermon drivers.
|
||||||
|
|
||||||
|
* Mon Oct 5 2009 Matt Domsch <mdomsch@fedoraproject.org> - 0.9.7-6
|
||||||
|
- move rtl8029 from -roms to -roms-qemu for qemu ne2k_pci NIC (BZ 526776)
|
||||||
|
|
||||||
|
* Fri Jul 24 2009 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 0.9.7-5
|
||||||
|
- Rebuilt for https://fedoraproject.org/wiki/Fedora_12_Mass_Rebuild
|
||||||
|
|
||||||
|
* Tue May 19 2009 Matt Domsch <mdomsch@fedoraproject.org> - 0.9.7-4
|
||||||
|
- add undionly.kpxe to -bootimgs
|
||||||
|
|
||||||
|
* Tue May 12 2009 Matt Domsch <mdomsch@fedoraproject.org> - 0.9.7-3
|
||||||
|
- handle isolinux changing paths
|
||||||
|
|
||||||
|
* Sat May 9 2009 Matt Domsch <mdomsch@fedoraproject.org> - 0.9.7-2
|
||||||
|
- add dist tag
|
||||||
|
|
||||||
|
* Thu Mar 26 2009 Matt Domsch <mdomsch@fedoraproject.org> - 0.9.7-1
|
||||||
|
- Initial release based on etherboot spec
|
Loading…
Reference in New Issue
Block a user