Date: Tue, 1 Mar 2016 20:34:41 +0000 (UTC) From: Kurt Jaeger <pi@FreeBSD.org> To: ports-committers@freebsd.org, svn-ports-all@freebsd.org, svn-ports-head@freebsd.org Subject: svn commit: r409900 - in head/net: . ipxe ipxe/files Message-ID: <201603012034.u21KYf0q014747@repo.freebsd.org>
next in thread | raw e-mail | index | archive | help
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@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@googlemail.com> +# $FreeBSD$ + +# With helpful hints from net/gpxe + +PORTNAME= ipxe +PORTVERSION= 20160213 +CATEGORIES= net + +MAINTAINER= t@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
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201603012034.u21KYf0q014747>