netboot/cmd/pixiecore
Neil Roza a58c0b7bc7 fix #113: get the update-ipxe target working
Delete the vendored source under `thirds_party/ipxe` and replace it with a
submodule reference to https://github.com/ipxe/ipxe.git at commit
8f1514a00450119b04b08642c55aa674bdf5a4ef a.k.a. tag `v1.20.1` a.k.a. the latest
release as of this writing.

Edit `Makefile` to change the rule body of the `update-ipxe` target:

* Discover the full path of `pixiecore/boot.ipxe`; i.e., the `EMBED` script
  given to the `ipxe` build.

* Use `$(MAKE) -C` instead of subshelled `cd`.

* Leave the four built ipxe binaries where they are built.

* Change the `go-bindata` to operate on the four files (instead of the
  directory that contains them), write to `out/ipxe/bindata.go` (instead of
  `third_party/ipxe/ipxe-bin.go`), and lose the `-prefix`.

Edit `cmd/pixiecore/main.go` use the new `ipxe` import path and reference the
binaries by the longer, un-prefixed path keys.

Add `out/ipxe/bindata.go`, the thing generated by `go-bindata`. Yeah, we
shouldn't source-control that which we can generate, but...

* `ipxe` builds are not reproducible (yet)

* building those four binaries takes a appreciable amount of time

* we can avoid a build-time dependency on `go-bindata`

Remove `third_party/Makefile` because it looks like dead code. At any rate, it
seems this patch obviates everything it may have done.
2020-06-17 09:54:17 -07:00
..
Dockerfile Add a CircleCI configuration for building container images. 2018-02-06 23:45:09 -08:00
LICENSE cmd: make the GPLv2 pixiecore own the unadorned "pixiecore" binary name. 2016-08-10 21:57:19 -07:00
main.go fix #113: get the update-ipxe target working 2020-06-17 09:54:17 -07:00
README.md cmd: make the GPLv2 pixiecore own the unadorned "pixiecore" binary name. 2016-08-10 21:57:19 -07:00

Pixiecore, with embedded iPXE

This is a version of the Pixiecore tool that embeds iPXE binaries for all of Pixiecore's supported architectures/firmwares, so you don't have to handle building and deploying them yourself.

Due to iPXE's license, the result of embedding iPXE builds in the Pixiecore binary makes the overall binary fall under the terms of the GPLv2. See the LICENSE file in this directory for that license.

If you want an Apache-licensed build, check the "pixiecore-apache2" directory one level up for a build that doesn't embed iPXE (you have to supply iPXE binaries at runtime).