svn commit: r409900 - in head/net: . ipxe ipxe/files
Kurt Jaeger
pi at FreeBSD.org
Tue Mar 1 20:34:43 UTC 2016
Author: pi
Date: Tue Mar 1 20:34:41 2016
New Revision: 409900
URL: https://svnweb.freebsd.org/changeset/ports/409900
Log:
New port: net/ipxe
iPXE is the leading open source network boot firmware. It provides a
full PXE implementation enhanced with additional features such as:
* boot from a web server via HTTP
* boot from an iSCSI SAN
* boot from a Fibre Channel SAN via FCoE
* boot from an AoE SAN
* boot from a wireless network
* boot from a wide-area network
* boot from an Infiniband network
* control the boot process with a script
WWW: http://ipxe.org
PR: 207166
Submitted by: Tobias Kortkamp <t at tobik.me>
Added:
head/net/ipxe/
head/net/ipxe/Makefile (contents, props changed)
head/net/ipxe/distinfo (contents, props changed)
head/net/ipxe/files/
head/net/ipxe/files/patch-config_general.h (contents, props changed)
head/net/ipxe/files/pkg-message.in (contents, props changed)
head/net/ipxe/ipxestart.example (contents, props changed)
head/net/ipxe/pkg-descr (contents, props changed)
Modified:
head/net/Makefile
Modified: head/net/Makefile
==============================================================================
--- head/net/Makefile Tue Mar 1 20:25:40 2016 (r409899)
+++ head/net/Makefile Tue Mar 1 20:34:41 2016 (r409900)
@@ -253,6 +253,7 @@
SUBDIR += ipsorc
SUBDIR += ipsumdump
SUBDIR += ipsvd
+ SUBDIR += ipxe
SUBDIR += irrd
SUBDIR += isboot-kmod
SUBDIR += isc-dhcp41-client
Added: head/net/ipxe/Makefile
==============================================================================
--- /dev/null 00:00:00 1970 (empty, because file is newly added)
+++ head/net/ipxe/Makefile Tue Mar 1 20:34:41 2016 (r409900)
@@ -0,0 +1,88 @@
+# Created by: Guerkan Karaman <gk.freebsd at googlemail.com>
+# $FreeBSD$
+
+# With helpful hints from net/gpxe
+
+PORTNAME= ipxe
+PORTVERSION= 20160213
+CATEGORIES= net
+
+MAINTAINER= t at tobik.me
+COMMENT= Open source network boot firmware
+
+LICENSE= GPLv2
+
+BUILD_DEPENDS= ${LOCALBASE}/share/syslinux/bios/core/isolinux.bin:${PORTSDIR}/sysutils/syslinux \
+ bash:${PORTSDIR}/shells/bash \
+ mkisofs:${PORTSDIR}/sysutils/cdrtools
+
+USE_GITHUB= yes
+GH_PROJECT= ipxe
+# iPXE hasn't had a release since 2010.
+# See iPXE's FAQ at http://ipxe.org/faq
+#
+# Q: Which version of iPXE should I use?
+#
+# A: iPXE uses a rolling release model, in which every commit is intended
+# to be production-ready. You should always use the latest code.
+#
+GH_TAGNAME= 7ecfe7159f94193a666200a17057d4cd5981b850
+
+USES= gmake perl5 shebangfix
+USE_GCC= yes
+MAKE_ARGS= PERL=${PERL} \
+ CC=${CC} \
+ HOST_CC=${CC} \
+ ISOLINUX_BIN="${WRKSRC}/isolinux.bin" \
+ LDLINUX_C32="${LOCALBASE}/share/syslinux/bios/com32/elflink/ldlinux/ldlinux.c32"
+WRKSRC_SUBDIR= src
+SHEBANG_FILES= util/geniso util/gensdsk
+
+PLIST_FILES= %%DATADIR%%/ipxe.dsk \
+ %%DATADIR%%/ipxe.usb \
+ %%DATADIR%%/ipxe.iso \
+ %%DATADIR%%/ipxe.pxe \
+ %%DATADIR%%/ipxe.lkrn
+
+SUB_FILES= pkg-message
+
+.include <bsd.port.options.mk>
+
+ONLY_FOR_ARCHS= amd64 i386
+ONLY_FOR_ARCHS_REASON= not yet ported to anything other than amd64/i386
+
+.if ${ARCH} == "amd64"
+MAKE_ARGS+= ARCH=i386
+.endif
+
+IPXE_EMBED?= # Allows embedding of iPXE start scripts
+.if ${IPXE_EMBED} != ""
+MAKE_ARGS+= EMBED="${IPXE_EMBED}"
+.endif
+
+IPXE_TRUST?= # Path to the root certificates iPXE trusts
+.if ${IPXE_TRUST} != ""
+MAKE_ARGS+= TRUST="${IPXE_TRUST}"
+.endif
+
+pre-everything::
+ @${ECHO_MSG} "To build iPXE with an embedded script (path must be absolute):"
+ @${ECHO_MSG} "make IPXE_EMBED=/path/to/ipxe/script install clean"
+ @${ECHO_MSG}
+ @${ECHO_MSG} "To build iPXE with new trusted root certificates"
+ @${ECHO_MSG} "(see http://ipxe.org/crypto for more information):"
+ @${ECHO_MSG} "make IPXE_TRUST=/path/to/ca1.crt,/path/to/ca2.crt"
+
+pre-build:
+# ISO creation fails if isolinux.bin is read only
+ ${INSTALL} -m 644 ${LOCALBASE}/share/syslinux/bios/core/isolinux.bin ${WRKSRC}/isolinux.bin
+
+do-install:
+ @${MKDIR} ${STAGEDIR}${DATADIR}
+ ${INSTALL_DATA} ${WRKSRC}/bin/ipxe.dsk ${STAGEDIR}${DATADIR}
+ ${INSTALL_DATA} ${WRKSRC}/bin/ipxe.usb ${STAGEDIR}${DATADIR}
+ ${INSTALL_DATA} ${WRKSRC}/bin/ipxe.iso ${STAGEDIR}${DATADIR}
+ ${INSTALL_DATA} ${WRKSRC}/bin/ipxe.pxe ${STAGEDIR}${DATADIR}
+ ${INSTALL_DATA} ${WRKSRC}/bin/ipxe.lkrn ${STAGEDIR}${DATADIR}
+
+.include <bsd.port.mk>
Added: head/net/ipxe/distinfo
==============================================================================
--- /dev/null 00:00:00 1970 (empty, because file is newly added)
+++ head/net/ipxe/distinfo Tue Mar 1 20:34:41 2016 (r409900)
@@ -0,0 +1,2 @@
+SHA256 (ipxe-ipxe-20160213-7ecfe7159f94193a666200a17057d4cd5981b850_GH0.tar.gz) = 81e5a199c179ea993368beca55b40f810dddf789c6da48bace72aae3d94a6aba
+SIZE (ipxe-ipxe-20160213-7ecfe7159f94193a666200a17057d4cd5981b850_GH0.tar.gz) = 3490722
Added: head/net/ipxe/files/patch-config_general.h
==============================================================================
--- /dev/null 00:00:00 1970 (empty, because file is newly added)
+++ head/net/ipxe/files/patch-config_general.h Tue Mar 1 20:34:41 2016 (r409900)
@@ -0,0 +1,33 @@
+--- config/general.h.orig 2016-02-12 14:04:51 UTC
++++ config/general.h
+@@ -35,7 +35,7 @@ FILE_LICENCE ( GPL2_OR_LATER_OR_UBDL );
+ */
+
+ #define NET_PROTO_IPV4 /* IPv4 protocol */
+-#undef NET_PROTO_IPV6 /* IPv6 protocol */
++#define NET_PROTO_IPV6 /* IPv6 protocol */
+ #undef NET_PROTO_FCOE /* Fibre Channel over Ethernet protocol */
+ #define NET_PROTO_STP /* Spanning Tree protocol */
+
+@@ -53,10 +53,10 @@ FILE_LICENCE ( GPL2_OR_LATER_OR_UBDL );
+
+ #define DOWNLOAD_PROTO_TFTP /* Trivial File Transfer Protocol */
+ #define DOWNLOAD_PROTO_HTTP /* Hypertext Transfer Protocol */
+-#undef DOWNLOAD_PROTO_HTTPS /* Secure Hypertext Transfer Protocol */
++#define DOWNLOAD_PROTO_HTTPS /* Secure Hypertext Transfer Protocol */
+ #undef DOWNLOAD_PROTO_FTP /* File Transfer Protocol */
+ #undef DOWNLOAD_PROTO_SLAM /* Scalable Local Area Multicast */
+-#undef DOWNLOAD_PROTO_NFS /* Network File System Protocol */
++#define DOWNLOAD_PROTO_NFS /* Network File System Protocol */
+
+ /*
+ * SAN boot protocols
+@@ -136,7 +136,7 @@ FILE_LICENCE ( GPL2_OR_LATER_OR_UBDL );
+ //#define PXE_CMD /* PXE commands */
+ //#define REBOOT_CMD /* Reboot command */
+ //#define POWEROFF_CMD /* Power off command */
+-//#define IMAGE_TRUST_CMD /* Image trust management commands */
++#define IMAGE_TRUST_CMD /* Image trust management commands */
+ //#define PCI_CMD /* PCI commands */
+ //#define PARAM_CMD /* Form parameter commands */
+ //#define NEIGHBOUR_CMD /* Neighbour management commands */
Added: head/net/ipxe/files/pkg-message.in
==============================================================================
--- /dev/null 00:00:00 1970 (empty, because file is newly added)
+++ head/net/ipxe/files/pkg-message.in Tue Mar 1 20:34:41 2016 (r409900)
@@ -0,0 +1,25 @@
+The following files have been installed in %%DATADIR%%:
+
+* ipxe.dsk: To create a bootable floppy run
+
+ dd if=%%DATADIR%%/ipxe.dsk of=/dev/fd0
+
+ where /dev/fd0 is your floppy drive. This will erase any data
+ already on the disk.
+
+* ipxe.usb: To create a bootable USB key run
+
+ dd if=%%DATADIR%%/ipxe.usb of=/dev/daX
+
+ where /dev/daX is your USB key, and is *not* a real hard disk on
+ your system. This will erase any data already on the USB key.
+
+* ipxe.iso: To create a bootable CD-ROM run
+
+ cdrecord %%DATADIR%%/ipxe.iso
+
+ to write the image to a blank CD.
+
+* ipxe.pxe: For chainloading from a PXE ROM.
+
+* ipxe.lkrn: For any boot manager that can boot Linux kernels.
Added: head/net/ipxe/ipxestart.example
==============================================================================
--- /dev/null 00:00:00 1970 (empty, because file is newly added)
+++ head/net/ipxe/ipxestart.example Tue Mar 1 20:34:41 2016 (r409900)
@@ -0,0 +1,6 @@
+#!ipxe
+# An example iPXE start script
+# To build iPXE with this script embedded build the port with:
+# make IPXE_EMBED=${PWD}/ipxestart.example
+ifconf
+chain https://boot.ipxe.org/demo/boot.php
Added: head/net/ipxe/pkg-descr
==============================================================================
--- /dev/null 00:00:00 1970 (empty, because file is newly added)
+++ head/net/ipxe/pkg-descr Tue Mar 1 20:34:41 2016 (r409900)
@@ -0,0 +1,12 @@
+iPXE is the leading open source network boot firmware. It provides a
+full PXE implementation enhanced with additional features such as:
+* boot from a web server via HTTP
+* boot from an iSCSI SAN
+* boot from a Fibre Channel SAN via FCoE
+* boot from an AoE SAN
+* boot from a wireless network
+* boot from a wide-area network
+* boot from an Infiniband network
+* control the boot process with a script
+
+WWW: http://ipxe.org
More information about the svn-ports-all
mailing list