bootbox/builder/example.config.xml

149 lines
5.5 KiB
XML

<?xml version="1.0" encoding="UTF-8" ?>
<ipxe xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns="https://router.r00t2.io/boootbox/ipxe/build/"
xsi:schemaLocation="https://router.r00t2.io/boootbox/ipxe/build/ http://schema.xml.r00t2.io/projects/ipxe/build.xsd">
<!--
Define where the source code should go, where it comes from, and any modifications if desired.
-->
<source srcDir="/opt/builds/ipxe_build">
<upstream>
<!--
Upstream supports two types, "git" (shown below) and "archive". If you use archive, it must be an HTTP file, an
HTTPS file, or a path on the local filesystem (file:///path/to/file.tar.xz). archive supports:
* .tar.bz2/.tbz/.tbz2
* .tar.xz/.txz
* .tar.gz/.tgz
* .tar
* .zip
If you use "git", you must have python-git (https://pypi.org/project/GitPython/) installed.
-->
<git>
<refType>branch</refType>
<ref>master</ref>
<uri>git://git.ipxe.org/ipxe.git</uri>
</git>
<dest>/opt/builds/ipxe_src</dest>
</upstream>
<patchSet>
<switchOpts subDir="src">
<opts file="config/general.h">
<enable>
<opt>NET_PROTO_IPV6</opt>
<opt>DOWNLOAD_PROTO_HTTPS</opt>
<opt>DOWNLOAD_PROTO_FTP</opt>
<opt>DOWNLOAD_PROTO_NFS</opt>
<opt>HTTP_AUTH_NTLM</opt>
<!-- <opt>HTTP_ENC_PEERDIST</opt> -->
<!-- <opt>HTTP_HACK_GCE</opt> -->
<opt>NSLOOKUP_CMD</opt>
<opt>TIME_CMD</opt>
<opt>DIGEST_CMD</opt>
<opt>LOTEST_CMD</opt>
<opt>VLAN_CMD</opt>
<!-- Causes EFI to fail
<opt>PXE_CMD</opt> -->
<opt>REBOOT_CMD</opt>
<opt>POWEROFF_CMD</opt>
<!-- I *think* this causes EFI to fail. Can I build it directly as a target w/o enabling?
<opt>IMAGE_NBI</opt> -->
<!-- Causes EFI to fail, and is auto-enabled for what needs it.
<opt>IMAGE_ELF</opt> -->
<!-- Also enabled by default for MBR builds.
<opt>IMAGE_MULTIBOOT</opt> -->
<!-- Enabled where needed, etc.
<opt>IMAGE_SCRIPT</opt> -->
<!-- http://lists.ipxe.org/pipermail/ipxe-devel/2017-March/005510.html
<opt>IMAGE_BZIMAGE</opt> -->
<!-- Not really necessary since iPXE has native menus.
<opt>IMAGE_COMBOOT</opt> -->
<!-- Enabled by default for EFI builds, and causes build error on bin/ipxe.dsk.tmp
<opt>IMAGE_EFI</opt> -->
<!-- EFI builds fail with this. related to PXE_STACK/PXE_CMD?
<opt>IMAGE_PXE</opt> -->
<opt>IMAGE_TRUST_CMD</opt>
<opt>PCI_CMD</opt>
<opt>PARAM_CMD</opt>
<opt>NEIGHBOUR_CMD</opt>
<opt>PING_CMD</opt>
<opt>CONSOLE_CMD</opt>
<opt>IPSTAT_CMD</opt>
<opt>PROFSTAT_CMD</opt>
<opt>NTP_CMD</opt>
<opt>CERT_CMD</opt>
</enable>
<!--
<disable>
<opt>CRYPTO_80211_WEP</opt>
<opt>CRYPTO_80211_WPA</opt>
<opt>CRYPTO_80211_WPA2</opt>
<opt>IWMGMT_CMD</opt>
</disable>
-->
</opts>
<opts file="config/console.h">
<enable>
<opt>CONSOLE_FRAMEBUFFER</opt>
</enable>
<!--
<disable>
<opt></opt>
</disable>
-->
</opts>
</switchOpts>
<patch patchDir="/opt/builds/patches/ipxe">
<patchFile stripLevel="1">git-version.patch</patchFile>
<patchFile stripLevel="1">banner.patch</patchFile>
<patchFile stripLevel="1">efi-iso.patch</patchFile>
</patch>
</patchSet>
</source>
<!--
The other attributes enable additional target images. "pxe" is a PXE image, "undi" is an UNDI (RFC4578§2.2)
kernel/NBP, both of which will allow you to chainload iPXE from vanilla PXE.
-->
<build
iso="true"
usb="true"
floppy="true"
mbr="true"
pxe="true"
undi="true">
<!--
If scripts is specified, multiple firmware sets/images will be built along with a non-embedded version.
The required "prefix" attribute is the file prefix that will be appended.
See: https://ipxe.org/scripting
-->
<scripts srcDir="/opt/builds/config/ipxe">
<script prefix="bootstrap">bootstrap.ipxe</script>
<script prefix="">chain-default.ipxe</script>
</scripts>
<!--
The directory where built firmware/images go. They will have respective subdirectories to maintain a clean
hierarchy.
-->
<dest>/opt/builds/built/ipxe</dest>
<!--
The default is all firmware ("make everything").
Note that 1af41000 is the firmware used by VirtIO, and will be symlinked as such if built.
-->
<!--
<roms>
<rom>rtl8139</rom>
<rom>8086100e</rom>
<rom>80861209</rom>
</roms>
-->
<!--
This is optional. If you introduce patches that define additional images that don't follow the above pattern
(such as eworm's EFI ISO patch), you can define them here.
-->
<extraTargets>
<target subDir="efi" baseName="32.efi">bin-i386-efi/ipxe.efi</target>
<target subDir="efi" baseName="64.efi">bin-x86_64-efi/ipxe.efi</target>
<target subDir="iso" baseName="legacy.iso">bin/ipxe.liso</target>
<target subDir="iso" baseName="uefi.iso">bin/ipxe.eiso</target>
</extraTargets>
</build>
</ipxe>