diff options
author | pi <pi@FreeBSD.org> | 2016-03-02 04:34:41 +0800 |
---|---|---|
committer | pi <pi@FreeBSD.org> | 2016-03-02 04:34:41 +0800 |
commit | 419eb6aaf0b9b33d218fe8fa89a2c151e8167a29 (patch) | |
tree | 7235c8450bcb3c389dd511945e94992209a35659 /net | |
parent | 5dbfa8648e08725890fbe0e141b2d2d37d34421e (diff) | |
download | freebsd-ports-gnome-419eb6aaf0b9b33d218fe8fa89a2c151e8167a29.tar.gz freebsd-ports-gnome-419eb6aaf0b9b33d218fe8fa89a2c151e8167a29.tar.zst freebsd-ports-gnome-419eb6aaf0b9b33d218fe8fa89a2c151e8167a29.zip |
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>
Diffstat (limited to 'net')
-rw-r--r-- | net/Makefile | 1 | ||||
-rw-r--r-- | net/ipxe/Makefile | 88 | ||||
-rw-r--r-- | net/ipxe/distinfo | 2 | ||||
-rw-r--r-- | net/ipxe/files/patch-config_general.h | 33 | ||||
-rw-r--r-- | net/ipxe/files/pkg-message.in | 25 | ||||
-rw-r--r-- | net/ipxe/ipxestart.example | 6 | ||||
-rw-r--r-- | net/ipxe/pkg-descr | 12 |
7 files changed, 167 insertions, 0 deletions
diff --git a/net/Makefile b/net/Makefile index 10bf77f916a0..887abb1d057c 100644 --- a/net/Makefile +++ b/net/Makefile @@ -253,6 +253,7 @@ SUBDIR += ipsorc SUBDIR += ipsumdump SUBDIR += ipsvd + SUBDIR += ipxe SUBDIR += irrd SUBDIR += isboot-kmod SUBDIR += isc-dhcp41-client diff --git a/net/ipxe/Makefile b/net/ipxe/Makefile new file mode 100644 index 000000000000..76a021f7ccfc --- /dev/null +++ b/net/ipxe/Makefile @@ -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> diff --git a/net/ipxe/distinfo b/net/ipxe/distinfo new file mode 100644 index 000000000000..486d0e3a656f --- /dev/null +++ b/net/ipxe/distinfo @@ -0,0 +1,2 @@ +SHA256 (ipxe-ipxe-20160213-7ecfe7159f94193a666200a17057d4cd5981b850_GH0.tar.gz) = 81e5a199c179ea993368beca55b40f810dddf789c6da48bace72aae3d94a6aba +SIZE (ipxe-ipxe-20160213-7ecfe7159f94193a666200a17057d4cd5981b850_GH0.tar.gz) = 3490722 diff --git a/net/ipxe/files/patch-config_general.h b/net/ipxe/files/patch-config_general.h new file mode 100644 index 000000000000..84f75bd49d89 --- /dev/null +++ b/net/ipxe/files/patch-config_general.h @@ -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 */ diff --git a/net/ipxe/files/pkg-message.in b/net/ipxe/files/pkg-message.in new file mode 100644 index 000000000000..95b09f46f380 --- /dev/null +++ b/net/ipxe/files/pkg-message.in @@ -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. diff --git a/net/ipxe/ipxestart.example b/net/ipxe/ipxestart.example new file mode 100644 index 000000000000..bdba446cdb73 --- /dev/null +++ b/net/ipxe/ipxestart.example @@ -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 diff --git a/net/ipxe/pkg-descr b/net/ipxe/pkg-descr new file mode 100644 index 000000000000..2d6e900bcc48 --- /dev/null +++ b/net/ipxe/pkg-descr @@ -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 |