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